From ee75a7538517854c7cc2d26029807a1fd717d6f9 Mon Sep 17 00:00:00 2001 From: Alysson Oliveira Date: Tue, 26 Mar 2019 21:23:31 -0300 Subject: [PATCH 0001/1324] Run autoreconf intead autoconf --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5560a5604f..1b1bdaa694 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -791,7 +791,7 @@ build_package_standard() { } build_package_autoconf() { - { autoconf + { autoreconf } >&4 2>&1 } From 2b174ab69f5749916d0caefa168f95c6f06f3383 Mon Sep 17 00:00:00 2001 From: Maxime Brunet Date: Sun, 2 Jun 2019 16:00:36 -0400 Subject: [PATCH 0002/1324] List versions starting with a dot --- libexec/pyenv-versions | 4 ++-- pyenv.d/rehash/conda.bash | 4 ++-- test/versions.bats | 7 +++++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 019c0e906c..a35267e9e6 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -106,7 +106,7 @@ if [ -n "$include_system" ] && PYENV_VERSION=system pyenv-which python >/dev/nul print_version system fi -shopt -s nullglob +shopt -s dotglob nullglob for path in "$versions_dir"/*; do if [ -d "$path" ]; then if [ -n "$skip_aliases" ] && [ -L "$path" ]; then @@ -123,7 +123,7 @@ for path in "$versions_dir"/*; do done fi done -shopt -u nullglob +shopt -u dotglob nullglob if [ "$num_versions" -eq 0 ] && [ -n "$include_system" ]; then echo "Warning: no Python detected on the system" >&2 diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index a45a9966b8..9e477862e2 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -5,9 +5,9 @@ # This hooks is intended to skip creating shims for those executables. conda_exists() { - shopt -s nullglob + shopt -s dotglob nullglob local condas=($(echo "${PYENV_ROOT}/versions/"*"/bin/conda" "${PYENV_ROOT}/versions/"*"/envs/"*"/bin/conda")) - shopt -u nullglob + shopt -u dotglob nullglob [ -n "${condas}" ] } diff --git a/test/versions.bats b/test/versions.bats index d474c87ab6..8ded5c4a4e 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -154,3 +154,10 @@ OUT 1.9 OUT } + +@test "lists dot directories under versions" { + create_version ".venv" + + run pyenv-versions --bare + assert_success ".venv" +} From df671621e90a290e9f20e842e0b6a6e00c361569 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 19 Feb 2020 17:47:16 +0300 Subject: [PATCH 0003/1324] Mention log file if an error happened before building, too --- plugins/python-build/bin/python-build | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f5f29726e6..41143e6244 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -128,13 +128,13 @@ build_failed() { if ! rmdir "${BUILD_PATH}" 2>/dev/null; then echo "Inspect or clean up the working tree at ${BUILD_PATH}" + fi - if file_is_not_empty "$LOG_PATH"; then - colorize 33 "Results logged to ${LOG_PATH}" - printf "\n\n" - echo "Last 10 log lines:" - tail -n 10 "$LOG_PATH" - fi + if file_is_not_empty "$LOG_PATH"; then + colorize 33 "Results logged to ${LOG_PATH}" + printf "\n\n" + echo "Last 10 log lines:" + tail -n 10 "$LOG_PATH" fi } >&3 exit 1 From 4d762bca7ba5b75d7359275613af339419b5f5d7 Mon Sep 17 00:00:00 2001 From: Paul Bransford Date: Tue, 7 Jul 2020 18:39:52 -0400 Subject: [PATCH 0004/1324] fix 'system' python to be present if 'python3' is on path but not 'python' --- libexec/pyenv-prefix | 2 +- libexec/pyenv-versions | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index ac04f6bcdb..a2ee880ef8 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -30,7 +30,7 @@ OLDIFS="$IFS" { IFS=: for version in ${PYENV_VERSION}; do if [ "$version" = "system" ]; then - if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)"; then + if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)" || PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 2>/dev/null)"; then PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}" PYENV_PREFIX_PATH="${PYENV_PREFIX_PATH:-/}" else diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 019c0e906c..1e3302d29c 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -102,7 +102,7 @@ print_version() { } # Include "system" in the non-bare output, if it exists -if [ -n "$include_system" ] && PYENV_VERSION=system pyenv-which python >/dev/null 2>&1; then +if [ -n "$include_system" ] && (PYENV_VERSION=system pyenv-which python >/dev/null 2>&1 || PYENV_VERSION=system pyenv-which python3 >/dev/null 2>&1); then print_version system fi From 70635dade88cc31365a8a0b2275b639981cbab63 Mon Sep 17 00:00:00 2001 From: Seth Michael Larson Date: Fri, 14 Aug 2020 14:05:35 -0500 Subject: [PATCH 0005/1324] Add Python 3.9.0rc1 (#1676) --- .../python-build/share/python-build/{3.9.0b5 => 3.9.0rc1} | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.9.0b5 => 3.9.0rc1} (52%) diff --git a/plugins/python-build/share/python-build/3.9.0b5 b/plugins/python-build/share/python-build/3.9.0rc1 similarity index 52% rename from plugins/python-build/share/python-build/3.9.0b5 rename to plugins/python-build/share/python-build/3.9.0rc1 index 5f2b22135f..6e10d345d7 100644 --- a/plugins/python-build/share/python-build/3.9.0b5 +++ b/plugins/python-build/share/python-build/3.9.0rc1 @@ -4,7 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.9.0b5" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0b5.tar.xz#6ce1d77cba57cccb3e43cdb76217beacd7c7cd66a17d065523e4139cb5401564" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0rc1" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc1.tar.xz#fba7a73e7359356967b853c234b97f4a4114f02b8bd60d6bde6e2f97bcdfdc70" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.0b5" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0b5.tgz#a4f6555eaa935becbbd965d8844ec897e72a443e77abdc4a8ff14150ef1fd527" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0rc1" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc1.tgz#ef62b8e524c892168171c52db2a7bfaa9e48bc0b1f5179128c9eca368e1f8d21" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip fi + From dc4e24e681f5ac8235ab6e2f2e20b516e6997a01 Mon Sep 17 00:00:00 2001 From: Ashwin Vishnu <9155111+ashwinvis@users.noreply.github.com> Date: Thu, 20 Aug 2020 21:58:38 +0200 Subject: [PATCH 0006/1324] Fix PyPy download links (#1682) * Find working PyPy links in downloads.python.org * Use portable-pypy links from softwareheritage.org --- .../python-build/share/python-build/pypy-1.6 | 8 +++---- .../python-build/share/python-build/pypy-1.7 | 8 +++---- .../python-build/share/python-build/pypy-1.8 | 8 +++---- .../python-build/share/python-build/pypy-1.9 | 8 +++---- .../python-build/share/python-build/pypy-2.0 | 12 +++++----- .../share/python-build/pypy-2.0-src | 2 +- .../share/python-build/pypy-2.0.1 | 8 +++---- .../share/python-build/pypy-2.0.1-src | 2 +- .../share/python-build/pypy-2.0.2 | 8 +++---- .../share/python-build/pypy-2.0.2-src | 2 +- .../python-build/share/python-build/pypy-2.1 | 14 ++++++------ .../share/python-build/pypy-2.1-src | 2 +- .../python-build/share/python-build/pypy-2.2 | 14 ++++++------ .../share/python-build/pypy-2.2-src | 2 +- .../share/python-build/pypy-2.2.1 | 14 ++++++------ .../share/python-build/pypy-2.2.1-src | 2 +- .../python-build/share/python-build/pypy-2.3 | 14 ++++++------ .../share/python-build/pypy-2.3-src | 2 +- .../share/python-build/pypy-2.3.1 | 18 +++++++-------- .../share/python-build/pypy-2.4.0 | 18 +++++++-------- .../share/python-build/pypy-2.5.0 | 18 +++++++-------- .../share/python-build/pypy-2.5.1 | 18 +++++++-------- .../share/python-build/pypy-2.5.1-src | 2 +- .../share/python-build/pypy-2.6.0 | 18 +++++++-------- .../share/python-build/pypy-2.6.0-src | 2 +- .../share/python-build/pypy-2.6.1 | 20 ++++++++--------- .../share/python-build/pypy-2.6.1-src | 2 +- .../share/python-build/pypy-4.0.0 | 20 ++++++++--------- .../share/python-build/pypy-4.0.0-src | 2 +- .../share/python-build/pypy-4.0.1 | 16 +++++++------- .../share/python-build/pypy-4.0.1-src | 2 +- .../share/python-build/pypy-5.0.0 | 22 +++++++++---------- .../share/python-build/pypy-5.0.0-src | 2 +- .../share/python-build/pypy-5.0.1 | 16 +++++++------- .../share/python-build/pypy-5.0.1-src | 2 +- .../python-build/share/python-build/pypy-5.1 | 22 +++++++++---------- .../share/python-build/pypy-5.1-src | 2 +- .../share/python-build/pypy-5.1.1 | 16 +++++++------- .../share/python-build/pypy-5.1.1-src | 2 +- .../share/python-build/pypy-stm-2.3 | 2 +- .../share/python-build/pypy-stm-2.5.1 | 2 +- .../python-build/share/python-build/pypy2-5.3 | 14 ++++++------ .../share/python-build/pypy2-5.3-src | 2 +- .../share/python-build/pypy2-5.3.1 | 18 +++++++-------- .../share/python-build/pypy2-5.3.1-src | 2 +- .../python-build/share/python-build/pypy2-5.4 | 18 +++++++-------- .../share/python-build/pypy2-5.4-src | 2 +- .../share/python-build/pypy2-5.4.1 | 18 +++++++-------- .../share/python-build/pypy2-5.4.1-src | 2 +- .../share/python-build/pypy2-5.6.0 | 18 +++++++-------- .../share/python-build/pypy2-5.6.0-src | 2 +- .../share/python-build/pypy2-5.7.0 | 16 +++++++------- .../share/python-build/pypy2-5.7.0-src | 2 +- .../share/python-build/pypy2-5.7.1 | 16 +++++++------- .../share/python-build/pypy2-5.7.1-src | 2 +- .../share/python-build/pypy2.7-5.10.0 | 14 ++++++------ .../share/python-build/pypy2.7-5.10.0-src | 2 +- .../share/python-build/pypy2.7-5.8.0 | 16 +++++++------- .../share/python-build/pypy2.7-5.8.0-src | 2 +- .../share/python-build/pypy2.7-5.9.0 | 16 +++++++------- .../share/python-build/pypy2.7-5.9.0-src | 2 +- .../share/python-build/pypy2.7-6.0.0 | 14 ++++++------ .../share/python-build/pypy2.7-6.0.0-src | 2 +- .../share/python-build/pypy2.7-7.0.0 | 10 ++++----- .../share/python-build/pypy2.7-7.0.0-src | 2 +- .../share/python-build/pypy2.7-7.1.0 | 10 ++++----- .../share/python-build/pypy2.7-7.1.0-src | 2 +- .../share/python-build/pypy2.7-7.1.1 | 10 ++++----- .../share/python-build/pypy2.7-7.1.1-src | 2 +- .../share/python-build/pypy2.7-7.2.0 | 8 +++---- .../share/python-build/pypy2.7-7.2.0-src | 2 +- .../share/python-build/pypy2.7-7.3.0 | 10 ++++----- .../share/python-build/pypy2.7-7.3.0-src | 2 +- .../share/python-build/pypy2.7-7.3.1 | 10 ++++----- .../share/python-build/pypy2.7-7.3.1-src | 2 +- .../share/python-build/pypy3-2.3.1 | 18 +++++++-------- .../share/python-build/pypy3-2.3.1-src | 2 +- .../share/python-build/pypy3-2.4.0 | 18 +++++++-------- .../share/python-build/pypy3-2.4.0-src | 2 +- .../share/python-build/pypy3.3-5.2-alpha1 | 16 +++++++------- .../share/python-build/pypy3.3-5.2-alpha1-src | 2 +- .../share/python-build/pypy3.3-5.5-alpha | 14 ++++++------ .../share/python-build/pypy3.3-5.5-alpha-src | 2 +- .../share/python-build/pypy3.5-5.10.0 | 16 +++++++------- .../share/python-build/pypy3.5-5.10.0-src | 2 +- .../share/python-build/pypy3.5-5.10.1 | 14 ++++++------ .../share/python-build/pypy3.5-5.10.1-src | 2 +- .../share/python-build/pypy3.5-5.7-beta | 2 +- .../share/python-build/pypy3.5-5.7-beta-src | 2 +- .../share/python-build/pypy3.5-5.7.1-beta | 4 ++-- .../share/python-build/pypy3.5-5.7.1-beta-src | 2 +- .../share/python-build/pypy3.5-5.8.0 | 2 +- .../share/python-build/pypy3.5-5.8.0-src | 2 +- .../share/python-build/pypy3.5-5.9.0 | 4 ++-- .../share/python-build/pypy3.5-5.9.0-src | 2 +- .../share/python-build/pypy3.5-6.0.0 | 14 ++++++------ .../share/python-build/pypy3.5-6.0.0-src | 2 +- .../share/python-build/pypy3.5-7.0.0 | 10 ++++----- .../share/python-build/pypy3.5-7.0.0-src | 2 +- .../share/python-build/pypy3.6-7.0.0 | 8 +++---- .../share/python-build/pypy3.6-7.0.0-src | 2 +- .../share/python-build/pypy3.6-7.1.0 | 10 ++++----- .../share/python-build/pypy3.6-7.1.0-src | 2 +- .../share/python-build/pypy3.6-7.1.1 | 10 ++++----- .../share/python-build/pypy3.6-7.1.1-src | 2 +- .../share/python-build/pypy3.6-7.2.0 | 8 +++---- .../share/python-build/pypy3.6-7.2.0-src | 2 +- .../share/python-build/pypy3.6-7.3.0 | 10 ++++----- .../share/python-build/pypy3.6-7.3.0-src | 2 +- .../share/python-build/pypy3.6-7.3.1 | 10 ++++----- .../share/python-build/pypy3.6-7.3.1-src | 2 +- 111 files changed, 434 insertions(+), 434 deletions(-) diff --git a/plugins/python-build/share/python-build/pypy-1.6 b/plugins/python-build/share/python-build/pypy-1.6 index 9f1c057cb3..516aaf7ea6 100644 --- a/plugins/python-build/share/python-build/pypy-1.6 +++ b/plugins/python-build/share/python-build/pypy-1.6 @@ -1,16 +1,16 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-linux.tar.bz2#1266c8b5918d84432b8649535fb5c84f6b977331c242bf45c5944033562ce0b2" "pypy" verify_py27 ensurepip + install_package "pypy-1.6" "https://downloads.python.org/pypy/pypy-1.6-linux.tar.bz2#1266c8b5918d84432b8649535fb5c84f6b977331c242bf45c5944033562ce0b2" "pypy" verify_py27 ensurepip ;; "linux64" ) - install_package "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-linux64.tar.bz2#95b229c496339a51c4c1e9749bf8dbd11e4f698521803c089b52577be2cdbab8" "pypy" verify_py27 ensurepip + install_package "pypy-1.6" "https://downloads.python.org/pypy/pypy-1.6-linux64.tar.bz2#95b229c496339a51c4c1e9749bf8dbd11e4f698521803c089b52577be2cdbab8" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-osx64.tar.bz2#147a0e34b3d3a568d5c5926252a2c27e137677b3121cd8daab1d746df2d91e38" "pypy" verify_py27 ensurepip + install_package "pypy-1.6" "https://downloads.python.org/pypy/pypy-1.6-osx64.tar.bz2#147a0e34b3d3a568d5c5926252a2c27e137677b3121cd8daab1d746df2d91e38" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-1.6" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.6-win32-c.zip#75bf79f08e2d65fce51b14fb8fe0309f136ffc368f977017dc3029baf8426e53" "pypy" verify_py27 ensurepip + install_zip "pypy-1.6" "https://downloads.python.org/pypy/pypy-1.6-win32-c.zip#75bf79f08e2d65fce51b14fb8fe0309f136ffc368f977017dc3029baf8426e53" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-1.7 b/plugins/python-build/share/python-build/pypy-1.7 index a951675cb7..4b84d14504 100644 --- a/plugins/python-build/share/python-build/pypy-1.7 +++ b/plugins/python-build/share/python-build/pypy-1.7 @@ -1,16 +1,16 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux.tar.bz2#d8f6af52dd5c32ca65de8b1507ef49490188ec131d53a68db6f81201943b4227" "pypy" verify_py27 ensurepip + install_package "pypy-1.7" "https://downloads.python.org/pypy/pypy-1.7-linux.tar.bz2#d8f6af52dd5c32ca65de8b1507ef49490188ec131d53a68db6f81201943b4227" "pypy" verify_py27 ensurepip ;; "linux64" ) - install_package "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux64.tar.bz2#cd7ff7a4beaaa78c3b9dbcd567fb0b2d672258051f837e727d4fd636788552ca" "pypy" verify_py27 ensurepip + install_package "pypy-1.7" "https://downloads.python.org/pypy/pypy-1.7-linux64.tar.bz2#cd7ff7a4beaaa78c3b9dbcd567fb0b2d672258051f837e727d4fd636788552ca" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-osx64.tar.bz2#9ad01f6e194b1a3d5f2fa82cd6760b4f9e8a791d5ca28cc156c5f03fe43a08ac" "pypy" verify_py27 ensurepip + install_package "pypy-1.7" "https://downloads.python.org/pypy/pypy-1.7-osx64.tar.bz2#9ad01f6e194b1a3d5f2fa82cd6760b4f9e8a791d5ca28cc156c5f03fe43a08ac" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-1.7" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-win32.zip#1d70faaed00f2f69c634dfbb61b54901df64f093d07d976e035578f812ed31ea" "pypy" verify_py27 ensurepip + install_zip "pypy-1.7" "https://downloads.python.org/pypy/pypy-1.7-win32.zip#1d70faaed00f2f69c634dfbb61b54901df64f093d07d976e035578f812ed31ea" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-1.8 b/plugins/python-build/share/python-build/pypy-1.8 index 5e28f8e3ea..96259b79f2 100644 --- a/plugins/python-build/share/python-build/pypy-1.8 +++ b/plugins/python-build/share/python-build/pypy-1.8 @@ -1,16 +1,16 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux.tar.bz2#9c293d8540780260718f8fd8dc433c97b614a31b115ccfe2d68df720ad7e55b1" "pypy" verify_py27 ensurepip + install_package "pypy-1.8" "https://downloads.python.org/pypy/pypy-1.8-linux.tar.bz2#9c293d8540780260718f8fd8dc433c97b614a31b115ccfe2d68df720ad7e55b1" "pypy" verify_py27 ensurepip ;; "linux64" ) - install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2#1045606cceb993844a016b76c55aa43a9924bcf526f91a0572fc97cee69b61dc" "pypy" verify_py27 ensurepip + install_package "pypy-1.8" "https://downloads.python.org/pypy/pypy-1.8-linux64.tar.bz2#1045606cceb993844a016b76c55aa43a9924bcf526f91a0572fc97cee69b61dc" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-osx64.tar.bz2#b823b6b919082cfb67861b8253313b877618672377164086c0364fa8eaa88b8a" "pypy" verify_py27 ensurepip + install_package "pypy-1.8" "https://downloads.python.org/pypy/pypy-1.8-osx64.tar.bz2#b823b6b919082cfb67861b8253313b877618672377164086c0364fa8eaa88b8a" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-1.8" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-win32.zip#a844f54551805d300beffd10b18684e0c08fa080c1b6f7be52bb7fbdfdf38292" "pypy" verify_py27 ensurepip + install_zip "pypy-1.8" "https://downloads.python.org/pypy/pypy-1.8-win32.zip#a844f54551805d300beffd10b18684e0c08fa080c1b6f7be52bb7fbdfdf38292" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-1.9 b/plugins/python-build/share/python-build/pypy-1.9 index 11aa8db27d..353f6cd577 100644 --- a/plugins/python-build/share/python-build/pypy-1.9 +++ b/plugins/python-build/share/python-build/pypy-1.9 @@ -1,16 +1,16 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux.tar.bz2#1e3f9c3d06f8bbfa0dcb1301b40c298096249a7d7c2b4594b3fb1c3e7b9888f2" "pypy" verify_py27 ensurepip + install_package "pypy-1.9" "https://downloads.python.org/pypy/pypy-1.9-linux.tar.bz2#1e3f9c3d06f8bbfa0dcb1301b40c298096249a7d7c2b4594b3fb1c3e7b9888f2" "pypy" verify_py27 ensurepip ;; "linux64" ) - install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2#4298252515e78c96f4ecd9f25be957411c060ece02d9213eef8d781cf528d18f" "pypy" verify_py27 ensurepip + install_package "pypy-1.9" "https://downloads.python.org/pypy/pypy-1.9-linux64.tar.bz2#4298252515e78c96f4ecd9f25be957411c060ece02d9213eef8d781cf528d18f" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-osx64.tar.bz2#4858f200e32c1070c77c1234ea0e9473eeda98bcd3832c4231f3e46e4e3b74b1" "pypy" verify_py27 ensurepip + install_package "pypy-1.9" "https://downloads.python.org/pypy/pypy-1.9-osx64.tar.bz2#4858f200e32c1070c77c1234ea0e9473eeda98bcd3832c4231f3e46e4e3b74b1" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-1.9" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-win32.zip#54fafe8c69df390d2a460bab022145aaacd2c62c4a569873b22fdc7475f31581" "pypy" verify_py27 ensurepip + install_zip "pypy-1.9" "https://downloads.python.org/pypy/pypy-1.9-win32.zip#54fafe8c69df390d2a460bab022145aaacd2c62c4a569873b22fdc7475f31581" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.0 b/plugins/python-build/share/python-build/pypy-2.0 index 02a623b2ff..0f9e807f09 100644 --- a/plugins/python-build/share/python-build/pypy-2.0 +++ b/plugins/python-build/share/python-build/pypy-2.0 @@ -1,26 +1,26 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-linux.tar.bz2#275dbbee67eac527a1177403a0386b17d008740f83030544800d87994edd46b9" "pypy" verify_py27 ensurepip + install_package "pypy-2.0" "https://downloads.python.org/pypy/pypy-2.0-linux.tar.bz2#275dbbee67eac527a1177403a0386b17d008740f83030544800d87994edd46b9" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.0-alpha-arm" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-alpha-arm-armel.tar.bz2#2f8f252d43a15661602a98f93d3292e333423459c5facb43eb2de1bda8eb8495" "pypy" verify_py27 ensurepip + install_package "pypy-2.0-alpha-arm" "https://downloads.python.org/pypy/pypy-2.0-alpha-arm-armel.tar.bz2#2f8f252d43a15661602a98f93d3292e333423459c5facb43eb2de1bda8eb8495" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.0-alpha-arm" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-alpha-arm-armhf.tar.bz2#00e678e5a226be0692ee18438ace1c91d346256cfab8f32e34a24584d018ca34" "pypy" verify_py27 ensurepip + install_package "pypy-2.0-alpha-arm" "https://downloads.python.org/pypy/pypy-2.0-alpha-arm-armhf.tar.bz2#00e678e5a226be0692ee18438ace1c91d346256cfab8f32e34a24584d018ca34" "pypy" verify_py27 ensurepip ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-linux64.tar.bz2#14c716d53a507eece89606d547456b886dbdfc0ba6e3fb29062fafe86d1b6038" "pypy" verify_py27 ensurepip + install_package "pypy-2.0" "https://downloads.python.org/pypy/pypy-2.0-linux64.tar.bz2#14c716d53a507eece89606d547456b886dbdfc0ba6e3fb29062fafe86d1b6038" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-osx64.tar.bz2#6d190f32c9dce9d36d4a2bb91faed581a50fb7fa6249eee201dbf5dbc3e3c7d7" "pypy" verify_py27 ensurepip + install_package "pypy-2.0" "https://downloads.python.org/pypy/pypy-2.0-osx64.tar.bz2#6d190f32c9dce9d36d4a2bb91faed581a50fb7fa6249eee201dbf5dbc3e3c7d7" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.0" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-win32.zip#2f1d5a0d2cb2fa61902eba5479b100d6d26aab211149b06d5acf64089dd20fe1" "pypy" verify_py27 ensurepip + install_zip "pypy-2.0" "https://downloads.python.org/pypy/pypy-2.0-win32.zip#2f1d5a0d2cb2fa61902eba5479b100d6d26aab211149b06d5acf64089dd20fe1" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.0-src b/plugins/python-build/share/python-build/pypy-2.0-src index a76034bf16..19f9f2b3a6 100644 --- a/plugins/python-build/share/python-build/pypy-2.0-src +++ b/plugins/python-build/share/python-build/pypy-2.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-src.tar.bz2#d92dfd418beac915d3efc28f8a2090f3c13a89ec653419deff3d7112c5c111f3" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.0-src" "https://downloads.python.org/pypy/pypy-2.0-src.tar.bz2#d92dfd418beac915d3efc28f8a2090f3c13a89ec653419deff3d7112c5c111f3" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.0.1 b/plugins/python-build/share/python-build/pypy-2.0.1 index ee9e3e7003..4d1b96a22b 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.1 +++ b/plugins/python-build/share/python-build/pypy-2.0.1 @@ -1,18 +1,18 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.0.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-linux.tar.bz2#548686c5b95b424c79586d9a303ed41fca8eba52bd35c1527f39f5cd8fa35ea9" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.1" "https://downloads.python.org/pypy/pypy-2.0.1-linux.tar.bz2#548686c5b95b424c79586d9a303ed41fca8eba52bd35c1527f39f5cd8fa35ea9" "pypy" verify_py27 ensurepip ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.0.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-linux64.tar.bz2#0eb57e28f2bd5f2a4ad396df322de5adf711eb7d9a2bfeb8be2d9eb9e125c5cc" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.1" "https://downloads.python.org/pypy/pypy-2.0.1-linux64.tar.bz2#0eb57e28f2bd5f2a4ad396df322de5adf711eb7d9a2bfeb8be2d9eb9e125c5cc" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.0.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-osx64.tar.bz2#337f2fda672827f2d706fd98e3344a83a8b80675e21b83dd6933da38d110c857" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.1" "https://downloads.python.org/pypy/pypy-2.0.1-osx64.tar.bz2#337f2fda672827f2d706fd98e3344a83a8b80675e21b83dd6933da38d110c857" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.0.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-win32.zip#78fff168c10176a3a7f6a5b97d2048ed87f3cd9a6284b5afa86115baa19af946" "pypy" verify_py27 ensurepip + install_zip "pypy-2.0.1" "https://downloads.python.org/pypy/pypy-2.0.1-win32.zip#78fff168c10176a3a7f6a5b97d2048ed87f3cd9a6284b5afa86115baa19af946" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.0.1-src b/plugins/python-build/share/python-build/pypy-2.0.1-src index d73713a665..6c06e4c48d 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.1-src +++ b/plugins/python-build/share/python-build/pypy-2.0.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.0.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-src.tar.bz2#d1327bc325545939236ac609ec509548a545f97b1c933dedbe42f2482a130aa0" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.0.1-src" "https://downloads.python.org/pypy/pypy-2.0.1-src.tar.bz2#d1327bc325545939236ac609ec509548a545f97b1c933dedbe42f2482a130aa0" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.0.2 b/plugins/python-build/share/python-build/pypy-2.0.2 index b665d6de11..2e605a90ef 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.2 +++ b/plugins/python-build/share/python-build/pypy-2.0.2 @@ -1,18 +1,18 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.0.2" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-linux.tar.bz2#3b43c1ac147f6bb11981dd7f8c5458b95d6bdcf1adceb8043c32ca5e8fcab4da" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-linux.tar.bz2#3b43c1ac147f6bb11981dd7f8c5458b95d6bdcf1adceb8043c32ca5e8fcab4da" "pypy" verify_py27 ensurepip ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.0.2" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-linux64.tar.bz2#3f9bc07959a2d6058a0c1b84da837e2ec457642fe03ac46123d145c419a7b5cd" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-linux64.tar.bz2#3f9bc07959a2d6058a0c1b84da837e2ec457642fe03ac46123d145c419a7b5cd" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.0.2" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-osx64.tar.bz2#34f5a7bf22a8bca3b9d79ae3186016c34638669ab19b4af6e38412181c757761" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-osx64.tar.bz2#34f5a7bf22a8bca3b9d79ae3186016c34638669ab19b4af6e38412181c757761" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.0.2" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-win32.zip#f3cfa54740076c59e6ef02e1411f62551230df5cd20a247e81b6e589478afe66" "pypy" verify_py27 ensurepip + install_zip "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-win32.zip#f3cfa54740076c59e6ef02e1411f62551230df5cd20a247e81b6e589478afe66" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.0.2-src b/plugins/python-build/share/python-build/pypy-2.0.2-src index 325cd00e70..3bc1de6d60 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.2-src +++ b/plugins/python-build/share/python-build/pypy-2.0.2-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.0.2-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-src.tar.bz2#1991c90d6b98e2408b3790d4b57b71ec1c69346328b8321505ce8f6ab4544c3c" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.0.2-src" "https://downloads.python.org/pypy/pypy-2.0.2-src.tar.bz2#1991c90d6b98e2408b3790d4b57b71ec1c69346328b8321505ce8f6ab4544c3c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.1 b/plugins/python-build/share/python-build/pypy-2.1 index f1ed28fae9..6cb58d308c 100644 --- a/plugins/python-build/share/python-build/pypy-2.1 +++ b/plugins/python-build/share/python-build/pypy-2.1 @@ -1,30 +1,30 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux.tar.bz2#9c0a38a40d3b4e642a159e51abef2827b33e3f7a254365daa24eae85d840eaf5" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux.tar.bz2#9c0a38a40d3b4e642a159e51abef2827b33e3f7a254365daa24eae85d840eaf5" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux-armel.tar.bz2#15af2d7485c9e4363805ad5b63bf8a67cd9516e7e34c4abb822229a2a41aee1d" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux-armel.tar.bz2#15af2d7485c9e4363805ad5b63bf8a67cd9516e7e34c4abb822229a2a41aee1d" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux-armhf-raspbian.tar.bz2#b11c27447051af00928fcc3d1f20f1441c285045a3acb8cfba8721c63ee90df3" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux-armhf-raspbian.tar.bz2#b11c27447051af00928fcc3d1f20f1441c285045a3acb8cfba8721c63ee90df3" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux-armhf-raring.tar.bz2#fbab31154848f309ef72b6e845e289285907eda950f6b632963217c463b5d4de" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux-armhf-raring.tar.bz2#fbab31154848f309ef72b6e845e289285907eda950f6b632963217c463b5d4de" "pypy" verify_py27 ensurepip fi ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux64.tar.bz2#80f90bb473635a0249049e87c5cc7cf738e13537c1f1e2857b6345848a3e6d20" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux64.tar.bz2#80f90bb473635a0249049e87c5cc7cf738e13537c1f1e2857b6345848a3e6d20" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-osx64.tar.bz2#d0d788c6d54bb866ace67a1740133cb5bc62357b5ca4783244097f1f648876f0" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-osx64.tar.bz2#d0d788c6d54bb866ace67a1740133cb5bc62357b5ca4783244097f1f648876f0" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.1" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-win32.zip#c425a35a6c4938e314ad48014816e05c8e5246d770abe135e11a1f9821eecf53" "pypy" verify_py27 ensurepip + install_zip "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-win32.zip#c425a35a6c4938e314ad48014816e05c8e5246d770abe135e11a1f9821eecf53" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.1-src b/plugins/python-build/share/python-build/pypy-2.1-src index 888f40ade5..eb5fad2b3e 100644 --- a/plugins/python-build/share/python-build/pypy-2.1-src +++ b/plugins/python-build/share/python-build/pypy-2.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-src.tar.bz2#31b3066c9739b117d6bb1bdc485a919dc3b67370ec00437de1b74069943f7f17" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.1-src" "https://downloads.python.org/pypy/pypy-2.1-src.tar.bz2#31b3066c9739b117d6bb1bdc485a919dc3b67370ec00437de1b74069943f7f17" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.2 b/plugins/python-build/share/python-build/pypy-2.2 index fd624a0754..08403febb2 100644 --- a/plugins/python-build/share/python-build/pypy-2.2 +++ b/plugins/python-build/share/python-build/pypy-2.2 @@ -1,30 +1,30 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.2-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-linux.tar.bz2#2bdab70106f6b6d0dd97e42535ce73711c987887fb81fb821801f6fdcd92cdc4" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux" "https://downloads.python.org/pypy/pypy-2.2-linux.tar.bz2#2bdab70106f6b6d0dd97e42535ce73711c987887fb81fb821801f6fdcd92cdc4" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.2-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-linux-armel.tar.bz2#98bfc524f9cf4fd96225f9fc9b0a3a379b8a1a06231b058c51bb875b363f4d75" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux-armel" "https://downloads.python.org/pypy/pypy-2.2-linux-armel.tar.bz2#98bfc524f9cf4fd96225f9fc9b0a3a379b8a1a06231b058c51bb875b363f4d75" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.2-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-linux-armhf-raspbian.tar.bz2#4856151d9a6dda82edd9d74f872e97243df3676fc25bbf661f976982194caa47" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.2-linux-armhf-raspbian.tar.bz2#4856151d9a6dda82edd9d74f872e97243df3676fc25bbf661f976982194caa47" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.2-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-linux-armhf-raring.tar.bz2#d64eeeac0a73bd073d8f875210b0e85ed8f0d9655d3f3cc8abb68093a1eb7366" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.2-linux-armhf-raring.tar.bz2#d64eeeac0a73bd073d8f875210b0e85ed8f0d9655d3f3cc8abb68093a1eb7366" "pypy" verify_py27 ensurepip fi ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.2-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-linux64.tar.bz2#1583af0122c6ccb0cb95f8c3732925551ce3ca6d5ea0657e21523f8bf97837a3" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux64" "https://downloads.python.org/pypy/pypy-2.2-linux64.tar.bz2#1583af0122c6ccb0cb95f8c3732925551ce3ca6d5ea0657e21523f8bf97837a3" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.2-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-osx64.tar.bz2#8aa943de7ec38f13fa836b6964dbf58b45142e4fe7b3fdd5fffe37fdcf974e01" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-osx64" "https://downloads.python.org/pypy/pypy-2.2-osx64.tar.bz2#8aa943de7ec38f13fa836b6964dbf58b45142e4fe7b3fdd5fffe37fdcf974e01" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.2-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-win32.zip#c7a6682cde9034835b337be95415aee21cb4de85049d65a4674efe15d214dfb9" "pypy" verify_py27 ensurepip + install_zip "pypy-2.2-win32" "https://downloads.python.org/pypy/pypy-2.2-win32.zip#c7a6682cde9034835b337be95415aee21cb4de85049d65a4674efe15d214dfb9" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.2-src b/plugins/python-build/share/python-build/pypy-2.2-src index 9139d735a7..b9928c34d4 100644 --- a/plugins/python-build/share/python-build/pypy-2.2-src +++ b/plugins/python-build/share/python-build/pypy-2.2-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.2-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-src.tar.bz2#50fffcb86039e019530a63d656580bc53c173e5f19768bddd8699cd08448e04e" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.2-src" "https://downloads.python.org/pypy/pypy-2.2-src.tar.bz2#50fffcb86039e019530a63d656580bc53c173e5f19768bddd8699cd08448e04e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.2.1 b/plugins/python-build/share/python-build/pypy-2.2.1 index 6ae8652103..172bed078a 100644 --- a/plugins/python-build/share/python-build/pypy-2.2.1 +++ b/plugins/python-build/share/python-build/pypy-2.2.1 @@ -1,30 +1,30 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.2.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-linux.tar.bz2#4d13483a0e13fc617a7b3d36918ed0e63cf07a7d2827c0a08132b80bc401a55a" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux" "https://downloads.python.org/pypy/pypy-2.2.1-linux.tar.bz2#4d13483a0e13fc617a7b3d36918ed0e63cf07a7d2827c0a08132b80bc401a55a" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.2.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-linux-armel.tar.bz2#f0a15c7f4d66f152c58d73475314b906dcd3052fc422a8bb8cf88ae1ca0a8b19" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux-armel" "https://downloads.python.org/pypy/pypy-2.2.1-linux-armel.tar.bz2#f0a15c7f4d66f152c58d73475314b906dcd3052fc422a8bb8cf88ae1ca0a8b19" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.2.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-linux-armhf-raspbian.tar.bz2#31d921a8139ec6accf9749df2baff4aed844f6f46eeb37184119ff9c7d6fca55" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.2.1-linux-armhf-raspbian.tar.bz2#31d921a8139ec6accf9749df2baff4aed844f6f46eeb37184119ff9c7d6fca55" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.2.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-linux-armhf-raring.tar.bz2#6f5fe3285a32d1ea8fe148265467f870c6863ae00bc2e279b31b94d2d7f80102" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.2.1-linux-armhf-raring.tar.bz2#6f5fe3285a32d1ea8fe148265467f870c6863ae00bc2e279b31b94d2d7f80102" "pypy" verify_py27 ensurepip fi ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.2.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-linux64.tar.bz2#022d611ac62a276890d3e262f4f7cc839fcf9f5e1416df01dcd83ba335eacb16" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux64" "https://downloads.python.org/pypy/pypy-2.2.1-linux64.tar.bz2#022d611ac62a276890d3e262f4f7cc839fcf9f5e1416df01dcd83ba335eacb16" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.2.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-osx64.tar.bz2#93e215dcffc9073acf41c63518f47fb59de60386aca4416cfe32190c7a096f29" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-osx64" "https://downloads.python.org/pypy/pypy-2.2.1-osx64.tar.bz2#93e215dcffc9073acf41c63518f47fb59de60386aca4416cfe32190c7a096f29" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.2.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-win32.zip#d36f4f1b4f146b3a0a623abef9b5a837c08f66e67c90023c724dfdcd8e0133bb" "pypy" verify_py27 ensurepip + install_zip "pypy-2.2.1-win32" "https://downloads.python.org/pypy/pypy-2.2.1-win32.zip#d36f4f1b4f146b3a0a623abef9b5a837c08f66e67c90023c724dfdcd8e0133bb" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.2.1-src b/plugins/python-build/share/python-build/pypy-2.2.1-src index 080050a388..b83c91c940 100644 --- a/plugins/python-build/share/python-build/pypy-2.2.1-src +++ b/plugins/python-build/share/python-build/pypy-2.2.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.2.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-src.tar.bz2#252045187e443656a2beb412dadac9296e8fe8db0f75a66ed5265db58c35035f" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.2.1-src" "https://downloads.python.org/pypy/pypy-2.2.1-src.tar.bz2#252045187e443656a2beb412dadac9296e8fe8db0f75a66ed5265db58c35035f" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3 b/plugins/python-build/share/python-build/pypy-2.3 index 28f3dfc5d6..08b7ccb9dd 100644 --- a/plugins/python-build/share/python-build/pypy-2.3 +++ b/plugins/python-build/share/python-build/pypy-2.3 @@ -1,30 +1,30 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.3-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-linux.tar.bz2#9071072d42344fb37cc588429864b00fff447bd5d33d51008641fe6822823f1b" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux" "https://downloads.python.org/pypy/pypy-2.3-linux.tar.bz2#9071072d42344fb37cc588429864b00fff447bd5d33d51008641fe6822823f1b" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.3-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-linux-armel.tar.bz2#18394acc9ce356d109cbd92224a9d724a7eb53a0505ce0ec5de36ee20b288a07" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux-armel" "https://downloads.python.org/pypy/pypy-2.3-linux-armel.tar.bz2#18394acc9ce356d109cbd92224a9d724a7eb53a0505ce0ec5de36ee20b288a07" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.3-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-linux-armhf-raspbian.tar.bz2#92584cfccde188b6a3a850ecf226daa9924788a1da8574c57c10a7551fb127d4" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.3-linux-armhf-raspbian.tar.bz2#92584cfccde188b6a3a850ecf226daa9924788a1da8574c57c10a7551fb127d4" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.3-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-linux-armhf-raring.tar.bz2#c8c4a4da406db8ea6dfec074951e1ac150619b0709317ceaafb6bdd837acf96e" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.3-linux-armhf-raring.tar.bz2#c8c4a4da406db8ea6dfec074951e1ac150619b0709317ceaafb6bdd837acf96e" "pypy" verify_py27 ensurepip fi ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.3-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-linux64.tar.bz2#777dbdd9c67ad1b8906288b01ae76bc9f7b80c95e967836f9a700a1679b80008" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux64" "https://downloads.python.org/pypy/pypy-2.3-linux64.tar.bz2#777dbdd9c67ad1b8906288b01ae76bc9f7b80c95e967836f9a700a1679b80008" "pypy" verify_py27 ensurepip ;; "osx64" ) - install_package "pypy-2.3-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-osx64.tar.bz2#df7ca23ba6c8a63149d910b482be04f069b26dd1f7d0ca15e6342cac94e759d7" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-osx64" "https://downloads.python.org/pypy/pypy-2.3-osx64.tar.bz2#df7ca23ba6c8a63149d910b482be04f069b26dd1f7d0ca15e6342cac94e759d7" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.3-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-win32.zip#72f46afe69281147ad9abc88a7b39d1840e112e626a8be251a5f9f7308c559c7" "pypy" verify_py27 ensurepip + install_zip "pypy-2.3-win32" "https://downloads.python.org/pypy/pypy-2.3-win32.zip#72f46afe69281147ad9abc88a7b39d1840e112e626a8be251a5f9f7308c559c7" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.3-src b/plugins/python-build/share/python-build/pypy-2.3-src index e05f5de514..bd4b3f9ae5 100644 --- a/plugins/python-build/share/python-build/pypy-2.3-src +++ b/plugins/python-build/share/python-build/pypy-2.3-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-394146e9bb67" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-src.tar.bz2#be2c271e7f9d7c0059a551ba1501713c00336e551e7f13107f0f34c721d95b0c" "pypy_builder" verify_py27 ensurepip +install_package "pypy-pypy-394146e9bb67" "https://downloads.python.org/pypy/pypy-2.3-src.tar.bz2#be2c271e7f9d7c0059a551ba1501713c00336e551e7f13107f0f34c721d95b0c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3.1 b/plugins/python-build/share/python-build/pypy-2.3.1 index c592e248fe..ffaaeca82b 100644 --- a/plugins/python-build/share/python-build/pypy-2.3.1 +++ b/plugins/python-build/share/python-build/pypy-2.3.1 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.3.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-linux.tar.bz2#3eed698e8533cca7cbd2c2c87fce39dc14baa7dec03f4b082d870131d2a470e4" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux" "https://downloads.python.org/pypy/pypy-2.3.1-linux.tar.bz2#3eed698e8533cca7cbd2c2c87fce39dc14baa7dec03f4b082d870131d2a470e4" "pypy" verify_py27 ensurepip else - install_package "pypy-2.3.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.3.1-linux_i686-portable.tar.bz2#d8784020f6b8a5812fd8b3f5e1df8afb176fd56c2a929d4408d28d4a925525fa" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3.1-linux_i686-portable.tar.bz2#d8784020f6b8a5812fd8b3f5e1df8afb176fd56c2a929d4408d28d4a925525fa" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.3.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-linux-armel.tar.bz2#4d71679597b4e971d7e566d9696851dd2ec1a90a04696184d2d0f6b5446d9706" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux-armel" "https://downloads.python.org/pypy/pypy-2.3.1-linux-armel.tar.bz2#4d71679597b4e971d7e566d9696851dd2ec1a90a04696184d2d0f6b5446d9706" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.3.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-linux-armhf-raspbian.tar.bz2#74ac62f8cf6dfa0b2f04debd8bbedaed21a12a1a4d4da22856410d06dc0c971c" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.3.1-linux-armhf-raspbian.tar.bz2#74ac62f8cf6dfa0b2f04debd8bbedaed21a12a1a4d4da22856410d06dc0c971c" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.3.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-linux-armhf-raring.tar.bz2#f65ad31c364e8122f55d77388026cf4750c6a8774af361b79dc9942612c3a8c1" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.3.1-linux-armhf-raring.tar.bz2#f65ad31c364e8122f55d77388026cf4750c6a8774af361b79dc9942612c3a8c1" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy-2.3.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-linux64.tar.bz2#dab7940496d96f1f255a8ef402fa96b94444775e373484e057d2fcabc3928b42" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux64" "https://downloads.python.org/pypy/pypy-2.3.1-linux64.tar.bz2#dab7940496d96f1f255a8ef402fa96b94444775e373484e057d2fcabc3928b42" "pypy" verify_py27 ensurepip else - install_package "pypy-2.3.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.3.1-linux_x86_64-portable.tar.bz2#453bd1291f0372e25ceab6b37b7a8d1756bebd3e708fcce1379ef931ccf9f75a" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3.1-linux_x86_64-portable.tar.bz2#453bd1291f0372e25ceab6b37b7a8d1756bebd3e708fcce1379ef931ccf9f75a" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-2.3.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-osx64.tar.bz2#12e363bf5ea3a508600e043b68c47d4148359ca3d999ee207665bb139f8fbf37" "pypy" verify_py27 ensurepip + install_package "pypy-2.3.1-osx64" "https://downloads.python.org/pypy/pypy-2.3.1-osx64.tar.bz2#12e363bf5ea3a508600e043b68c47d4148359ca3d999ee207665bb139f8fbf37" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.3.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-win32.zip#c8db46d0e5199420dae583f6d2901eb4d4023ced75f035a6e26c232f229f8e0a" "pypy" verify_py27 ensurepip + install_zip "pypy-2.3.1-win32" "https://downloads.python.org/pypy/pypy-2.3.1-win32.zip#c8db46d0e5199420dae583f6d2901eb4d4023ced75f035a6e26c232f229f8e0a" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.4.0 b/plugins/python-build/share/python-build/pypy-2.4.0 index 2055c04a22..90b45046a1 100644 --- a/plugins/python-build/share/python-build/pypy-2.4.0 +++ b/plugins/python-build/share/python-build/pypy-2.4.0 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.4.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux.tar.bz2#a24adb366f87ac0eba829d7188a156a7d897e71893689fab06502c3f4152ac0e" "pypy" verify_py27 ensurepip + install_package "pypy-2.4.0-linux" "https://downloads.python.org/pypy/pypy-2.4.0-linux.tar.bz2#a24adb366f87ac0eba829d7188a156a7d897e71893689fab06502c3f4152ac0e" "pypy" verify_py27 ensurepip else - install_package "pypy-2.4-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.4-linux_i686-portable.tar.bz2#2a330bbeae038c143366982f2104bf4096752f1ec7520fc5608f0527c124b0c2" "pypy" verify_py27 ensurepip + install_package "pypy-2.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.4-linux_i686-portable.tar.bz2#2a330bbeae038c143366982f2104bf4096752f1ec7520fc5608f0527c124b0c2" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.4.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux-armel.tar.bz2#8362d634bf86fbfb3b99b578b13c0a9fd673b2b7580d6d65b4a181934c659ccd" "pypy" verify_py27 ensurepip + install_package "pypy-2.4.0-linux-armel" "https://downloads.python.org/pypy/pypy-2.4.0-linux-armel.tar.bz2#8362d634bf86fbfb3b99b578b13c0a9fd673b2b7580d6d65b4a181934c659ccd" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.4.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux-armhf-raspbian.tar.bz2#5e0ba69b28ffbd5b61b0b6be2a130ab0c80e7d2da289d9530b0b6eac4302d5fa" "pypy" verify_py27 ensurepip + install_package "pypy-2.4.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.4.0-linux-armhf-raspbian.tar.bz2#5e0ba69b28ffbd5b61b0b6be2a130ab0c80e7d2da289d9530b0b6eac4302d5fa" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.4.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux-armhf-raring.tar.bz2#ddbdd6207c41cf82d8c96d52a2a204a2cdada9301cb577f9b323f22394bb1f0a" "pypy" verify_py27 ensurepip + install_package "pypy-2.4.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.4.0-linux-armhf-raring.tar.bz2#ddbdd6207c41cf82d8c96d52a2a204a2cdada9301cb577f9b323f22394bb1f0a" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy-2.4.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux64.tar.bz2#27cdc0d6e8bce2637678f6d076fc780877dffe1bf9aec9e253f95219af9ed099" "pypy" verify_py27 ensurepip + install_package "pypy-2.4.0-linux64" "https://downloads.python.org/pypy/pypy-2.4.0-linux64.tar.bz2#27cdc0d6e8bce2637678f6d076fc780877dffe1bf9aec9e253f95219af9ed099" "pypy" verify_py27 ensurepip else - install_package "pypy-2.4-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.4-linux_x86_64-portable.tar.bz2#b6ed31aff0ebcc9b40554576b1ce789fe4e8c93f7a34cd3983515e1a9a8a45b6" "pypy" verify_py27 ensurepip + install_package "pypy-2.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.4-linux_x86_64-portable.tar.bz2#b6ed31aff0ebcc9b40554576b1ce789fe4e8c93f7a34cd3983515e1a9a8a45b6" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-2.4.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-osx64.tar.bz2#3eb8afdfa42bc9b08b4d3058e21d4ce978a52722fdcfdc67d6c3ee5013a51aaa" "pypy" verify_py27 ensurepip + install_package "pypy-2.4.0-osx64" "https://downloads.python.org/pypy/pypy-2.4.0-osx64.tar.bz2#3eb8afdfa42bc9b08b4d3058e21d4ce978a52722fdcfdc67d6c3ee5013a51aaa" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.4.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-win32.zip#3eb8afdfa42bc9b08b4d3058e21d4ce978a52722fdcfdc67d6c3ee5013a51aaa" "pypy" verify_py27 ensurepip + install_zip "pypy-2.4.0-win32" "https://downloads.python.org/pypy/pypy-2.4.0-win32.zip#3eb8afdfa42bc9b08b4d3058e21d4ce978a52722fdcfdc67d6c3ee5013a51aaa" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.5.0 b/plugins/python-build/share/python-build/pypy-2.5.0 index 7d7d62a6bc..fd0f2fa64e 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.0 +++ b/plugins/python-build/share/python-build/pypy-2.5.0 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.5.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux.tar.bz2#3dfd56a986d25929b4ed9f40a5484f72f1d513cd816cf8aaa683106c3391247c" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.0-linux" "https://downloads.python.org/pypy/pypy-2.5.0-linux.tar.bz2#3dfd56a986d25929b4ed9f40a5484f72f1d513cd816cf8aaa683106c3391247c" "pypy" verify_py27 ensurepip else - install_package "pypy-2.5-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.5-linux_i686-portable.tar.bz2#6cbe3e1a48900f22c8e4412f82906fba92dd4a165bac5fe6866a2a26383fe3b8" "pypy" verify_py27 ensurepip + install_package "pypy-2.5-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5-linux_i686-portable.tar.bz2#6cbe3e1a48900f22c8e4412f82906fba92dd4a165bac5fe6866a2a26383fe3b8" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.5.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux-armel.tar.bz2#277fa6c61d63af96893dafd19e1ffea7b988397c6a0fd66cd99dc0db1029be56" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.0-linux-armel" "https://downloads.python.org/pypy/pypy-2.5.0-linux-armel.tar.bz2#277fa6c61d63af96893dafd19e1ffea7b988397c6a0fd66cd99dc0db1029be56" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.5.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux-armhf-raspbian.tar.bz2#6c975e39f0e7d57176b49a987a08862a3cbd9aeb52f47eb4ab148ea334e747fd" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.5.0-linux-armhf-raspbian.tar.bz2#6c975e39f0e7d57176b49a987a08862a3cbd9aeb52f47eb4ab148ea334e747fd" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.5.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux-armhf-raring.tar.bz2#1866bf2b8a8144c68d64f2ba982c6c545849913167b4602b762716332ec1fa0b" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.5.0-linux-armhf-raring.tar.bz2#1866bf2b8a8144c68d64f2ba982c6c545849913167b4602b762716332ec1fa0b" "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.5.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-linux64.tar.bz2#7764fb6b662407f8709eaa334c542aac9cb6bfe3291ac198dad0980ca129f3c2" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.0-linux64" "https://downloads.python.org/pypy/pypy-2.5.0-linux64.tar.bz2#7764fb6b662407f8709eaa334c542aac9cb6bfe3291ac198dad0980ca129f3c2" "pypy" verify_py27 ensurepip else - install_package "pypy-2.5-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-2.5-linux_x86_64-portable.tar.bz2#26c5a0964b32b09be0282766c27937c843a12b6820ff2d440c6d47a6092837e0" "pypy" verify_py27 ensurepip + install_package "pypy-2.5-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5-linux_x86_64-portable.tar.bz2#26c5a0964b32b09be0282766c27937c843a12b6820ff2d440c6d47a6092837e0" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-2.5.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-osx64.tar.bz2#30b392b969b54cde281b07f5c10865a7f2e11a229c46b8af384ca1d3fe8d4e6e" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.0-osx64" "https://downloads.python.org/pypy/pypy-2.5.0-osx64.tar.bz2#30b392b969b54cde281b07f5c10865a7f2e11a229c46b8af384ca1d3fe8d4e6e" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.5.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.0-win32.zip#692391434cf14016d74c6b8bda8f93135ef026f48c8327f3195bfa24d314317d" "pypy" verify_py27 ensurepip + install_zip "pypy-2.5.0-win32" "https://downloads.python.org/pypy/pypy-2.5.0-win32.zip#692391434cf14016d74c6b8bda8f93135ef026f48c8327f3195bfa24d314317d" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.5.1 b/plugins/python-build/share/python-build/pypy-2.5.1 index 06bf7607ca..19326da9b4 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.1 +++ b/plugins/python-build/share/python-build/pypy-2.5.1 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.5.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux.tar.bz2#c0035a2650cafcb384050a8c476ddc41c9fd40b0c3677fab68026f57c715907a" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.1-linux" "https://downloads.python.org/pypy/pypy-2.5.1-linux.tar.bz2#c0035a2650cafcb384050a8c476ddc41c9fd40b0c3677fab68026f57c715907a" "pypy" verify_py27 ensurepip else - 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 + install_package "pypy-2.5.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5.1-linux_i686-portable.tar.bz2#ed532ddde3332d10faa59af49854cacbca458c597889352e619a87ab22363063" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.5.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux-armel.tar.bz2#91d68551b6e738c1e47aaed869a6df8208abb8c60194a1647c6aa13c7363a61d" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.1-linux-armel" "https://downloads.python.org/pypy/pypy-2.5.1-linux-armel.tar.bz2#91d68551b6e738c1e47aaed869a6df8208abb8c60194a1647c6aa13c7363a61d" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-2.5.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux-armhf-raspbian.tar.bz2#2b730f86b56fcc72f5bfcfe6a38b5a6fe27654f73b2256e10297373af169a69e" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-2.5.1-linux-armhf-raspbian.tar.bz2#2b730f86b56fcc72f5bfcfe6a38b5a6fe27654f73b2256e10297373af169a69e" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-2.5.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux-armhf-raring.tar.bz2#0a5648c18cc604b0a8eaa559549cb332d18358fc551865e9b7ef051b796e4ec7" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-2.5.1-linux-armhf-raring.tar.bz2#0a5648c18cc604b0a8eaa559549cb332d18358fc551865e9b7ef051b796e4ec7" "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.5.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-linux64.tar.bz2#68e0955dbc80a0d51dfa9a8a76d8623f34920ece1bcbc6d910c2be019a653ba8" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.1-linux64" "https://downloads.python.org/pypy/pypy-2.5.1-linux64.tar.bz2#68e0955dbc80a0d51dfa9a8a76d8623f34920ece1bcbc6d910c2be019a653ba8" "pypy" verify_py27 ensurepip else - 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 + install_package "pypy-2.5.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5.1-linux_x86_64-portable.tar.bz2#157bee6349878cf0ef575b0d7bfd6cbb837c00e83b2872c924580ef7bc32c0d7" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-2.5.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-osx64.tar.bz2#db40dc8b5e95ef9c3322bd9897099e91555ef34188cf1c3852a92b081142d183" "pypy" verify_py27 ensurepip + install_package "pypy-2.5.1-osx64" "https://downloads.python.org/pypy/pypy-2.5.1-osx64.tar.bz2#db40dc8b5e95ef9c3322bd9897099e91555ef34188cf1c3852a92b081142d183" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.5.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-win32.zip#0dbf90c30e848a91611bea99968a215244db02cf5f649114f10269cf1a15d607" "pypy" verify_py27 ensurepip + install_zip "pypy-2.5.1-win32" "https://downloads.python.org/pypy/pypy-2.5.1-win32.zip#0dbf90c30e848a91611bea99968a215244db02cf5f649114f10269cf1a15d607" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.5.1-src b/plugins/python-build/share/python-build/pypy-2.5.1-src index f56dd0f713..e465d28baa 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.1-src +++ b/plugins/python-build/share/python-build/pypy-2.5.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.5.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.5.1-src.tar.bz2#ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a" "pypy_builder" verify_py27 ensurepip +install_package "pypy-2.5.1-src" "https://downloads.python.org/pypy/pypy-2.5.1-src.tar.bz2#ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.0 b/plugins/python-build/share/python-build/pypy-2.6.0 index ceed07cb90..b1e6b4f2cb 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.0 +++ b/plugins/python-build/share/python-build/pypy-2.6.0 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.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 + install_package "pypy-2.6.0-linux" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6-linux_i686-portable.tar.bz2#e01db0984f7fecd80dadfb1d5f65118e596e3984d12643b4d552e83f92bff549" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.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 + install_package "pypy-2.6.0-linux-armel" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.0-linux-armhf-raring" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.0-linux64" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/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 + install_package "pypy-2.6.0-osx64" "https://downloads.python.org/pypy/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 + install_zip "pypy-2.6.0-win32" "https://downloads.python.org/pypy/pypy-2.6.0-win32.zip#de907e7fef7b9b6ceccfc8aa5f4781ee3bc4a49b119d4b22ab5e25eab21c6e8d" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.6.0-src b/plugins/python-build/share/python-build/pypy-2.6.0-src index 156ae7d376..a1661d72f1 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.0-src +++ b/plugins/python-build/share/python-build/pypy-2.6.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -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 +install_package "pypy-2.6.0-src" "https://downloads.python.org/pypy/pypy-2.6.0-src.tar.bz2#9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.1 b/plugins/python-build/share/python-build/pypy-2.6.1 index 6dbeab1ba8..30d444465c 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.1 +++ b/plugins/python-build/share/python-build/pypy-2.6.1 @@ -1,39 +1,39 @@ case "$(pypy_architecture 2>/dev/null || true)" in "freebsd64" ) - install_package "pypy-2.6.1-freebsd64" "https://bitbucket.org/pypy/pypy/downloads/pypy-2.6.1-freebsd64.tar.bz2#58118e88ce01c1d48b31d293db40687efbdeba54334eb55ba96de9ecf3c39055" "pypy" verify_py27 ensurepip + install_package "pypy-2.6.1-freebsd64" "https://downloads.python.org/pypy/pypy-2.6.1-freebsd64.tar.bz2#58118e88ce01c1d48b31d293db40687efbdeba54334eb55ba96de9ecf3c39055" "pypy" verify_py27 ensurepip ;; "linux" ) if require_distro "Ubuntu 10.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 + install_package "pypy-2.6.1-linux" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6.1-linux_i686-portable.tar.bz2#af8f05790fe21bffdb0619d39f2890e2ecabe47bbd3b21c2c97b9778e4cdb378" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.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 + install_package "pypy-2.6.1-linux-armel" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.1-linux-armhf-raring" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.1-linux64" "https://downloads.python.org/pypy/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 + install_package "pypy-2.6.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/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 + install_package "pypy-2.6.1-osx64" "https://downloads.python.org/pypy/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 + install_zip "pypy-2.6.1-win32" "https://downloads.python.org/pypy/pypy-2.6.1-win32.zip#ccea3940fdedc03e2fcb5acf6badfe6d9c1ae876d5faf0a004e1d94edd7fd856" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.6.1-src b/plugins/python-build/share/python-build/pypy-2.6.1-src index 293f3275b8..aca1c9d491 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.1-src +++ b/plugins/python-build/share/python-build/pypy-2.6.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -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 +install_package "pypy-2.6.1-src" "https://downloads.python.org/pypy/pypy-2.6.1-src.tar.bz2#7fddd414c9348c2f899f79ad86adc3fc2b19443855b5243f58487e1f0ac46560" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.0 b/plugins/python-build/share/python-build/pypy-4.0.0 index 62f497af82..6098e4c500 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.0 +++ b/plugins/python-build/share/python-build/pypy-4.0.0 @@ -1,44 +1,44 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-4.0.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-linux.tar.bz2#365600947775bc73a902a5b1d11f8b96cf49f07cdbbab28bb47240097b4bb4c5" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-linux" "https://downloads.python.org/pypy/pypy-4.0.0-linux.tar.bz2#365600947775bc73a902a5b1d11f8b96cf49f07cdbbab28bb47240097b4bb4c5" "pypy" verify_py27 ensurepip else - install_package "pypy-4.0-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-4.0-linux_i686-portable.tar.bz2#8d6b775a1fdc79db453f80e6b50cd9979d89be3714cd71d3af21bf9f56745610" "pypy" verify_py27 ensurepip + install_package "pypy-4.0-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0-linux_i686-portable.tar.bz2#8d6b775a1fdc79db453f80e6b50cd9979d89be3714cd71d3af21bf9f56745610" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-4.0.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-linux-armel.tar.bz2#612df41fa21c5bc95d8d3575e0d8c09f605de6f0684109222afa561672dd9c7b" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-linux-armel" "https://downloads.python.org/pypy/pypy-4.0.0-linux-armel.tar.bz2#612df41fa21c5bc95d8d3575e0d8c09f605de6f0684109222afa561672dd9c7b" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-4.0.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-linux-armhf-raspbian.tar.bz2#fccd9d8436781cbeb8c94e2b37e590303c52e63bc50ed30c4a99a46f022c44bb" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-4.0.0-linux-armhf-raspbian.tar.bz2#fccd9d8436781cbeb8c94e2b37e590303c52e63bc50ed30c4a99a46f022c44bb" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-4.0.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-linux-armhf-raring.tar.bz2#9586d9accdb8faa488a313132047e0dad73c8facc222201380d4935a2ba429b8" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-4.0.0-linux-armhf-raring.tar.bz2#9586d9accdb8faa488a313132047e0dad73c8facc222201380d4935a2ba429b8" "pypy" verify_py27 ensurepip fi ;; "linux-ppc64" ) require_distro "Fedora 20" || true - install_package "pypy-4.0.0-ppc64" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-ppc64.tar.bz2#729eab7fa84289a094d69fe1607ef97c8e7acc08588db5cd410c9dd26bdd4110" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-ppc64" "https://downloads.python.org/pypy/pypy-4.0.0-ppc64.tar.bz2#729eab7fa84289a094d69fe1607ef97c8e7acc08588db5cd410c9dd26bdd4110" "pypy" verify_py27 ensurepip ;; "linux-ppc64le" ) require_distro "Fedora 21" || true - install_package "pypy-4.0.0-ppc64le" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-ppc64le.tar.bz2#0ba3c313afb48cba2798c9b46e9a27e24a597f90e092b649b6ac9cd8af4f7765" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-ppc64le" "https://downloads.python.org/pypy/pypy-4.0.0-ppc64le.tar.bz2#0ba3c313afb48cba2798c9b46e9a27e24a597f90e092b649b6ac9cd8af4f7765" "pypy" verify_py27 ensurepip ;; "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-4.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-linux64.tar.bz2#30365cf4fa6cd8e9ff44126f06dcaebefda35c2543ddcf9b9e8516c29cabe726" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-linux64" "https://downloads.python.org/pypy/pypy-4.0.0-linux64.tar.bz2#30365cf4fa6cd8e9ff44126f06dcaebefda35c2543ddcf9b9e8516c29cabe726" "pypy" verify_py27 ensurepip else install_package "pypy-4.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-4.0-linux_x86_64-portable.tar.bz2#61fb04eaa823763b8de777e16edc02b09116985586f53c14c6e85d531072a38f" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-4.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-osx64.tar.bz2#d9e590fe5b9461bbdff56c76636e844ef90a297f82d0d2e204866c8a21759a50" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.0-osx64" "https://downloads.python.org/pypy/pypy-4.0.0-osx64.tar.bz2#d9e590fe5b9461bbdff56c76636e844ef90a297f82d0d2e204866c8a21759a50" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-4.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-win32.zip#d906ffa98b120496cbbc1623d0fd08662c3a589340ae7071c669432eccf26e00" "pypy" verify_py27 ensurepip + install_zip "pypy-4.0.0-win32" "https://downloads.python.org/pypy/pypy-4.0.0-win32.zip#d906ffa98b120496cbbc1623d0fd08662c3a589340ae7071c669432eccf26e00" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-4.0.0-src b/plugins/python-build/share/python-build/pypy-4.0.0-src index c7129d6e3a..e3491b26ef 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.0-src +++ b/plugins/python-build/share/python-build/pypy-4.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-4.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.0-src.tar.bz2#acff480e44ce92acd057f2e786775af36dc3c2cd12e9efc60a1ac6a562ad7b4d" "pypy_builder" verify_py27 ensurepip +install_package "pypy-4.0.0-src" "https://downloads.python.org/pypy/pypy-4.0.0-src.tar.bz2#acff480e44ce92acd057f2e786775af36dc3c2cd12e9efc60a1ac6a562ad7b4d" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.1 b/plugins/python-build/share/python-build/pypy-4.0.1 index 388d80b957..ec532fba3f 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.1 +++ b/plugins/python-build/share/python-build/pypy-4.0.1 @@ -1,21 +1,21 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-4.0.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-linux.tar.bz2#721920fcbb6aefc9a98e868e32b7f4ea5fd68b7f9305d08d0a2595327c9c0611" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux" "https://downloads.python.org/pypy/pypy-4.0.1-linux.tar.bz2#721920fcbb6aefc9a98e868e32b7f4ea5fd68b7f9305d08d0a2595327c9c0611" "pypy" verify_py27 ensurepip else - install_package "pypy-4.0.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-4.0.1-linux_i686-portable.tar.bz2#2a1078bf36372b1c2919c11c418860dd7f0d44c92e6772bb36490eaf793b5c47" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0.1-linux_i686-portable.tar.bz2#2a1078bf36372b1c2919c11c418860dd7f0d44c92e6772bb36490eaf793b5c47" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-4.0.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-linux-armel.tar.bz2#d1acdd45ebd34580dd632c63c95211f6bae5e9a8f7a46ffa6f0443286ff9f61b" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux-armel" "https://downloads.python.org/pypy/pypy-4.0.1-linux-armel.tar.bz2#d1acdd45ebd34580dd632c63c95211f6bae5e9a8f7a46ffa6f0443286ff9f61b" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-4.0.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-linux-armhf-raspbian.tar.bz2#52eef495f560af59a787b9935367cb5f8c83b48e32a80ec3e7060bffac011ecc" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-4.0.1-linux-armhf-raspbian.tar.bz2#52eef495f560af59a787b9935367cb5f8c83b48e32a80ec3e7060bffac011ecc" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-4.0.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-linux-armhf-raring.tar.bz2#e67278ce7423aa7bf99a95fd271cb76763eae3106930f4b7de1fba6a70a3f383" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-4.0.1-linux-armhf-raring.tar.bz2#e67278ce7423aa7bf99a95fd271cb76763eae3106930f4b7de1fba6a70a3f383" "pypy" verify_py27 ensurepip fi ;; #"linux-ppc64" ) @@ -28,17 +28,17 @@ case "$(pypy_architecture 2>/dev/null || true)" in # ;; "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-4.0.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-linux64.tar.bz2#0d6090cee59f4b9bab91ddbea76580d0c232b78dae65aaa9e8fa8d4449ba25b4" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux64" "https://downloads.python.org/pypy/pypy-4.0.1-linux64.tar.bz2#0d6090cee59f4b9bab91ddbea76580d0c232b78dae65aaa9e8fa8d4449ba25b4" "pypy" verify_py27 ensurepip else install_package "pypy-4.0.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-4.0.1-linux_x86_64-portable.tar.bz2#b3803f6dd9bbb964f7d322aa4aeb93191ff0ebe573428c1d2014ea26da49ff53" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-4.0.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-osx64.tar.bz2#06be1299691f7ea558bf8e3bdf3d20debb8ba03cd7cadf04f2d6cbd5fd084430" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-osx64" "https://downloads.python.org/pypy/pypy-4.0.1-osx64.tar.bz2#06be1299691f7ea558bf8e3bdf3d20debb8ba03cd7cadf04f2d6cbd5fd084430" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-4.0.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-win32.zip#9a350a5e6f9b86fb525c6f1300b0c97c021ea8b1e37bfd32a8c4bb7a415d5329" "pypy" verify_py27 ensurepip + install_zip "pypy-4.0.1-win32" "https://downloads.python.org/pypy/pypy-4.0.1-win32.zip#9a350a5e6f9b86fb525c6f1300b0c97c021ea8b1e37bfd32a8c4bb7a415d5329" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-4.0.1-src b/plugins/python-build/share/python-build/pypy-4.0.1-src index 296b582ca7..f85e228968 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.1-src +++ b/plugins/python-build/share/python-build/pypy-4.0.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-4.0.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-src.tar.bz2#29f5aa6ba17b34fd980e85172dfeb4086fdc373ad392b1feff2677d2d8aea23c" "pypy_builder" verify_py27 ensurepip +install_package "pypy-4.0.1-src" "https://downloads.python.org/pypy/pypy-4.0.1-src.tar.bz2#29f5aa6ba17b34fd980e85172dfeb4086fdc373ad392b1feff2677d2d8aea23c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.0 b/plugins/python-build/share/python-build/pypy-5.0.0 index fddb41f844..f65f2cdbb6 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.0 +++ b/plugins/python-build/share/python-build/pypy-5.0.0 @@ -1,44 +1,44 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-5.0.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-linux.tar.bz2#a9cc9afa94ff1cde811626a70081c477c9840e7816c0562d1903fd823d222ceb" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-linux" "https://downloads.python.org/pypy/pypy-5.0.0-linux.tar.bz2#a9cc9afa94ff1cde811626a70081c477c9840e7816c0562d1903fd823d222ceb" "pypy" verify_py27 ensurepip else - install_package "pypy-5.0-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.0-linux_i686-portable.tar.bz2#316e03afdd2f6212857789933c01f0d41a1665c80d28526c0fb4082b6d3f4f60" "pypy" verify_py27 ensurepip + install_package "pypy-5.0-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0-linux_i686-portable.tar.bz2#316e03afdd2f6212857789933c01f0d41a1665c80d28526c0fb4082b6d3f4f60" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-5.0.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-linux-armel.tar.bz2#87bd85441b16ecca0d45ba6e9c0e9d26bb7bd8867afbf79d80312cf79b032dc1" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-linux-armel" "https://downloads.python.org/pypy/pypy-5.0.0-linux-armel.tar.bz2#87bd85441b16ecca0d45ba6e9c0e9d26bb7bd8867afbf79d80312cf79b032dc1" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-5.0.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-linux-armhf-raspbian.tar.bz2#8033c0cc39e9f6771688f2eda95c726595f5453b3e73e1cd5f7ebbe3dae1f685" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-5.0.0-linux-armhf-raspbian.tar.bz2#8033c0cc39e9f6771688f2eda95c726595f5453b3e73e1cd5f7ebbe3dae1f685" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-5.0.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-linux-armhf-raring.tar.bz2#5bb52cf5db4ae8497c4e03cd8a70e49867e6b93d9f29ad335d030fcd3a375769" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-5.0.0-linux-armhf-raring.tar.bz2#5bb52cf5db4ae8497c4e03cd8a70e49867e6b93d9f29ad335d030fcd3a375769" "pypy" verify_py27 ensurepip fi ;; "linux-ppc64" ) require_distro "Fedora 20" || true - install_package "pypy-5.0.0-ppc64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-ppc64.tar.bz2#334a37e68cb543cf2cbcdd12379b9b770064bb70ba7fd104f1e451cfa10cdda5" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-ppc64" "https://downloads.python.org/pypy/pypy-5.0.0-ppc64.tar.bz2#334a37e68cb543cf2cbcdd12379b9b770064bb70ba7fd104f1e451cfa10cdda5" "pypy" verify_py27 ensurepip ;; "linux-ppc64le" ) require_distro "Fedora 21" || true - install_package "pypy-5.0.0-ppc64le" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-ppc64le.tar.bz2#e72fe5c094186f79c997000ddbaa01616def652a8d1338b75a27dfa3755eb86c" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-ppc64le" "https://downloads.python.org/pypy/pypy-5.0.0-ppc64le.tar.bz2#e72fe5c094186f79c997000ddbaa01616def652a8d1338b75a27dfa3755eb86c" "pypy" verify_py27 ensurepip ;; "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-5.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-linux64.tar.bz2#b9c73be8e3c3b0835df83bdb86335712005240071cdd4dc245ac30b457063ae0" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-linux64" "https://downloads.python.org/pypy/pypy-5.0.0-linux64.tar.bz2#b9c73be8e3c3b0835df83bdb86335712005240071cdd4dc245ac30b457063ae0" "pypy" verify_py27 ensurepip else - install_package "pypy-5.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.0-linux_x86_64-portable.tar.bz2#57c9ea251bf1e7074e14aeecdd1ac8bb2fc53dbf3f90a9613d03e33076a7fa08" "pypy" verify_py27 ensurepip + install_package "pypy-5.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0-linux_x86_64-portable.tar.bz2#57c9ea251bf1e7074e14aeecdd1ac8bb2fc53dbf3f90a9613d03e33076a7fa08" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-5.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-osx64.tar.bz2#45ed8bf799d0fd8eb051cbcc427173fba74dc9c2f6c309d7a3cc90f4917e6a10" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.0-osx64" "https://downloads.python.org/pypy/pypy-5.0.0-osx64.tar.bz2#45ed8bf799d0fd8eb051cbcc427173fba74dc9c2f6c309d7a3cc90f4917e6a10" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-5.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-win32.zip#c53f0946703f5e4885484c7cde2554a0320537135bf8965e054757c214412438" "pypy" verify_py27 ensurepip + install_zip "pypy-5.0.0-win32" "https://downloads.python.org/pypy/pypy-5.0.0-win32.zip#c53f0946703f5e4885484c7cde2554a0320537135bf8965e054757c214412438" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-5.0.0-src b/plugins/python-build/share/python-build/pypy-5.0.0-src index 06c0a54076..1fbd6a8a67 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.0-src +++ b/plugins/python-build/share/python-build/pypy-5.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.0-src.tar.bz2#89027b1b33553b53ff7733dc4838f0a76af23552c0d915d9f6de5875b8d7d4ab" "pypy_builder" verify_py27 ensurepip +install_package "pypy-5.0.0-src" "https://downloads.python.org/pypy/pypy-5.0.0-src.tar.bz2#89027b1b33553b53ff7733dc4838f0a76af23552c0d915d9f6de5875b8d7d4ab" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.1 b/plugins/python-build/share/python-build/pypy-5.0.1 index ba9d020100..b09ea91d42 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.1 +++ b/plugins/python-build/share/python-build/pypy-5.0.1 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-5.0.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-linux.tar.bz2#4b9a294033f917a1674c9ddcb2e7e8d32c4f4351f8216fd1fe23f6d2ad2b1a36" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux" "https://downloads.python.org/pypy/pypy-5.0.1-linux.tar.bz2#4b9a294033f917a1674c9ddcb2e7e8d32c4f4351f8216fd1fe23f6d2ad2b1a36" "pypy" verify_py27 ensurepip else - install_package "pypy-5.0.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.0.1-linux_i686-portable.tar.bz2#96f1b487655c914a03f56747dfff9c20350175cae01e2911f19b1016442ed6b5" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0.1-linux_i686-portable.tar.bz2#96f1b487655c914a03f56747dfff9c20350175cae01e2911f19b1016442ed6b5" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-5.0.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-linux-armel.tar.bz2#17d55804b2253acd9de42276d756d4a08b7d1d2da09ef81dd325e14b18a1bcda" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux-armel" "https://downloads.python.org/pypy/pypy-5.0.1-linux-armel.tar.bz2#17d55804b2253acd9de42276d756d4a08b7d1d2da09ef81dd325e14b18a1bcda" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-5.0.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-linux-armhf-raspbian.tar.bz2#338d1c32c1326e6321b222ae357711b38c4a0ffddf020c2a35536b5f69376e28" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-5.0.1-linux-armhf-raspbian.tar.bz2#338d1c32c1326e6321b222ae357711b38c4a0ffddf020c2a35536b5f69376e28" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-5.0.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-linux-armhf-raring.tar.bz2#1e9146978cc7e7bd30683a518f304a824db7b9b1c6fae5e866eb703684ba3c98" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-5.0.1-linux-armhf-raring.tar.bz2#1e9146978cc7e7bd30683a518f304a824db7b9b1c6fae5e866eb703684ba3c98" "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-5.0.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-linux64.tar.bz2#1b1363a48edd1c1b31ca5e995987eda3d460a3404f36c3bb2dd9f52c93eecff5" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux64" "https://downloads.python.org/pypy/pypy-5.0.1-linux64.tar.bz2#1b1363a48edd1c1b31ca5e995987eda3d460a3404f36c3bb2dd9f52c93eecff5" "pypy" verify_py27 ensurepip else install_package "pypy-5.0.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.0.1-linux_x86_64-portable.tar.bz2#14d65f84fe8228cfa2b8e924364cf4c71e2bc6b13649098fa340baf044606436" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-5.0.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-osx64.tar.bz2#6ebdb9d91203f053b38e3c21841c11a72f416dc185f7b3b7c908229df15e924a" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-osx64" "https://downloads.python.org/pypy/pypy-5.0.1-osx64.tar.bz2#6ebdb9d91203f053b38e3c21841c11a72f416dc185f7b3b7c908229df15e924a" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-5.0.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-win32.zip#c12254d8b1747322736d26e014744a426c6900d232c1799140fbb43f44319730" "pypy" verify_py27 ensurepip + install_zip "pypy-5.0.1-win32" "https://downloads.python.org/pypy/pypy-5.0.1-win32.zip#c12254d8b1747322736d26e014744a426c6900d232c1799140fbb43f44319730" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-5.0.1-src b/plugins/python-build/share/python-build/pypy-5.0.1-src index 0bb38ea60d..4adb24c5ad 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.1-src +++ b/plugins/python-build/share/python-build/pypy-5.0.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.0.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.0.1-src.tar.bz2#1573c9284d3ec236c8e6ef3b954753932dff29462c54b5885b761d1ee68b6e05" "pypy_builder" verify_py27 ensurepip +install_package "pypy-5.0.1-src" "https://downloads.python.org/pypy/pypy-5.0.1-src.tar.bz2#1573c9284d3ec236c8e6ef3b954753932dff29462c54b5885b761d1ee68b6e05" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1 b/plugins/python-build/share/python-build/pypy-5.1 index 2e20edd6ac..0a124772c0 100644 --- a/plugins/python-build/share/python-build/pypy-5.1 +++ b/plugins/python-build/share/python-build/pypy-5.1 @@ -1,44 +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-5.1.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-linux.tar.bz2#2f6c521b5b3c1082eab58be78655aa01ec400d19baeec93c455864a7483b8744" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-linux" "https://downloads.python.org/pypy/pypy-5.1.0-linux.tar.bz2#2f6c521b5b3c1082eab58be78655aa01ec400d19baeec93c455864a7483b8744" "pypy" verify_py27 ensurepip else - install_package "pypy-5.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.1-linux_i686-portable.tar.bz2#893507603a58b8983b69924e60591de39b8f71f70ba36d6e3894db8f7c49c3ea" "pypy" verify_py27 ensurepip + install_package "pypy-5.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1-linux_i686-portable.tar.bz2#893507603a58b8983b69924e60591de39b8f71f70ba36d6e3894db8f7c49c3ea" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-5.1.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-linux-armel.tar.bz2#ea7017449ff0630431866423220c3688fc55c1a0b80a96af0ae138dd0751b81c" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-linux-armel" "https://downloads.python.org/pypy/pypy-5.1.0-linux-armel.tar.bz2#ea7017449ff0630431866423220c3688fc55c1a0b80a96af0ae138dd0751b81c" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-5.1.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-linux-armhf-raspbian.tar.bz2#3bfcd251b4f3fd1a09520b2741c647c364d16d50c82b813732a78ac60ccb2b69" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-5.1.0-linux-armhf-raspbian.tar.bz2#3bfcd251b4f3fd1a09520b2741c647c364d16d50c82b813732a78ac60ccb2b69" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-5.1.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-linux-armhf-raring.tar.bz2#a3e13083591bccc301fb974ff0a6c7e4ab4e611e4b31c0932898b981c794462b" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-5.1.0-linux-armhf-raring.tar.bz2#a3e13083591bccc301fb974ff0a6c7e4ab4e611e4b31c0932898b981c794462b" "pypy" verify_py27 ensurepip fi ;; "linux-ppc64" ) require_distro "Fedora 20" || true - install_package "pypy-5.1.0-ppc64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-ppc64.tar.bz2#32a31b9ff5174d69f8cf8db711ba2a593fed49b52bdf590bcecd6b727419b6df" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-ppc64" "https://downloads.python.org/pypy/pypy-5.1.0-ppc64.tar.bz2#32a31b9ff5174d69f8cf8db711ba2a593fed49b52bdf590bcecd6b727419b6df" "pypy" verify_py27 ensurepip ;; "linux-ppc64le" ) require_distro "Fedora 21" || true - install_package "pypy-5.1.0-ppc64le" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-ppc64le.tar.bz2#303764f44154f81d7f0753258c89f8a14653658911a16ec2bcfee04055cbfab6" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-ppc64le" "https://downloads.python.org/pypy/pypy-5.1.0-ppc64le.tar.bz2#303764f44154f81d7f0753258c89f8a14653658911a16ec2bcfee04055cbfab6" "pypy" verify_py27 ensurepip ;; "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-5.1.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-linux64.tar.bz2#0e8913351d043a50740b98cb89d99852b8bd6d11225a41c8abfc0baf7084cbf6" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-linux64" "https://downloads.python.org/pypy/pypy-5.1.0-linux64.tar.bz2#0e8913351d043a50740b98cb89d99852b8bd6d11225a41c8abfc0baf7084cbf6" "pypy" verify_py27 ensurepip else - install_package "pypy-5.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.1-linux_x86_64-portable.tar.bz2#b2df9b0127457d1c3cc0dc9b8f027a53569ccd3ba5a79012d641e576d9cc003a" "pypy" verify_py27 ensurepip + install_package "pypy-5.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1-linux_x86_64-portable.tar.bz2#b2df9b0127457d1c3cc0dc9b8f027a53569ccd3ba5a79012d641e576d9cc003a" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-5.1.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-osx64.tar.bz2#7e270c66347158dd794c101c4817f742f760ed805aa0d10abe19ba4a78a75118" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.0-osx64" "https://downloads.python.org/pypy/pypy-5.1.0-osx64.tar.bz2#7e270c66347158dd794c101c4817f742f760ed805aa0d10abe19ba4a78a75118" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-5.1.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-win32.zip#044e7f35223a443412b5948740e60e93069a6f8b0a72053cc9d472874bb1b6cc" "pypy" verify_py27 ensurepip + install_zip "pypy-5.1.0-win32" "https://downloads.python.org/pypy/pypy-5.1.0-win32.zip#044e7f35223a443412b5948740e60e93069a6f8b0a72053cc9d472874bb1b6cc" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-5.1-src b/plugins/python-build/share/python-build/pypy-5.1-src index 3e84a05f41..c08e96ee96 100644 --- a/plugins/python-build/share/python-build/pypy-5.1-src +++ b/plugins/python-build/share/python-build/pypy-5.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.1.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.0-src.tar.bz2#16bab9501e942c0704abbf9cd6c4e950c6a76dc226cf1e447ea084916aef4714" "pypy_builder" verify_py27 ensurepip +install_package "pypy-5.1.0-src" "https://downloads.python.org/pypy/pypy-5.1.0-src.tar.bz2#16bab9501e942c0704abbf9cd6c4e950c6a76dc226cf1e447ea084916aef4714" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1.1 b/plugins/python-build/share/python-build/pypy-5.1.1 index 74c45fd135..f9c543d2f6 100644 --- a/plugins/python-build/share/python-build/pypy-5.1.1 +++ b/plugins/python-build/share/python-build/pypy-5.1.1 @@ -1,21 +1,21 @@ 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-5.1.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-linux.tar.bz2#7951fd2b87c9e621ec57c932c20da2b8a4a9e87d8daeb9e2b7373f9444219abc" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux" "https://downloads.python.org/pypy/pypy-5.1.1-linux.tar.bz2#7951fd2b87c9e621ec57c932c20da2b8a4a9e87d8daeb9e2b7373f9444219abc" "pypy" verify_py27 ensurepip else - install_package "pypy-5.1.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.1.1-linux_i686-portable.tar.bz2#f00faf426f41f9980344d03fd74bb949875c0cf86048ad762dd445f72353eb8f" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1.1-linux_i686-portable.tar.bz2#f00faf426f41f9980344d03fd74bb949875c0cf86048ad762dd445f72353eb8f" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-5.1.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-linux-armel.tar.bz2#062b33641c24dfc8c6b5af955c2ddf3815b471de0af4bfc343020651b94d13bf" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux-armel" "https://downloads.python.org/pypy/pypy-5.1.1-linux-armel.tar.bz2#062b33641c24dfc8c6b5af955c2ddf3815b471de0af4bfc343020651b94d13bf" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy-5.1.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-linux-armhf-raspbian.tar.bz2#fc2a1f8719a7eca5d85d0bdcf499c6ab7409fc32aa312435bcbe66950b47e863" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy-5.1.1-linux-armhf-raspbian.tar.bz2#fc2a1f8719a7eca5d85d0bdcf499c6ab7409fc32aa312435bcbe66950b47e863" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy-5.1.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-linux-armhf-raring.tar.bz2#c4bcdabccd15669ea44d1c715cd36b2ca55b340a27b63e1a92ef5ab6eb158a8d" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-5.1.1-linux-armhf-raring.tar.bz2#c4bcdabccd15669ea44d1c715cd36b2ca55b340a27b63e1a92ef5ab6eb158a8d" "pypy" verify_py27 ensurepip fi ;; #"linux-ppc64" ) @@ -28,17 +28,17 @@ case "$(pypy_architecture 2>/dev/null || true)" in # ;; "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-5.1.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-linux64.tar.bz2#c852622e8bc81618c137da35fcf57b2349b956c07b6fd853300846e3cefa64fc" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux64" "https://downloads.python.org/pypy/pypy-5.1.1-linux64.tar.bz2#c852622e8bc81618c137da35fcf57b2349b956c07b6fd853300846e3cefa64fc" "pypy" verify_py27 ensurepip else install_package "pypy-5.1.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.1.1-linux_x86_64-portable.tar.bz2#c0502d8db1cc2b81513cc6047813669b0a561cb20e41d60e179f51fe8657a794" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy-5.1.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-osx64.tar.bz2#fe2bbb7cf95eb91b1724029f81e85d1dbb6025a2e9a005cfe7258fe07602f771" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-osx64" "https://downloads.python.org/pypy/pypy-5.1.1-osx64.tar.bz2#fe2bbb7cf95eb91b1724029f81e85d1dbb6025a2e9a005cfe7258fe07602f771" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-5.1.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-win32.zip#22a780e328ef053e098f2edc2302957ac3119adf7bf11ff23e225931806e7bcd" "pypy" verify_py27 ensurepip + install_zip "pypy-5.1.1-win32" "https://downloads.python.org/pypy/pypy-5.1.1-win32.zip#22a780e328ef053e098f2edc2302957ac3119adf7bf11ff23e225931806e7bcd" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-5.1.1-src b/plugins/python-build/share/python-build/pypy-5.1.1-src index 8c9227a964..a61263b34a 100644 --- a/plugins/python-build/share/python-build/pypy-5.1.1-src +++ b/plugins/python-build/share/python-build/pypy-5.1.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.1.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-src.tar.bz2#ca3d943d7fbd78bb957ee9e5833ada4bb8506ac99a41b7628790e286a65ed2be" "pypy_builder" verify_py27 ensurepip +install_package "pypy-5.1.1-src" "https://downloads.python.org/pypy/pypy-5.1.1-src.tar.bz2#ca3d943d7fbd78bb957ee9e5833ada4bb8506ac99a41b7628790e286a65ed2be" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-stm-2.3 b/plugins/python-build/share/python-build/pypy-stm-2.3 index 96ba8d6289..da7efdc909 100644 --- a/plugins/python-build/share/python-build/pypy-stm-2.3 +++ b/plugins/python-build/share/python-build/pypy-stm-2.3 @@ -1,7 +1,7 @@ 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 + install_package "pypy-stm-2.3-linux64" "https://downloads.python.org/pypy/pypy-stm-2.3-linux64.tar.bz2#2a489280c679503442219782a87a2d16504a1467cac85ad4be1361a21d1f4d54" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-stm-2.5.1 b/plugins/python-build/share/python-build/pypy-stm-2.5.1 index b8bd52bec2..cdcc70408f 100644 --- a/plugins/python-build/share/python-build/pypy-stm-2.5.1 +++ b/plugins/python-build/share/python-build/pypy-stm-2.5.1 @@ -1,7 +1,7 @@ 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 + install_package "pypy-stm-2.5.1-linux64" "https://downloads.python.org/pypy/pypy-stm-2.5.1-linux64.tar.bz2#f280788002f2acf8690b8f9c479bb5b6f0e699ebb42f8bf203da3f70f1a38134" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.3 b/plugins/python-build/share/python-build/pypy2-5.3 index 5b668e2fa1..3185aa19b1 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3 +++ b/plugins/python-build/share/python-build/pypy2-5.3 @@ -1,7 +1,7 @@ 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 "pypy2-v5.3.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-linux32.tar.bz2#bd422fe9d0b7d525d1da3f32855b047bc39ba397d0cf708d8f4f96fe874424f2" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.0-linux" "https://downloads.python.org/pypy/pypy2-v5.3.0-linux32.tar.bz2#bd422fe9d0b7d525d1da3f32855b047bc39ba397d0cf708d8f4f96fe874424f2" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,19 +14,19 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.3.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-linux-armel.tar.bz2#81b6f589a947d7353bb69408c46d4833d6e9cb501f3c3f0c73bd28d0e3df69aa" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.3.0-linux-armel.tar.bz2#81b6f589a947d7353bb69408c46d4833d6e9cb501f3c3f0c73bd28d0e3df69aa" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.3.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-linux-armhf-raspbian.tar.bz2#87b3566b6bbb8bf31c2f0d72bf31d95142fdce004d987812336a59d788005bed" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.3.0-linux-armhf-raspbian.tar.bz2#87b3566b6bbb8bf31c2f0d72bf31d95142fdce004d987812336a59d788005bed" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.3.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-linux-armhf-raring.tar.bz2#bdb911a87e773a292334061b9c33b907f46d987e403fe94cc627a3b9b1c9cb19" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.3.0-linux-armhf-raring.tar.bz2#bdb911a87e773a292334061b9c33b907f46d987e403fe94cc627a3b9b1c9cb19" "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 "pypy2-v5.3.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-linux64.tar.bz2#ac336e8877ed676bf87a9a546d5926b6afc4679fa2d3fdf9f3ca56f28ec40588" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.3.0-linux64.tar.bz2#ac336e8877ed676bf87a9a546d5926b6afc4679fa2d3fdf9f3ca56f28ec40588" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -38,11 +38,11 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "osx64" ) - install_package "pypy2-v5.3.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-osx64.tar.bz2#1b103bacbdcdbbc490660ec0c7b3d99d1ff1cfc2f13cd403db21c27f03d36a1d" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.3.0-osx64.tar.bz2#1b103bacbdcdbbc490660ec0c7b3d99d1ff1cfc2f13cd403db21c27f03d36a1d" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.3.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-win32.zip#32a9e5286fc344165f63b529a9f84e521e9368e717c583488115654676428a20" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.3.0-win32" "https://downloads.python.org/pypy/pypy2-v5.3.0-win32.zip#32a9e5286fc344165f63b529a9f84e521e9368e717c583488115654676428a20" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.3-src b/plugins/python-build/share/python-build/pypy2-5.3-src index 96594181c1..0535d1bceb 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3-src +++ b/plugins/python-build/share/python-build/pypy2-5.3-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.3.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.0-src.tar.bz2#4142eb8f403810bc88a4911792bb5a502e152df95806e33e69050c828cd160d5" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.3.0-src" "https://downloads.python.org/pypy/pypy2-v5.3.0-src.tar.bz2#4142eb8f403810bc88a4911792bb5a502e152df95806e33e69050c828cd160d5" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.3.1 b/plugins/python-build/share/python-build/pypy2-5.3.1 index bd826ffe24..01c4e103f5 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3.1 +++ b/plugins/python-build/share/python-build/pypy2-5.3.1 @@ -1,36 +1,36 @@ 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 "pypy2-v5.3.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux32.tar.bz2#da69f4280b288e524387103eaa3eb4d036965724c3e546da27135c15a77bd2eb" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.1-linux" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux32.tar.bz2#da69f4280b288e524387103eaa3eb4d036965724c3e546da27135c15a77bd2eb" "pypy" verify_py27 ensurepip else - install_package "pypy-5.3.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.3.1-linux_i686-portable.tar.bz2#4460dad6376406c221406676208abae989c126115b0f0b2e46c8b8a027bf978a" "pypy" verify_py27 ensurepip + install_package "pypy-5.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.3.1-linux_i686-portable.tar.bz2#4460dad6376406c221406676208abae989c126115b0f0b2e46c8b8a027bf978a" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.3.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux-armel.tar.bz2#0425f2022c35ef7f0bb3d2b854c5bcbe500b1aba511a0d83581ba6c784913961" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.1-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux-armel.tar.bz2#0425f2022c35ef7f0bb3d2b854c5bcbe500b1aba511a0d83581ba6c784913961" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.3.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux-armhf-raspbian.tar.bz2#5c93eb3c54fbb2c7d7332f775a096671512e590565e6051196bbc5039c5033b5" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux-armhf-raspbian.tar.bz2#5c93eb3c54fbb2c7d7332f775a096671512e590565e6051196bbc5039c5033b5" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.3.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux-armhf-raring.tar.bz2#b4859496099bde4b17c1e56cc5749dcdcd25b4c68fde1d2ea426de84130e84cc" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux-armhf-raring.tar.bz2#b4859496099bde4b17c1e56cc5749dcdcd25b4c68fde1d2ea426de84130e84cc" "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 "pypy2-v5.3.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux64.tar.bz2#6d0e8b14875b76b1e77f06a2ee3f1fb5015a645a951ba7a7586289344d4d9c22" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.1-linux64" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux64.tar.bz2#6d0e8b14875b76b1e77f06a2ee3f1fb5015a645a951ba7a7586289344d4d9c22" "pypy" verify_py27 ensurepip else - install_package "pypy-5.3.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.3.1-linux_x86_64-portable.tar.bz2#73014c3840609a62c0984b9c383652097f0a8c52fb74dd9de70d9df2a9a743ff" "pypy" verify_py27 ensurepip + install_package "pypy-5.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.3.1-linux_x86_64-portable.tar.bz2#73014c3840609a62c0984b9c383652097f0a8c52fb74dd9de70d9df2a9a743ff" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.3.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-osx64.tar.bz2#7a242d7373b4f18c7f5fe6c2fe6f15e2a405d9adf1f4f934c89b875e60ac5def" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.3.1-osx64" "https://downloads.python.org/pypy/pypy2-v5.3.1-osx64.tar.bz2#7a242d7373b4f18c7f5fe6c2fe6f15e2a405d9adf1f4f934c89b875e60ac5def" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.3.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-win32.zip#d83477e2c5f032ebd8c7f47afce03dc8adbeb41a3c74f7db50d9de317dcf3a4a" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.3.1-win32" "https://downloads.python.org/pypy/pypy2-v5.3.1-win32.zip#d83477e2c5f032ebd8c7f47afce03dc8adbeb41a3c74f7db50d9de317dcf3a4a" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.3.1-src b/plugins/python-build/share/python-build/pypy2-5.3.1-src index e533a5a0b5..f127cd5797 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3.1-src +++ b/plugins/python-build/share/python-build/pypy2-5.3.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.3.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-src.tar.bz2#31a52bab584abf3a0f0defd1bf9a29131dab08df43885e7eeddfc7dc9b71836e" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.3.1-src" "https://downloads.python.org/pypy/pypy2-v5.3.1-src.tar.bz2#31a52bab584abf3a0f0defd1bf9a29131dab08df43885e7eeddfc7dc9b71836e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.4 b/plugins/python-build/share/python-build/pypy2-5.4 index 1801b8f1d5..ae563e4d63 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4 +++ b/plugins/python-build/share/python-build/pypy2-5.4 @@ -1,36 +1,36 @@ 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 "pypy2-v5.4.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-linux32.tar.bz2#ce581270464b14cdecd13dedb9bd7bf98232f767ac4ac282229a405d8e807af1" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.0-linux" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux32.tar.bz2#ce581270464b14cdecd13dedb9bd7bf98232f767ac4ac282229a405d8e807af1" "pypy" verify_py27 ensurepip else - install_package "pypy-5.4-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.4-linux_i686-portable.tar.bz2#7d7d253f009bb2624f43db6b8caeeb73d29177c4166a643a581a231a099c8689" "pypy" verify_py27 ensurepip + install_package "pypy-5.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4-linux_i686-portable.tar.bz2#7d7d253f009bb2624f43db6b8caeeb73d29177c4166a643a581a231a099c8689" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.4.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-linux-armel.tar.bz2#04509044f21bb41ee6d3fafcf637fc0c586c248d4cdae6ac3357606a7b660fdb" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux-armel.tar.bz2#04509044f21bb41ee6d3fafcf637fc0c586c248d4cdae6ac3357606a7b660fdb" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.4.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-linux-armhf-raspbian.tar.bz2#839b08db89b7e20cb670b8cf02596e033ea0b76fb8336af7bedfbb04b6b502da" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux-armhf-raspbian.tar.bz2#839b08db89b7e20cb670b8cf02596e033ea0b76fb8336af7bedfbb04b6b502da" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.4.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-linux-armhf-raring.tar.bz2#95c690bcae6771ebce6cf06c7c2842e0662e007e35162afc963337aa597b471a" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux-armhf-raring.tar.bz2#95c690bcae6771ebce6cf06c7c2842e0662e007e35162afc963337aa597b471a" "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 "pypy2-v5.4.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-linux64.tar.bz2#bdfea513d59dcd580970cb6f79f3a250d00191fd46b68133d5327e924ca845f8" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux64.tar.bz2#bdfea513d59dcd580970cb6f79f3a250d00191fd46b68133d5327e924ca845f8" "pypy" verify_py27 ensurepip else - install_package "pypy-5.4-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.4-linux_x86_64-portable.tar.bz2#0a48c7ba7163589b1ade9cfe184f422d1bc9a0f988321b2fdcbd924d90594d9a" "pypy" verify_py27 ensurepip + install_package "pypy-5.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4-linux_x86_64-portable.tar.bz2#0a48c7ba7163589b1ade9cfe184f422d1bc9a0f988321b2fdcbd924d90594d9a" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.4.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-osx64.tar.bz2#3adf21c2bf3432759c99123f21240d71a72aba81d73129e48ef912c34631b723" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.4.0-osx64.tar.bz2#3adf21c2bf3432759c99123f21240d71a72aba81d73129e48ef912c34631b723" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.4.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-win32.zip#442c0a917781b6155bf78d2648f1ccd9a36c321926a043f83efcea22a99960b4" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.4.0-win32" "https://downloads.python.org/pypy/pypy2-v5.4.0-win32.zip#442c0a917781b6155bf78d2648f1ccd9a36c321926a043f83efcea22a99960b4" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.4-src b/plugins/python-build/share/python-build/pypy2-5.4-src index 6e048715d2..b932a5171b 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4-src +++ b/plugins/python-build/share/python-build/pypy2-5.4-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.4.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.0-src.tar.bz2#d9568ebe9a14d0eaefde887d78f3cba63d665e95c0d234bb583932341f55a655" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.4.0-src" "https://downloads.python.org/pypy/pypy2-v5.4.0-src.tar.bz2#d9568ebe9a14d0eaefde887d78f3cba63d665e95c0d234bb583932341f55a655" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.4.1 b/plugins/python-build/share/python-build/pypy2-5.4.1 index d8719844d6..0c17c56ace 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4.1 +++ b/plugins/python-build/share/python-build/pypy2-5.4.1 @@ -1,36 +1,36 @@ 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 "pypy2-v5.4.1-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-linux32.tar.bz2#6d1e2386ec1e05dffed493aa2d5e6db5cf5de18d7350d44b85f2e45aa5c9a774" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.1-linux32" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux32.tar.bz2#6d1e2386ec1e05dffed493aa2d5e6db5cf5de18d7350d44b85f2e45aa5c9a774" "pypy" verify_py27 ensurepip else - install_package "pypy-5.4.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.4.1-linux_i686-portable.tar.bz2#190e1df78886f0b2bd700f110b7d312d91cafc84886c5de3c5d55c10fe1a5e75" "pypy" verify_py27 ensurepip + install_package "pypy-5.4.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4.1-linux_i686-portable.tar.bz2#190e1df78886f0b2bd700f110b7d312d91cafc84886c5de3c5d55c10fe1a5e75" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.4.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-linux-armel.tar.bz2#a1eb5f672aae62606176305e52a51b060ba974b6181ebefcd2c555ecf5f8614f" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.1-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux-armel.tar.bz2#a1eb5f672aae62606176305e52a51b060ba974b6181ebefcd2c555ecf5f8614f" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.4.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-linux-armhf-raspbian.tar.bz2#b38646519ee1a888c68f8f4713c122867b4b36693c8acabb38eb827a9d2d51f9" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux-armhf-raspbian.tar.bz2#b38646519ee1a888c68f8f4713c122867b4b36693c8acabb38eb827a9d2d51f9" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.4.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-linux-armhf-raring.tar.bz2#2c4befc4517adec874155a8b6fa0b9d18388943d4ffe778002072db7783e417a" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux-armhf-raring.tar.bz2#2c4befc4517adec874155a8b6fa0b9d18388943d4ffe778002072db7783e417a" "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 "pypy2-v5.4.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-linux64.tar.bz2#9c85319778224d7fb0c348f55fe3fada15bb579c5f3870a13ad63b42a737dd72" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.1-linux64" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux64.tar.bz2#9c85319778224d7fb0c348f55fe3fada15bb579c5f3870a13ad63b42a737dd72" "pypy" verify_py27 ensurepip else - install_package "pypy-5.4.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.4.1-linux_x86_64-portable.tar.bz2#0b59f8e69c7883d454fce6364ab01a5ec6a481ed7f0cc0f1612c3b0c253f7da4" "pypy" verify_py27 ensurepip + install_package "pypy-5.4.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4.1-linux_x86_64-portable.tar.bz2#0b59f8e69c7883d454fce6364ab01a5ec6a481ed7f0cc0f1612c3b0c253f7da4" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.4.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-osx64.tar.bz2#ae9329c8f0a6df431c6224c27c634f998688ac803e8d100cee9a774e6bba38b5" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.4.1-osx64" "https://downloads.python.org/pypy/pypy2-v5.4.1-osx64.tar.bz2#ae9329c8f0a6df431c6224c27c634f998688ac803e8d100cee9a774e6bba38b5" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.4.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-win32.zip#ec729218a820bc2aa2cf1fcacf9de0fee9e04144fe138596198a6b4615505e03" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.4.1-win32" "https://downloads.python.org/pypy/pypy2-v5.4.1-win32.zip#ec729218a820bc2aa2cf1fcacf9de0fee9e04144fe138596198a6b4615505e03" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.4.1-src b/plugins/python-build/share/python-build/pypy2-5.4.1-src index 3ee496c382..4fd489867d 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4.1-src +++ b/plugins/python-build/share/python-build/pypy2-5.4.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.4.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.4.1-src.tar.bz2#45dbc50c81498f6f1067201b8fc887074b43b84ee32cc47f15e7db17571e9352" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.4.1-src" "https://downloads.python.org/pypy/pypy2-v5.4.1-src.tar.bz2#45dbc50c81498f6f1067201b8fc887074b43b84ee32cc47f15e7db17571e9352" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.6.0 b/plugins/python-build/share/python-build/pypy2-5.6.0 index 11d2070ced..6cc1e531d0 100644 --- a/plugins/python-build/share/python-build/pypy2-5.6.0 +++ b/plugins/python-build/share/python-build/pypy2-5.6.0 @@ -1,36 +1,36 @@ 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 "pypy2-v5.6.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux32.tar.bz2#5d4ad43aed5c5e147f7e7c84766c729f34f63b714b6d224e912a2bb42dc95d62" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.6.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux32.tar.bz2#5d4ad43aed5c5e147f7e7c84766c729f34f63b714b6d224e912a2bb42dc95d62" "pypy" verify_py27 ensurepip else - install_package "pypy-5.6-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.6-linux_i686-portable.tar.bz2#1f220e05ddd4423882794f0e9d3e2dfdecee259d00f1151a52dd244607313399" "pypy" verify_py27 ensurepip + install_package "pypy-5.6-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.6-linux_i686-portable.tar.bz2#1f220e05ddd4423882794f0e9d3e2dfdecee259d00f1151a52dd244607313399" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.6.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux-armel.tar.bz2#2d1c7820f6368c92bb43a153d2c995f70aa183ff8f1df6916b0d2e57838d8a30" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.6.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux-armel.tar.bz2#2d1c7820f6368c92bb43a153d2c995f70aa183ff8f1df6916b0d2e57838d8a30" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.6.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux-armhf-raspbian.tar.bz2#0f69c40a38d72254bf12094620bda9d2face758f763cd0d989588642d81eccae" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.6.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux-armhf-raspbian.tar.bz2#0f69c40a38d72254bf12094620bda9d2face758f763cd0d989588642d81eccae" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.6.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux-armhf-raring.tar.bz2#2c430240cecb562102c677598f106aa57899f00cd37f719989e18ed9ca44bd01" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.6.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux-armhf-raring.tar.bz2#2c430240cecb562102c677598f106aa57899f00cd37f719989e18ed9ca44bd01" "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 "pypy2-v5.6.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux64.tar.bz2#aad55328cb0673a60b2633dcc3c36cf452917ac906b577eb3aed5876a7666fca" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.6.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux64.tar.bz2#aad55328cb0673a60b2633dcc3c36cf452917ac906b577eb3aed5876a7666fca" "pypy" verify_py27 ensurepip else - install_package "pypy-5.6-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.6-linux_x86_64-portable.tar.bz2#9bd220bc54000e142bd4929435959305efeef8c832fbe3c907211cc5214095ce" "pypy" verify_py27 ensurepip + install_package "pypy-5.6-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.6-linux_x86_64-portable.tar.bz2#9bd220bc54000e142bd4929435959305efeef8c832fbe3c907211cc5214095ce" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.6.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-osx64.tar.bz2#6121f791f440564d3a0a41315e9f2d2d61bc484654acffd85d9e1c6e92b85c36" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.6.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.6.0-osx64.tar.bz2#6121f791f440564d3a0a41315e9f2d2d61bc484654acffd85d9e1c6e92b85c36" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.6.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-win32.zip#bab4fa37ef2d32660e291393d955a4e951d5e883abea8bee83be1ec044ddcaac" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.6.0-win32" "https://downloads.python.org/pypy/pypy2-v5.6.0-win32.zip#bab4fa37ef2d32660e291393d955a4e951d5e883abea8bee83be1ec044ddcaac" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.6.0-src b/plugins/python-build/share/python-build/pypy2-5.6.0-src index 46fb0170e4..e14e0c2a40 100644 --- a/plugins/python-build/share/python-build/pypy2-5.6.0-src +++ b/plugins/python-build/share/python-build/pypy2-5.6.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.6.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-src.tar.bz2#7411448045f77eb9e087afdce66fe7eafda1876c9e17aad88cf891f762b608b0" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.6.0-src" "https://downloads.python.org/pypy/pypy2-v5.6.0-src.tar.bz2#7411448045f77eb9e087afdce66fe7eafda1876c9e17aad88cf891f762b608b0" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.7.0 b/plugins/python-build/share/python-build/pypy2-5.7.0 index a45b7a69fe..19df20db4b 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.0 +++ b/plugins/python-build/share/python-build/pypy2-5.7.0 @@ -1,34 +1,34 @@ 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 "pypy2-v5.7.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux32.tar.bz2#aaa55085d11a49cb982b059b4159495d7a4fb9afcfda7bfd680cc0175e9fa33b" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux32.tar.bz2#aaa55085d11a49cb982b059b4159495d7a4fb9afcfda7bfd680cc0175e9fa33b" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.7.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux-armel.tar.bz2#3bc0d2616cacef9f544e739d4c25a89e16d7aa8c1ccb18c32dceeb021ed73711" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux-armel.tar.bz2#3bc0d2616cacef9f544e739d4c25a89e16d7aa8c1ccb18c32dceeb021ed73711" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.7.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux-armhf-raspbian.tar.bz2#6328e4767cf20d20a290739db2d1ec769f3c9c360fa9824f61581b3356add79b" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux-armhf-raspbian.tar.bz2#6328e4767cf20d20a290739db2d1ec769f3c9c360fa9824f61581b3356add79b" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.7.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux-armhf-raring.tar.bz2#413df8097c87a8e79cc46df65837b1d533de83b7cb06ce88b168697807fff696" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux-armhf-raring.tar.bz2#413df8097c87a8e79cc46df65837b1d533de83b7cb06ce88b168697807fff696" "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 "pypy2-v5.7.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux64.tar.bz2#64bed80e299b09c13296f577a0f52c5d4be9f7c699a390ca6026f967aeff3846" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux64.tar.bz2#64bed80e299b09c13296f577a0f52c5d4be9f7c699a390ca6026f967aeff3846" "pypy" verify_py27 ensurepip else - install_package "pypy-5.7-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.7-linux_x86_64-portable.tar.bz2#209d2224fe461d85afb201a0c8da18df21219687defadd4550b60420a120bacb" "pypy" verify_py27 ensurepip + install_package "pypy-5.7-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.7-linux_x86_64-portable.tar.bz2#209d2224fe461d85afb201a0c8da18df21219687defadd4550b60420a120bacb" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.7.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-osx64.tar.bz2#9204aa1b55771a374a3118bb43e498c88caca8c33710eecf3249855c4dd1352a" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.7.0-osx64.tar.bz2#9204aa1b55771a374a3118bb43e498c88caca8c33710eecf3249855c4dd1352a" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.7.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-win32.zip#09c8da3a7e09cea821f9b300c6f4f52f4a571d949d91839ecbce93b84a08d570" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.7.0-win32" "https://downloads.python.org/pypy/pypy2-v5.7.0-win32.zip#09c8da3a7e09cea821f9b300c6f4f52f4a571d949d91839ecbce93b84a08d570" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.7.0-src b/plugins/python-build/share/python-build/pypy2-5.7.0-src index 4e491429c3..3f88f5f384 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.0-src +++ b/plugins/python-build/share/python-build/pypy2-5.7.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.7.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-src.tar.bz2#e522ea7ca51b16ee5505f22b86803664b762a263a6d69ba84c359fcf8365ad3e" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.7.0-src" "https://downloads.python.org/pypy/pypy2-v5.7.0-src.tar.bz2#e522ea7ca51b16ee5505f22b86803664b762a263a6d69ba84c359fcf8365ad3e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.7.1 b/plugins/python-build/share/python-build/pypy2-5.7.1 index 26c915a36f..eb9bedd35e 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.1 +++ b/plugins/python-build/share/python-build/pypy2-5.7.1 @@ -1,34 +1,34 @@ 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 "pypy2-v5.7.1-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux32.tar.bz2#f125a227f8c814ba1698168a639ea6ca59bb69c280529639eed29076d8429a73" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.1-linux32" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux32.tar.bz2#f125a227f8c814ba1698168a639ea6ca59bb69c280529639eed29076d8429a73" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.7.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux-armel.tar.bz2#591a4a73cc945a1125848f3615a28559692db8febf677d7087eaef40cb119a8d" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.1-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux-armel.tar.bz2#591a4a73cc945a1125848f3615a28559692db8febf677d7087eaef40cb119a8d" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.7.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux-armhf-raspbian.tar.bz2#67544f8c4b284db71cf1af74edef290722f97f82476cbdaff2015fdab244c6ee" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux-armhf-raspbian.tar.bz2#67544f8c4b284db71cf1af74edef290722f97f82476cbdaff2015fdab244c6ee" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.7.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux-armhf-raring.tar.bz2#c1b1a0968b22c58672f7492dc7900bc85e3bd02c791f219f31401a00ef387207" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux-armhf-raring.tar.bz2#c1b1a0968b22c58672f7492dc7900bc85e3bd02c791f219f31401a00ef387207" "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 "pypy2-v5.7.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux64.tar.bz2#c4fa3da42156bed4a9d912433b618a141e0c5161d7cc8c328786736ea5d1c2da" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.1-linux64" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux64.tar.bz2#c4fa3da42156bed4a9d912433b618a141e0c5161d7cc8c328786736ea5d1c2da" "pypy" verify_py27 ensurepip else - install_package "pypy-5.7.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.7.1-linux_x86_64-portable.tar.bz2#8a6a194963eb58d582413c4bcdef6119f9f9f117a05032d1fb13192d934510c6" "pypy" verify_py27 ensurepip + install_package "pypy-5.7.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.7.1-linux_x86_64-portable.tar.bz2#8a6a194963eb58d582413c4bcdef6119f9f9f117a05032d1fb13192d934510c6" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.7.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-osx64.tar.bz2#4e99ba356432861534917a9477ace0ccee617bd631512759a530f8383e153a3d" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.7.1-osx64" "https://downloads.python.org/pypy/pypy2-v5.7.1-osx64.tar.bz2#4e99ba356432861534917a9477ace0ccee617bd631512759a530f8383e153a3d" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.7.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-win32.zip#a3ba7c946635236836f8536d8767a0f456b3b9a86876cb5c3173a04522bf451b" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.7.1-win32" "https://downloads.python.org/pypy/pypy2-v5.7.1-win32.zip#a3ba7c946635236836f8536d8767a0f456b3b9a86876cb5c3173a04522bf451b" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2-5.7.1-src b/plugins/python-build/share/python-build/pypy2-5.7.1-src index 4e491429c3..3f88f5f384 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.1-src +++ b/plugins/python-build/share/python-build/pypy2-5.7.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.7.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-src.tar.bz2#e522ea7ca51b16ee5505f22b86803664b762a263a6d69ba84c359fcf8365ad3e" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.7.0-src" "https://downloads.python.org/pypy/pypy2-v5.7.0-src.tar.bz2#e522ea7ca51b16ee5505f22b86803664b762a263a6d69ba84c359fcf8365ad3e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.10.0 b/plugins/python-build/share/python-build/pypy2.7-5.10.0 index 0c165db884..e88a59d8d9 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.10.0 +++ b/plugins/python-build/share/python-build/pypy2.7-5.10.0 @@ -1,23 +1,23 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.10.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-linux32.tar.bz2#ee1980467ac8cc9fa9d609f7da93c5282503e59a548781248fe1914a7199d540" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.10.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux32.tar.bz2#ee1980467ac8cc9fa9d609f7da93c5282503e59a548781248fe1914a7199d540" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.10.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-linux64.tar.bz2#da85af9240220179493ad66c857934dc7ea91aef8f168cd293a2d99af8346ee2" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.10.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux64.tar.bz2#da85af9240220179493ad66c857934dc7ea91aef8f168cd293a2d99af8346ee2" "pypy" verify_py27 ensurepip else - install_package "pypy-5.10.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.10.0-linux_x86_64-portable.tar.bz2#c966124497ba8728654ce1161fa4c46b035ff30f289be70960f58292e5897cc8" "pypy" verify_py27 ensurepip + install_package "pypy-5.10.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.10.0-linux_x86_64-portable.tar.bz2#c966124497ba8728654ce1161fa4c46b035ff30f289be70960f58292e5897cc8" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.10.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-linux-armel.tar.bz2#6fdd55dd8f674efd06f76edb60a09a03b9b04a5fbc56741f416a94a0b9d2ff91" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.10.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux-armel.tar.bz2#6fdd55dd8f674efd06f76edb60a09a03b9b04a5fbc56741f416a94a0b9d2ff91" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.10.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-linux-armhf-raspbian.tar.bz2#5ec3617bb9a07a0a0b2f3c8fbe69912345da4696cdb0a2aca7889b6f1e74435c" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.10.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux-armhf-raspbian.tar.bz2#5ec3617bb9a07a0a0b2f3c8fbe69912345da4696cdb0a2aca7889b6f1e74435c" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -29,11 +29,11 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "osx64" ) - install_package "pypy2-v5.10.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-osx64.tar.bz2#7e4120f0a83529a6851cbae0ec107dc7085ba8a4aeff4e7bd9da9aadb1ef37a4" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.10.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.10.0-osx64.tar.bz2#7e4120f0a83529a6851cbae0ec107dc7085ba8a4aeff4e7bd9da9aadb1ef37a4" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.10.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-win32.zip#350914f9b70404781674f2f188f84d440d9d25da46ed9733b3f98269a510e033" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.10.0-win32" "https://downloads.python.org/pypy/pypy2-v5.10.0-win32.zip#350914f9b70404781674f2f188f84d440d9d25da46ed9733b3f98269a510e033" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-5.10.0-src b/plugins/python-build/share/python-build/pypy2.7-5.10.0-src index f07708a549..9f3c20a791 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.10.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.10.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.10.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.10.0-src.tar.bz2#1209f2db718e6afda17528baa5138177a14a0938588a7d3e1b7c722c483079a8" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.10.0-src" "https://downloads.python.org/pypy/pypy2-v5.10.0-src.tar.bz2#1209f2db718e6afda17528baa5138177a14a0938588a7d3e1b7c722c483079a8" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.8.0 b/plugins/python-build/share/python-build/pypy2.7-5.8.0 index 630fba6e35..645498f98a 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.8.0 +++ b/plugins/python-build/share/python-build/pypy2.7-5.8.0 @@ -1,34 +1,34 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.8.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux32.tar.bz2#a0b125a5781f7e5ddfc3baca46503b14f4ee6a0e234e8d72bfcf3afdf4120bef" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.8.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux32.tar.bz2#a0b125a5781f7e5ddfc3baca46503b14f4ee6a0e234e8d72bfcf3afdf4120bef" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.8.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux-armel.tar.bz2#28b7fd0cc7418ffc66c71520728e87941be40ebf4b82675c57e25598a2a702b0" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.8.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux-armel.tar.bz2#28b7fd0cc7418ffc66c71520728e87941be40ebf4b82675c57e25598a2a702b0" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.8.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2#da58279a0e3706889fc0df06087cea08f8cfd22322139fe9bae73ef9b2d119b7" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.8.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux-armhf-raspbian.tar.bz2#da58279a0e3706889fc0df06087cea08f8cfd22322139fe9bae73ef9b2d119b7" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.8.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux-armhf-raring.tar.bz2#ddceca9c5c9a456d4bf1beab177660adffbbdf255a922244e1cc05f20318be46" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.8.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux-armhf-raring.tar.bz2#ddceca9c5c9a456d4bf1beab177660adffbbdf255a922244e1cc05f20318be46" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.8.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-linux64.tar.bz2#6274292d0e954a2609b15978cde6efa30942ba20aa5d2acbbf1c70c0a54e9b1e" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.8.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux64.tar.bz2#6274292d0e954a2609b15978cde6efa30942ba20aa5d2acbbf1c70c0a54e9b1e" "pypy" verify_py27 ensurepip else - install_package "pypy-5.8-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.8-1-linux_x86_64-portable.tar.bz2#52556230af5769c656173ae8a1bdcb2e16aef46e3993ed89f3aec3d220aec862" "pypy" verify_py27 ensurepip + install_package "pypy-5.8-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.8-1-linux_x86_64-portable.tar.bz2#52556230af5769c656173ae8a1bdcb2e16aef46e3993ed89f3aec3d220aec862" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.8.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-osx64.tar.bz2#04b61d1cf13aaca6d0420e854c820b8bd049dc88be16c02542abe8ca26eb075c" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.8.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.8.0-osx64.tar.bz2#04b61d1cf13aaca6d0420e854c820b8bd049dc88be16c02542abe8ca26eb075c" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.8.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-win32.zip#43d6217653e5bdc09e3ff8cb56fb52c4eb019429063d80107be4e88eef79ea8d" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.8.0-win32" "https://downloads.python.org/pypy/pypy2-v5.8.0-win32.zip#43d6217653e5bdc09e3ff8cb56fb52c4eb019429063d80107be4e88eef79ea8d" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-5.8.0-src b/plugins/python-build/share/python-build/pypy2.7-5.8.0-src index 8aa207db95..a071bd0840 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.8.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.8.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.8.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.8.0-src.tar.bz2#504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.8.0-src" "https://downloads.python.org/pypy/pypy2-v5.8.0-src.tar.bz2#504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.9.0 b/plugins/python-build/share/python-build/pypy2.7-5.9.0 index 8201a54c14..e41a5529be 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.9.0 +++ b/plugins/python-build/share/python-build/pypy2.7-5.9.0 @@ -1,34 +1,34 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.9.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-linux32.tar.bz2#a2431a9e4ef879da1a2b56b111013b4a6efb87d4173a37bf650de47834ac5fe4" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.9.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux32.tar.bz2#a2431a9e4ef879da1a2b56b111013b4a6efb87d4173a37bf650de47834ac5fe4" "pypy" verify_py27 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v5.9.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-linux-armel.tar.bz2#ac0676d91dfb388c799ec5c2845f42018a666423376f52f3ae13d61fd2e6f87d" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.9.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux-armel.tar.bz2#ac0676d91dfb388c799ec5c2845f42018a666423376f52f3ae13d61fd2e6f87d" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v5.9.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-linux-armhf-raspbian.tar.bz2#b8a20042a3f34486a372ff7c751539b2e16859c0a7ea69d5a73af92f0fdcb25a" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.9.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux-armhf-raspbian.tar.bz2#b8a20042a3f34486a372ff7c751539b2e16859c0a7ea69d5a73af92f0fdcb25a" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy2-v5.9.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-linux-armhf-raring.tar.bz2#2597b7b21acdef4f2b81074a594157c9450363c74a17f005548c6b102f93cff4" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.9.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux-armhf-raring.tar.bz2#2597b7b21acdef4f2b81074a594157c9450363c74a17f005548c6b102f93cff4" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.9.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-linux64.tar.bz2#790febd4f09e22d6e2f81154efc7dc4b2feec72712aaf4f82aa91b550abb4b48" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.9.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux64.tar.bz2#790febd4f09e22d6e2f81154efc7dc4b2feec72712aaf4f82aa91b550abb4b48" "pypy" verify_py27 ensurepip else - install_package "pypy-5.9-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.9-linux_x86_64-portable.tar.bz2#8d39eb98df3adf7882a7f3551f47b8c7cff47a0e20d6aabc57bb592f155c2616" "pypy" verify_py27 ensurepip + install_package "pypy-5.9-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.9-linux_x86_64-portable.tar.bz2#8d39eb98df3adf7882a7f3551f47b8c7cff47a0e20d6aabc57bb592f155c2616" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v5.9.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-osx64.tar.bz2#94de50ed80c7f6392ed356c03fd54cdc84858df43ad21e9e971d1b6da0f6b867" "pypy" verify_py27 ensurepip + install_package "pypy2-v5.9.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.9.0-osx64.tar.bz2#94de50ed80c7f6392ed356c03fd54cdc84858df43ad21e9e971d1b6da0f6b867" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v5.9.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-win32.zip#b61081e24e05b83d8110da1262be19f0094532c6cacc293e318a1c186d926533" "pypy" verify_py27 ensurepip + install_zip "pypy2-v5.9.0-win32" "https://downloads.python.org/pypy/pypy2-v5.9.0-win32.zip#b61081e24e05b83d8110da1262be19f0094532c6cacc293e318a1c186d926533" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-5.9.0-src b/plugins/python-build/share/python-build/pypy2.7-5.9.0-src index 61bb7b308e..8e33fa4596 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.9.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.9.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.9.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.9.0-src.tar.bz2#de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v5.9.0-src" "https://downloads.python.org/pypy/pypy2-v5.9.0-src.tar.bz2#de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-6.0.0 b/plugins/python-build/share/python-build/pypy2.7-6.0.0 index 165015477c..227be546f2 100644 --- a/plugins/python-build/share/python-build/pypy2.7-6.0.0 +++ b/plugins/python-build/share/python-build/pypy2.7-6.0.0 @@ -1,7 +1,7 @@ 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 "pypy2-v6.0.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux32.tar.bz2#ad1082d4328ae8f32617b14628648583b82b6d29df3aa42b97bd1853c08c4bc8" "pypy" verify_py27 ensurepip + install_package "pypy2-v6.0.0-linux32" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux32.tar.bz2#ad1082d4328ae8f32617b14628648583b82b6d29df3aa42b97bd1853c08c4bc8" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,11 +14,11 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy2-v6.0.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armel.tar.bz2#924ca3f90aa28e8961859508c25752c95253b842318a0f267267ffe90f56a916" "pypy" verify_py27 ensurepip + install_package "pypy2-v6.0.0-linux-armel" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux-armel.tar.bz2#924ca3f90aa28e8961859508c25752c95253b842318a0f267267ffe90f56a916" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy2-v6.0.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armhf-raspbian.tar.bz2#6506ce739e31981e5596d3cc2e2c7f5b086ee77bb4d97773082b62b2f283eef2" "pypy" verify_py27 ensurepip + install_package "pypy2-v6.0.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux-armhf-raspbian.tar.bz2#6506ce739e31981e5596d3cc2e2c7f5b086ee77bb4d97773082b62b2f283eef2" "pypy" verify_py27 ensurepip else require_distro "Ubuntu 13.04" || true install_package "pypy2-v6.0.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armhf-raring.tar.bz2#2c430240cecb562102c677598f106aa57899f00cd37f719989e18ed9ca44bd01" "pypy" verify_py27 ensurepip @@ -26,17 +26,17 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "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 "pypy2-v6.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux64.tar.bz2#6cbf942ba7c90f504d8d6a2e45d4244e3bf146c8722d64e9410b85eac6b5af67" "pypy" verify_py27 ensurepip + install_package "pypy2-v6.0.0-linux64" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux64.tar.bz2#6cbf942ba7c90f504d8d6a2e45d4244e3bf146c8722d64e9410b85eac6b5af67" "pypy" verify_py27 ensurepip else - install_package "pypy-6.0.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-6.0.0-linux_x86_64-portable.tar.bz2#1d2a833680f9432b6b5f6b8503f656535f429eeb6c4bc5408abe5b637bfb9b94" "pypy" verify_py27 ensurepip + install_package "pypy-6.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-6.0.0-linux_x86_64-portable.tar.bz2#1d2a833680f9432b6b5f6b8503f656535f429eeb6c4bc5408abe5b637bfb9b94" "pypy" verify_py27 ensurepip fi ;; "osx64" ) - install_package "pypy2-v6.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-osx64.tar.bz2#d7dc443e6bb9a45212e8d8f5a63e9f6ce23f1d88c50709efea1c75b76c8bc186" "pypy" verify_py27 ensurepip + install_package "pypy2-v6.0.0-osx64" "https://downloads.python.org/pypy/pypy2-v6.0.0-osx64.tar.bz2#d7dc443e6bb9a45212e8d8f5a63e9f6ce23f1d88c50709efea1c75b76c8bc186" "pypy" verify_py27 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy2-v6.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-win32.zip#6e2210dae1ae721ed4eb9cba19f15453514b64111511c84f24843c4fdefdaf7f" "pypy" verify_py27 ensurepip + install_zip "pypy2-v6.0.0-win32" "https://downloads.python.org/pypy/pypy2-v6.0.0-win32.zip#6e2210dae1ae721ed4eb9cba19f15453514b64111511c84f24843c4fdefdaf7f" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-6.0.0-src b/plugins/python-build/share/python-build/pypy2.7-6.0.0-src index 7bcd6f312f..629dd1bc96 100644 --- a/plugins/python-build/share/python-build/pypy2.7-6.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-6.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v6.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-src.tar.bz2#6097ec5ee23d0d34d8cd27a1072bed041c8a080ad48731190a03a2223029212d" "pypy_builder" verify_py27 ensurepip +install_package "pypy2-v6.0.0-src" "https://downloads.python.org/pypy/pypy2-v6.0.0-src.tar.bz2#6097ec5ee23d0d34d8cd27a1072bed041c8a080ad48731190a03a2223029212d" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.0.0 b/plugins/python-build/share/python-build/pypy2.7-7.0.0 index 129360f742..1aea960b97 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.0.0 +++ b/plugins/python-build/share/python-build/pypy2.7-7.0.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.0.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-linux32.tar.bz2#446fc208dd77a0048368da830564e6e4180bcd786e524b5369c61785af5c903a" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.0.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-linux32.tar.bz2#446fc208dd77a0048368da830564e6e4180bcd786e524b5369c61785af5c903a" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-linux64.tar.bz2#971b1909f9fe960c4c643a6940d3f8a60d9a7a2937119535ab0cfaf83498ecd7" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.0.0-linux64" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-linux64.tar.bz2#971b1909f9fe960c4c643a6940d3f8a60d9a7a2937119535ab0cfaf83498ecd7" "pypy" verify_py27 ensurepip else - install_package "pypy-7.0.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-7.0.0-linux_x86_64-portable.tar.bz2#fd71f2bef69c342e492239c2de04a67676bbc08b262d31948bef9e1385a44646" "pypy" verify_py27 ensurepip + install_package "pypy-7.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.0.0-linux_x86_64-portable.tar.bz2#fd71f2bef69c342e492239c2de04a67676bbc08b262d31948bef9e1385a44646" "pypy" verify_py27 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy2.7-v7.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-osx64.tar.bz2#e7ecb029d9c7a59388838fc4820a50a2f5bee6536010031060e3dfa882730dc8" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.0.0-osx64" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-osx64.tar.bz2#e7ecb029d9c7a59388838fc4820a50a2f5bee6536010031060e3dfa882730dc8" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy2.7-v7.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-win32.zip#04477a41194240cd71e485c3f41dec35a787d1b3bc030f9aa59e5e81bcf4118b" "pypy" verify_py27 ensurepip + install_zip "pypy2.7-v7.0.0-win32" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-win32.zip#04477a41194240cd71e485c3f41dec35a787d1b3bc030f9aa59e5e81bcf4118b" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-7.0.0-src b/plugins/python-build/share/python-build/pypy2.7-7.0.0-src index c4b01b1924..21fbd93983 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.0.0-src.tar.bz2#f51d8bbfc4e73a8a01820b7871a45d13c59f1399822cdf8a19388c69eb20c18c" "pypy_builder" verify_py27 ensurepip +install_package "pypy2.7-v7.0.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-src.tar.bz2#f51d8bbfc4e73a8a01820b7871a45d13c59f1399822cdf8a19388c69eb20c18c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.0 b/plugins/python-build/share/python-build/pypy2.7-7.1.0 index ba55d92ebc..7f9aaebfbd 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.0 +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.1.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.0-linux32.tar.bz2#44ec91e8cb01caab289d8763c203f3aaf288d14325a6c42692bd1ac4e870d758" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.1.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-linux32.tar.bz2#44ec91e8cb01caab289d8763c203f3aaf288d14325a6c42692bd1ac4e870d758" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.1.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.0-linux64.tar.bz2#fef176a29a2ef068c00c8098e59dab935ca6e956f089672b3f7351da95a034f5" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.1.0-linux64" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-linux64.tar.bz2#fef176a29a2ef068c00c8098e59dab935ca6e956f089672b3f7351da95a034f5" "pypy" verify_py27 ensurepip else - install_package "pypy-7.1.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-7.1.0-linux_x86_64-portable.tar.bz2#ee917d9d72fb6a7d15e31e6c5e470ce561a940f112e99f29ac5dd6b41f512657" "pypy" verify_py27 ensurepip + install_package "pypy-7.1.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.1.0-linux_x86_64-portable.tar.bz2#ee917d9d72fb6a7d15e31e6c5e470ce561a940f112e99f29ac5dd6b41f512657" "pypy" verify_py27 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy2.7-v7.1.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.0-osx64.tar.bz2#8be43685ce718b0768387450fc6dc395d60809b778b6146c353ef67826022153" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.1.0-osx64" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-osx64.tar.bz2#8be43685ce718b0768387450fc6dc395d60809b778b6146c353ef67826022153" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy2.7-v7.1.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.0-win32.zip#76658c9ad679d562b8b6a09d006caa666406337b9834ff56db16980c5e549f20" "pypy" verify_py27 ensurepip + install_zip "pypy2.7-v7.1.0-win32" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-win32.zip#76658c9ad679d562b8b6a09d006caa666406337b9834ff56db16980c5e549f20" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.0-src b/plugins/python-build/share/python-build/pypy2.7-7.1.0-src index 9618c65ad3..144218cb92 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.1.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.0-src.tar.bz2#b051a71ea5b4fa27d0a744b28e6054661adfce8904dcc82500716b5edff5ce4b" "pypy_builder" verify_py27 ensurepip +install_package "pypy2.7-v7.1.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-src.tar.bz2#b051a71ea5b4fa27d0a744b28e6054661adfce8904dcc82500716b5edff5ce4b" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.1 b/plugins/python-build/share/python-build/pypy2.7-7.1.1 index c19b3a9574..5f12e5ff67 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.1 +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.1 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.1.1-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.1-linux32.tar.bz2#41ca390a76ca0d47b8353a0d6a20d5aab5fad8b0bb647b960d8c33e873d18ef5" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.1.1-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-linux32.tar.bz2#41ca390a76ca0d47b8353a0d6a20d5aab5fad8b0bb647b960d8c33e873d18ef5" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.1.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.1-linux64.tar.bz2#73b09ef0860eb9ad7997af3030b22909806a273d90786d78420926df53279d66" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.1.1-linux64" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-linux64.tar.bz2#73b09ef0860eb9ad7997af3030b22909806a273d90786d78420926df53279d66" "pypy" verify_py27 ensurepip else - install_package "pypy-7.1.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-7.1.1-linux_x86_64-portable.tar.bz2#d0b226d2dd656c622cee4e3e982225e1b346653823b49f736d8b0ddc06fd0c73" "pypy" verify_py27 ensurepip + install_package "pypy-7.1.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.1.1-linux_x86_64-portable.tar.bz2#d0b226d2dd656c622cee4e3e982225e1b346653823b49f736d8b0ddc06fd0c73" "pypy" verify_py27 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy2.7-v7.1.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.1-osx64.tar.bz2#31a17294dec96c2191885c776b4ee02112957dc874f7ba03e570537a77b78c35" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.1.1-osx64" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-osx64.tar.bz2#31a17294dec96c2191885c776b4ee02112957dc874f7ba03e570537a77b78c35" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy2.7-v7.1.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.1-win32.zip#9c59226311f216a181e70ee7b5aa4d9665a15d00f24ae02acec9af7d96355f63" "pypy" verify_py27 ensurepip + install_zip "pypy2.7-v7.1.1-win32" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-win32.zip#9c59226311f216a181e70ee7b5aa4d9665a15d00f24ae02acec9af7d96355f63" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.1-src b/plugins/python-build/share/python-build/pypy2.7-7.1.1-src index ba24cdf2db..c50458ad50 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.1-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.1.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.1.1-src.tar.bz2#5f06bede6d71dce8dfbfe797aab26c8e35cb990e16b826914652dc093ad74451" "pypy_builder" verify_py27 ensurepip +install_package "pypy2.7-v7.1.1-src" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-src.tar.bz2#5f06bede6d71dce8dfbfe797aab26c8e35cb990e16b826914652dc093ad74451" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.2.0 b/plugins/python-build/share/python-build/pypy2.7-7.2.0 index be2f9929a3..dca6d6ebb7 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.2.0 +++ b/plugins/python-build/share/python-build/pypy2.7-7.2.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.2.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-linux32.tar.bz2#76d666e5aee54b519d6ec1af4ef0cbdc85f7f9276dd554e97deb026adfd0c936" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.2.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-linux32.tar.bz2#76d666e5aee54b519d6ec1af4ef0cbdc85f7f9276dd554e97deb026adfd0c936" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.2.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-linux64.tar.bz2#05acf28e6a243026ecad933b9361d8f74b41f00818071b76b38c4694cc4c9599" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.2.0-linux64" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-linux64.tar.bz2#05acf28e6a243026ecad933b9361d8f74b41f00818071b76b38c4694cc4c9599" "pypy" verify_py27 ensurepip else install_package "pypy-7.2.0-linux_x86_64-portable" "https://github.com/squeaky-pl/portable-pypy/releases/download/pypy-7.2.0/pypy-7.2.0-linux_x86_64-portable.tar.bz2#a4f301e7629aafe4691ed1c3e9a39cf2158d86524f6ce584e5b850303e77ad81" "pypy" verify_py27 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy2.7-v7.2.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-osx64.tar.bz2#36aa2f2440e762333569118dd0b3d5371d575c40966effa194d116c5453ddb52" "pypy" verify_py27 ensurepip + install_package "pypy2.7-v7.2.0-osx64" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-osx64.tar.bz2#36aa2f2440e762333569118dd0b3d5371d575c40966effa194d116c5453ddb52" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy2.7-v7.2.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-win32.zip#956eeaaaac053e5d0917e77a3d2ad1933ab5561eb3e6e71235780b5aa5fd2bb7" "pypy" verify_py27 ensurepip + install_zip "pypy2.7-v7.2.0-win32" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-win32.zip#956eeaaaac053e5d0917e77a3d2ad1933ab5561eb3e6e71235780b5aa5fd2bb7" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-7.2.0-src b/plugins/python-build/share/python-build/pypy2.7-7.2.0-src index 2edc3abe75..16cd24c617 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.2.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.2.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.2.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.2.0-src.tar.bz2#55cb7757784fbe3952102447f65b27d80e6c885a464a7af1a9ce264492439dcc" "pypy_builder" verify_py27 ensurepip +install_package "pypy2.7-v7.2.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-src.tar.bz2#55cb7757784fbe3952102447f65b27d80e6c885a464a7af1a9ce264492439dcc" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.0 b/plugins/python-build/share/python-build/pypy2.7-7.3.0 index 7c27288f31..a8143ae3ee 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.0 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.0 @@ -3,17 +3,17 @@ PYVER='2.7' case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy${PYVER}-v${VERSION}-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#eac1308b7d523003a5f6d20f58406d52ab14611bcec750122ae513a5a35110db" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#eac1308b7d523003a5f6d20f58406d52ab14611bcec750122ae513a5a35110db" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux64" ) - install_package "pypy${PYVER}-v${VERSION}-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#f4950a54378ac637da2a6defa52d6ffed96af12fcd5d74e1182fb834883c9826" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#f4950a54378ac637da2a6defa52d6ffed96af12fcd5d74e1182fb834883c9826" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux-aarch64" ) - install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#a3dd8d5e2a656849fa344dce4679d854a19bc4a096a0cf62b46a1be127a5d56c" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#a3dd8d5e2a656849fa344dce4679d854a19bc4a096a0cf62b46a1be127a5d56c" "pypy" "verify_py${PYVER//./}" ensurepip ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy${PYVER}-v${VERSION}-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#ca7b056b243a6221ad04fa7fc8696e36a2fb858396999dcaa31dbbae53c54474" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#ca7b056b243a6221ad04fa7fc8696e36a2fb858396999dcaa31dbbae53c54474" "pypy" "verify_py${PYVER//./}" ensurepip else { echo colorize 1 "ERROR" @@ -25,7 +25,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy${PYVER}-v${VERSION}-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-win32.zip#a9e3c5c983edba0313a41d3c1ab55b080816c4129e67a6c272c53b9dbcdd97ec" "pypy" "verify_py${PYVER//./}" ensurepip + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#a9e3c5c983edba0313a41d3c1ab55b080816c4129e67a6c272c53b9dbcdd97ec" "pypy" "verify_py${PYVER//./}" ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.0-src b/plugins/python-build/share/python-build/pypy2.7-7.3.0-src index 2c6cb96227..1619124ac7 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.3.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.0-src.tar.bz2#b0b25c7f8938ab0fedd8dedf26b9e73c490913b002b484c1b2f19d5844a518de" "pypy_builder" verify_py27 ensurepip +install_package "pypy2.7-v7.3.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.0-src.tar.bz2#b0b25c7f8938ab0fedd8dedf26b9e73c490913b002b484c1b2f19d5844a518de" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.1 b/plugins/python-build/share/python-build/pypy2.7-7.3.1 index 47c9cbf81f..0c90a80bbf 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.1 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.1 @@ -3,17 +3,17 @@ PYVER='2.7' case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy${PYVER}-v${VERSION}-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#cd155d06cd0956d9de4a16e8a6bdf0722cb45b5bc4bbf805825d393ebd6690ad" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#cd155d06cd0956d9de4a16e8a6bdf0722cb45b5bc4bbf805825d393ebd6690ad" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux64" ) - install_package "pypy${PYVER}-v${VERSION}-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#be74886547df7bf7094096a11fc0a48496779d0d1b71901797b0c816f92caca3" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#be74886547df7bf7094096a11fc0a48496779d0d1b71901797b0c816f92caca3" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux-aarch64" ) - install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#094f23ab262e666d8740bf27459a6b1215a628dad9b6c2a88f1ed5c793fab267" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#094f23ab262e666d8740bf27459a6b1215a628dad9b6c2a88f1ed5c793fab267" "pypy" "verify_py${PYVER//./}" ensurepip ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy${PYVER}-v${VERSION}-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#dfd4651243441d2f8f1c348e9ecc09848642d0c31bb323aa8ac320e5b9f232f0" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#dfd4651243441d2f8f1c348e9ecc09848642d0c31bb323aa8ac320e5b9f232f0" "pypy" "verify_py${PYVER//./}" ensurepip else { echo colorize 1 "ERROR" @@ -25,7 +25,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy${PYVER}-v${VERSION}-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-win32.zip#e3c0dfb385d9825dd7723f26576d55d43ed92f1178f2399ab39e9fa11621a47b" "pypy" "verify_py${PYVER//./}" ensurepip + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#e3c0dfb385d9825dd7723f26576d55d43ed92f1178f2399ab39e9fa11621a47b" "pypy" "verify_py${PYVER//./}" ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.1-src b/plugins/python-build/share/python-build/pypy2.7-7.3.1-src index b4771222f3..cfa833c39a 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.1-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.1-src @@ -1,4 +1,4 @@ #require_gcc 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 "pypy2.7-v7.3.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy2.7-v7.3.1-src.tar.bz2#fa3771514c8a354969be9bd3b26d65a489c30e28f91d350e4ad2f4081a9c9321" "pypy_builder" verify_py27 ensurepip +install_package "pypy2.7-v7.3.1-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.1-src.tar.bz2#fa3771514c8a354969be9bd3b26d65a489c30e28f91d350e4ad2f4081a9c9321" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3-2.3.1 b/plugins/python-build/share/python-build/pypy3-2.3.1 index ed31268bf4..1e7910c956 100644 --- a/plugins/python-build/share/python-build/pypy3-2.3.1 +++ b/plugins/python-build/share/python-build/pypy3-2.3.1 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.3.1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-linux.tar.bz2#7eddc6826e58c9c89e68b59ec8caf1596b76401517ad8d26ad5e18e0ffa45db9" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux" "https://downloads.python.org/pypy/pypy3-2.3.1-linux.tar.bz2#7eddc6826e58c9c89e68b59ec8caf1596b76401517ad8d26ad5e18e0ffa45db9" "pypy" verify_py32 ensurepip else - install_package "pypy3-2.3.1-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3-2.3.1-linux_i686-portable.tar.bz2#32a5b3fd4299b13aedf7bc6262eee0f6be9a27744ccf787718553d973ec38abb" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.3.1-linux_i686-portable.tar.bz2#32a5b3fd4299b13aedf7bc6262eee0f6be9a27744ccf787718553d973ec38abb" "pypy" verify_py32 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy3-2.3.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-linux-armel.tar.bz2#37ccdc68df322ba1bafe4177593b4ca293d1fffd60d72f2cf2326d090677f04f" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux-armel" "https://downloads.python.org/pypy/pypy3-2.3.1-linux-armel.tar.bz2#37ccdc68df322ba1bafe4177593b4ca293d1fffd60d72f2cf2326d090677f04f" "pypy" verify_py32 ensurepip ;; "linux-armhf") if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3-2.3.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-linux-armhf-raspbian.tar.bz2#033ccca1e3d7156d05ca8accd58b6371e15efc17468bbc3f963625b0c829b66b" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3-2.3.1-linux-armhf-raspbian.tar.bz2#033ccca1e3d7156d05ca8accd58b6371e15efc17468bbc3f963625b0c829b66b" "pypy" verify_py32 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy3-2.3.1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-linux-armhf-raring.tar.bz2#bd7c19bde4b18158da42534a677f27c9b23855968e7cc3d4178cc9d1620a250a" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy3-2.3.1-linux-armhf-raring.tar.bz2#bd7c19bde4b18158da42534a677f27c9b23855968e7cc3d4178cc9d1620a250a" "pypy" verify_py32 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.3.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-linux64.tar.bz2#303df2cf4766db20ec77786d9091dce284fdab01d7173c5828a35e86bc931b99" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux64" "https://downloads.python.org/pypy/pypy3-2.3.1-linux64.tar.bz2#303df2cf4766db20ec77786d9091dce284fdab01d7173c5828a35e86bc931b99" "pypy" verify_py32 ensurepip else - install_package "pypy3-2.3.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3-2.3.1-linux_x86_64-portable.tar.bz2#cb56b5bde8f444d44a0ea9cd475ddeed00aa895f3dcc89fd37577a51439540aa" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.3.1-linux_x86_64-portable.tar.bz2#cb56b5bde8f444d44a0ea9cd475ddeed00aa895f3dcc89fd37577a51439540aa" "pypy" verify_py32 ensurepip fi ;; "osx64" ) - install_package "pypy3-2.3.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-osx64.tar.bz2#600d4dad2039b8035582c0e0ce9b71e8236d95db26cff48c84c6d1e0ea6814c1" "pypy" verify_py32 ensurepip + install_package "pypy3-2.3.1-osx64" "https://downloads.python.org/pypy/pypy3-2.3.1-osx64.tar.bz2#600d4dad2039b8035582c0e0ce9b71e8236d95db26cff48c84c6d1e0ea6814c1" "pypy" verify_py32 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy3-2.3.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-win32.zip#3f3566a39100da9b0fb730ff629352b48c5ae322546fce2c528c58fc0a652b26" "pypy" verify_py32 ensurepip + install_zip "pypy3-2.3.1-win32" "https://downloads.python.org/pypy/pypy3-2.3.1-win32.zip#3f3566a39100da9b0fb730ff629352b48c5ae322546fce2c528c58fc0a652b26" "pypy" verify_py32 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3-2.3.1-src b/plugins/python-build/share/python-build/pypy3-2.3.1-src index c73323b5a6..61e6debbcb 100644 --- a/plugins/python-build/share/python-build/pypy3-2.3.1-src +++ b/plugins/python-build/share/python-build/pypy3-2.3.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-2.3.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-src.tar.bz2#924ca36bf85e02469c71d451c145f9a6d19b905df473a3d1c25179c63ea79d74" "pypy_builder" verify_py32 ensurepip +install_package "pypy3-2.3.1-src" "https://downloads.python.org/pypy/pypy3-2.3.1-src.tar.bz2#924ca36bf85e02469c71d451c145f9a6d19b905df473a3d1c25179c63ea79d74" "pypy_builder" verify_py32 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3-2.4.0 b/plugins/python-build/share/python-build/pypy3-2.4.0 index ef57afcb03..38065d936f 100644 --- a/plugins/python-build/share/python-build/pypy3-2.4.0 +++ b/plugins/python-build/share/python-build/pypy3-2.4.0 @@ -1,36 +1,36 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.4.0-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux.tar.bz2#108fdcccfddb9b2cb2fc3cbca5e6f7902ed3ab74a24c8ae29da7fbdadbab4345" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4.0-linux" "https://downloads.python.org/pypy/pypy3-2.4.0-linux.tar.bz2#108fdcccfddb9b2cb2fc3cbca5e6f7902ed3ab74a24c8ae29da7fbdadbab4345" "pypy" verify_py32 ensurepip else - install_package "pypy3-2.4-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3-2.4-linux_i686-portable.tar.bz2#7ce050b4928dc58f7e9dd01e3e48c443c85616ca83f4bcc9147f1078d0fd126c" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.4-linux_i686-portable.tar.bz2#7ce050b4928dc58f7e9dd01e3e48c443c85616ca83f4bcc9147f1078d0fd126c" "pypy" verify_py32 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true - install_package "pypy3-2.4.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux-armel.tar.bz2#322ddc863006a97d48edc302a73bb0981bbc142951237ed161ca0ca2cd02831f" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4.0-linux-armel" "https://downloads.python.org/pypy/pypy3-2.4.0-linux-armel.tar.bz2#322ddc863006a97d48edc302a73bb0981bbc142951237ed161ca0ca2cd02831f" "pypy" verify_py32 ensurepip ;; "linux-armhf") if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3-2.4.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux-armhf-raspbian.tar.bz2#ad8f00255c85bf3c1012d56d5638c7aee12bc9f1ddcdaad35985bbd65a16c602" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3-2.4.0-linux-armhf-raspbian.tar.bz2#ad8f00255c85bf3c1012d56d5638c7aee12bc9f1ddcdaad35985bbd65a16c602" "pypy" verify_py32 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy3-2.4.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux-armhf-raring.tar.bz2#eb41a3ee62741199aeeab818553ded460db991911609acf36e5710f491e5ac0a" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4.0-linux-armhf-raring" "https://downloads.python.org/pypy/pypy3-2.4.0-linux-armhf-raring.tar.bz2#eb41a3ee62741199aeeab818553ded460db991911609acf36e5710f491e5ac0a" "pypy" verify_py32 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.4.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-linux64.tar.bz2#24e680b1742af7361107876a421dd793f5ef852dd5f097546f84b1378f7f70cc" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4.0-linux64" "https://downloads.python.org/pypy/pypy3-2.4.0-linux64.tar.bz2#24e680b1742af7361107876a421dd793f5ef852dd5f097546f84b1378f7f70cc" "pypy" verify_py32 ensurepip else - install_package "pypy3-2.4-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3-2.4-linux_x86_64-portable.tar.bz2#7b3e0f0bc924bd0d68d85c0b566979e74a2b366595db3d81502267367370a5fb" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.4-linux_x86_64-portable.tar.bz2#7b3e0f0bc924bd0d68d85c0b566979e74a2b366595db3d81502267367370a5fb" "pypy" verify_py32 ensurepip fi ;; "osx64" ) - install_package "pypy3-2.4.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-osx64.tar.bz2#dcd86bdb753e93dbf55e1f3af3ffa97eea328b8b77aa60e92ea2260a6258cedb" "pypy" verify_py32 ensurepip + install_package "pypy3-2.4.0-osx64" "https://downloads.python.org/pypy/pypy3-2.4.0-osx64.tar.bz2#dcd86bdb753e93dbf55e1f3af3ffa97eea328b8b77aa60e92ea2260a6258cedb" "pypy" verify_py32 ensurepip ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy3-2.4.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-win32.zip#7ea499993b07405898dee9435836220d8c7b8abfa1b1f760c4a1c04b43945797" "pypy" verify_py32 ensurepip + install_zip "pypy3-2.4.0-win32" "https://downloads.python.org/pypy/pypy3-2.4.0-win32.zip#7ea499993b07405898dee9435836220d8c7b8abfa1b1f760c4a1c04b43945797" "pypy" verify_py32 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3-2.4.0-src b/plugins/python-build/share/python-build/pypy3-2.4.0-src index a0073a7fd9..dd0dbc17dd 100644 --- a/plugins/python-build/share/python-build/pypy3-2.4.0-src +++ b/plugins/python-build/share/python-build/pypy3-2.4.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-2.4.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-2.4.0-src.tar.bz2#d9ba207d6eecf8a0dc4414e9f4e92db1abd143e8cc6ec4a6bdcac75b29f104f3" "pypy_builder" verify_py32 ensurepip +install_package "pypy3-2.4.0-src" "https://downloads.python.org/pypy/pypy3-2.4.0-src.tar.bz2#d9ba207d6eecf8a0dc4414e9f4e92db1abd143e8cc6ec4a6bdcac75b29f104f3" "pypy_builder" verify_py32 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 index 0bab7f060e..52d3b10a0c 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 +++ b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 @@ -1,32 +1,32 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy3.3-v5.2.0-alpha1-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-linux32.tar.bz2#351aec101bdedddae7ea1b63845a5654b1a95fc9393894ef84a66749f6945f17" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.2.0-alpha1-linux" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux32.tar.bz2#351aec101bdedddae7ea1b63845a5654b1a95fc9393894ef84a66749f6945f17" "pypy" verify_py33 ensurepip else - install_package "pypy3.3-5.2-alpha-20160602-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.3-5.2-alpha-20160602-linux_i686-portable.tar.bz2#6f2412167c63d6711b41062a23794828f95a75400082a6957595867762cb170d" "pypy" verify_py33 ensurepip + install_package "pypy3.3-5.2-alpha-20160602-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.2-alpha-20160602-linux_i686-portable.tar.bz2#6f2412167c63d6711b41062a23794828f95a75400082a6957595867762cb170d" "pypy" verify_py33 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy3.3-v5.2.0-alpha1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-linux-armel.tar.bz2#ac83e632213f078ab60045e6ad0564b146d65dcd9a52c130026fab6dd85bf2dc" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.2.0-alpha1-linux-armel" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux-armel.tar.bz2#ac83e632213f078ab60045e6ad0564b146d65dcd9a52c130026fab6dd85bf2dc" "pypy" verify_py33 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3.3-v5.2.0-alpha1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-linux-armhf-raspbian.tar.bz2#ba9a5d0cbac1c622363315b30df288ab2cf8fcccf7e2882bf5946115dbfa657e" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.2.0-alpha1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux-armhf-raspbian.tar.bz2#ba9a5d0cbac1c622363315b30df288ab2cf8fcccf7e2882bf5946115dbfa657e" "pypy" verify_py33 ensurepip else require_distro "Ubuntu 13.04" || true - install_package "pypy3.3-v5.2.0-alpha1-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-linux-armhf-raring.tar.bz2#b4d847d33c1bf9b3956d1d17b9e37505eb32f68e341c9333a74a82010a63e799" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.2.0-alpha1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux-armhf-raring.tar.bz2#b4d847d33c1bf9b3956d1d17b9e37505eb32f68e341c9333a74a82010a63e799" "pypy" verify_py33 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 "pypy3.3-v5.2.0-alpha1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-linux64.tar.bz2#f5e66ab24267d6ddf662d07c512d06c10ebc732ae62093dabbd775ac63b9060a" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.2.0-alpha1-linux64" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux64.tar.bz2#f5e66ab24267d6ddf662d07c512d06c10ebc732ae62093dabbd775ac63b9060a" "pypy" verify_py33 ensurepip else - install_package "pypy3.3-5.2-alpha-20160602-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.3-5.2-alpha-20160602-linux_x86_64-portable.tar.bz2#4d1e7dd727448c1b2caa90c943713c0aa10b32e9d977c2c3b348835f515a3ad4" "pypy" verify_py33 ensurepip + install_package "pypy3.3-5.2-alpha-20160602-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.2-alpha-20160602-linux_x86_64-portable.tar.bz2#4d1e7dd727448c1b2caa90c943713c0aa10b32e9d977c2c3b348835f515a3ad4" "pypy" verify_py33 ensurepip fi ;; "osx64" ) - install_package "pypy3.3-v5.2.0-alpha1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-osx64.tar.bz2#abaceab5d2790f49e04e0d80669283da41f94b77cf483b30ac0de48d3c19f304" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.2.0-alpha1-osx64" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-osx64.tar.bz2#abaceab5d2790f49e04e0d80669283da41f94b77cf483b30ac0de48d3c19f304" "pypy" verify_py33 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src index 8a203aae89..780aa91a06 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src +++ b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.3-v5.2.0-alpha1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.2.0-alpha1-src.tar.bz2#344c2f088c82ea1274964bb0505ab80d3f9e538cc03f91aa109325ddbaa61426" "pypy_builder" verify_py33 ensurepip +install_package "pypy3.3-v5.2.0-alpha1-src" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-src.tar.bz2#344c2f088c82ea1274964bb0505ab80d3f9e538cc03f91aa109325ddbaa61426" "pypy_builder" verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha index c82ab70b0f..328b5b580f 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha +++ b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha @@ -1,18 +1,18 @@ 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 "pypy3.3-v5.5.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux32.tar.bz2#966ee7951ad497ac907e01554fe48da77cc64a5e35a1307477c2f78652eba622" "pypy" verify_py33 ensurepip + install_package "pypy3.3-v5.5.0-linux32" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-linux32.tar.bz2#966ee7951ad497ac907e01554fe48da77cc64a5e35a1307477c2f78652eba622" "pypy" verify_py33 ensurepip else - install_package "pypy3.3-5.5-alpha-20161014-linux_i686-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.3-5.5-alpha-20161014-linux_i686-portable.tar.bz2#af32420f368bc3276d15a5cf4e2e8cb0bef16f711ee830a636ad117e55c3268f" "pypy" verify_py33 ensurepip + install_package "pypy3.3-5.5-alpha-20161014-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.5-alpha-20161014-linux_i686-portable.tar.bz2#af32420f368bc3276d15a5cf4e2e8cb0bef16f711ee830a636ad117e55c3268f" "pypy" verify_py33 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy3-v5.5.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux-armel.tar.bz2#9f081041867f434f18456f936befbacd9f40c0ede24137cbf80f9f45ff37b69f" "pypy" verify_py33 ensurepip + install_package "pypy3-v5.5.0-linux-armel" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-linux-armel.tar.bz2#9f081041867f434f18456f936befbacd9f40c0ede24137cbf80f9f45ff37b69f" "pypy" verify_py33 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3-v5.5.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux-armhf-raspbian.tar.bz2#d8e94c834307081d5c4be863fab935e34df360a77b06e8bc833624c4b712b2aa" "pypy" verify_py33 ensurepip + install_package "pypy3-v5.5.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-linux-armhf-raspbian.tar.bz2#d8e94c834307081d5c4be863fab935e34df360a77b06e8bc833624c4b712b2aa" "pypy" verify_py33 ensurepip else { echo colorize 1 "ERROR" @@ -25,13 +25,13 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "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 "pypy3-v5.5.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux64.tar.bz2#41ef7c25fd04eeb20deaa83c5d88c10aef2bbc8bcfd9e53e7cc61136220861cc" "pypy" verify_py33 ensurepip + install_package "pypy3-v5.5.0-linux64" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-linux64.tar.bz2#41ef7c25fd04eeb20deaa83c5d88c10aef2bbc8bcfd9e53e7cc61136220861cc" "pypy" verify_py33 ensurepip else - install_package "pypy3.3-5.5-alpha-20161013-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.3-5.5-alpha-20161013-linux_x86_64-portable.tar.bz2#1cd7a00da376b2db29b3e1f3e9bb7a77afc8ad988b3f13fd0805f37b23960a34" "pypy" verify_py33 ensurepip + install_package "pypy3.3-5.5-alpha-20161013-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.5-alpha-20161013-linux_x86_64-portable.tar.bz2#1cd7a00da376b2db29b3e1f3e9bb7a77afc8ad988b3f13fd0805f37b23960a34" "pypy" verify_py33 ensurepip fi ;; "osx64" ) - install_package "pypy3-v5.5.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-osx64.tar.bz2#fa45f861a6c40ae44f99ec94c521adfb6b64b0c9c0b6fc6e9df018241a648986" "pypy" verify_py33 ensurepip + install_package "pypy3-v5.5.0-osx64" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-osx64.tar.bz2#fa45f861a6c40ae44f99ec94c521adfb6b64b0c9c0b6fc6e9df018241a648986" "pypy" verify_py33 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src index bb032d1f7e..b012976019 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src +++ b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.5.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-src.tar.bz2#d5591c34d77253e9ed57d182b6f49585b95f7c09c3e121f0e8630e5a7e75ab5f" "pypy_builder" verify_py33 ensurepip +install_package "pypy3-v5.5.0-src" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-src.tar.bz2#d5591c34d77253e9ed57d182b6f49585b95f7c09c3e121f0e8630e5a7e75ab5f" "pypy_builder" verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.0 b/plugins/python-build/share/python-build/pypy3.5-5.10.0 index 086cb5e135..7fb0347708 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.0 @@ -1,23 +1,23 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-linux32.tar.bz2#529bc3b11edbdcdd676d90c805b8f607f6eedd5f0ec457a31bbe09c03f5bebfe" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.0-linux32" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux32.tar.bz2#529bc3b11edbdcdd676d90c805b8f607f6eedd5f0ec457a31bbe09c03f5bebfe" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-linux64.tar.bz2#aa4fb52fb858d973dd838dcf8d74f30705e5afdf1150acb8e056eb99353dfe77" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux64.tar.bz2#aa4fb52fb858d973dd838dcf8d74f30705e5afdf1150acb8e056eb99353dfe77" "pypy" verify_py27 ensurepip else - install_package "pypy3.5-5.10.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.10.0-linux_x86_64-portable.tar.bz2#d03f81f26e5e67d808569c5c69d56ceb007df78f7e36ab1c50da4d9096cebde0" "pypy" verify_py35 ensurepip + install_package "pypy3.5-5.10.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.10.0-linux_x86_64-portable.tar.bz2#d03f81f26e5e67d808569c5c69d56ceb007df78f7e36ab1c50da4d9096cebde0" "pypy" verify_py35 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy3-v5.10.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-linux-armel.tar.bz2#c2cc529befb3e1f2ef8bd4e96af4a823c52ef2d180b0b3bd87511c5b47d59210" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.0-linux-armel" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux-armel.tar.bz2#c2cc529befb3e1f2ef8bd4e96af4a823c52ef2d180b0b3bd87511c5b47d59210" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3-v5.10.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-linux-armhf-raspbian.tar.bz2#4e902e0e79f62f2a9049c1c71310ff4fc801011bec4d25082edb5c537d3f15c9" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux-armhf-raspbian.tar.bz2#4e902e0e79f62f2a9049c1c71310ff4fc801011bec4d25082edb5c537d3f15c9" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -30,14 +30,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3-v5.10.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-osx64.tar.bz2#7e389a103f560de1eead1271ec3a2df9424c6ccffe7cbae8e95e6e81ae811a16" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.0-osx64" "https://downloads.python.org/pypy/pypy3-v5.10.0-osx64.tar.bz2#7e389a103f560de1eead1271ec3a2df9424c6ccffe7cbae8e95e6e81ae811a16" "pypy" verify_py27 ensurepip else - install_package "pypy3-v5.10.0-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-osx64-2.tar.bz2#f5ced20934fff78e55c72aa82a4703954349a5a8099b94e77d74b96a94326a2c" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.0-osx64-2" "https://downloads.python.org/pypy/pypy3-v5.10.0-osx64-2.tar.bz2#f5ced20934fff78e55c72aa82a4703954349a5a8099b94e77d74b96a94326a2c" "pypy" verify_py27 ensurepip fi ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy3-v5.10.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-win32.zip#2d93bf2bd7b1d031b96331d3fde6cacdda95673ce6875d6d1669c4c0ea2a52bc" "pypy" verify_py27 ensurepip + install_zip "pypy3-v5.10.0-win32" "https://downloads.python.org/pypy/pypy3-v5.10.0-win32.zip#2d93bf2bd7b1d031b96331d3fde6cacdda95673ce6875d6d1669c4c0ea2a52bc" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.0-src b/plugins/python-build/share/python-build/pypy3.5-5.10.0-src index c39368a1d3..5ec3e779eb 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.10.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.0-src.tar.bz2#a6e4cffde71e3f08b6e1befa5c0352a9bcc5f4e9f5cbf395001e0763a1a0d9e3" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v5.10.0-src" "https://downloads.python.org/pypy/pypy3-v5.10.0-src.tar.bz2#a6e4cffde71e3f08b6e1befa5c0352a9bcc5f4e9f5cbf395001e0763a1a0d9e3" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.1 b/plugins/python-build/share/python-build/pypy3.5-5.10.1 index ae9280fe14..305a5084b4 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.1 +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.1 @@ -1,23 +1,23 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.1-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux32.tar.bz2#a6ceca9ee5dc511de7902164464b88311fec9366c5673d0c00528eda862bbe54" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.1-linux32" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux32.tar.bz2#a6ceca9ee5dc511de7902164464b88311fec9366c5673d0c00528eda862bbe54" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux64.tar.bz2#75a276e1ee1863967bbacb70c5bff636de200768c0ec90e72f7ec17aace0aefe" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.1-linux64" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux64.tar.bz2#75a276e1ee1863967bbacb70c5bff636de200768c0ec90e72f7ec17aace0aefe" "pypy" verify_py27 ensurepip else - install_package "pypy3.5-5.10.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.10.1-linux_x86_64-portable.tar.bz2#b7c7b0e0905208ce8a8061b1a0ae136a702e5218d0d350cb5216ad5a7c20d12e" "pypy" verify_py35 ensurepip + install_package "pypy3.5-5.10.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.10.1-linux_x86_64-portable.tar.bz2#b7c7b0e0905208ce8a8061b1a0ae136a702e5218d0d350cb5216ad5a7c20d12e" "pypy" verify_py35 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy3-v5.10.1-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux-armel.tar.bz2#5065e9ad958d06b9612ba974f43997d20168d4245c054dd43270e4b458782282" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.1-linux-armel" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux-armel.tar.bz2#5065e9ad958d06b9612ba974f43997d20168d4245c054dd43270e4b458782282" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3-v5.10.1-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-linux-armhf-raspbian.tar.bz2#203dd595fbad7055340b23326f20c85b0d6c11c4877e3559a437611fc2ac40c2" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.1-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux-armhf-raspbian.tar.bz2#203dd595fbad7055340b23326f20c85b0d6c11c4877e3559a437611fc2ac40c2" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -30,7 +30,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3-v5.10.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-osx64.tar.bz2#52f006611513c995fdebba6e72d394186d4085460408cbbe086e5467bf3fb9b6" "pypy" verify_py27 ensurepip + install_package "pypy3-v5.10.1-osx64" "https://downloads.python.org/pypy/pypy3-v5.10.1-osx64.tar.bz2#52f006611513c995fdebba6e72d394186d4085460408cbbe086e5467bf3fb9b6" "pypy" verify_py27 ensurepip else # install_package "pypy3-v5.10.1-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-osx64-2.tar.bz2#" "pypy" verify_py27 ensurepip { echo @@ -44,7 +44,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy3-v5.10.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-win32.zip#4edf4f021689a529e5a631c5cca72a1a9dc19a6ea2091e64289cdd5b60eaf929" "pypy" verify_py27 ensurepip + install_zip "pypy3-v5.10.1-win32" "https://downloads.python.org/pypy/pypy3-v5.10.1-win32.zip#4edf4f021689a529e5a631c5cca72a1a9dc19a6ea2091e64289cdd5b60eaf929" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.1-src b/plugins/python-build/share/python-build/pypy3.5-5.10.1-src index 14db9bd912..57017c3ac7 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.1-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.10.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-src.tar.bz2#f5548e06e2fc0c24ec8b6e3c5b09f90081818f7caa3e436dc312592611724713" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v5.10.1-src" "https://downloads.python.org/pypy/pypy3-v5.10.1-src.tar.bz2#f5548e06e2fc0c24ec8b6e3c5b09f90081818f7caa3e436dc312592611724713" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7-beta b/plugins/python-build/share/python-build/pypy3.5-5.7-beta index e8f97ebb63..58bf94a1d5 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7-beta +++ b/plugins/python-build/share/python-build/pypy3.5-5.7-beta @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "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 "pypy3-v5.7.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.7.0-linux64.tar.bz2#921894884a647220a712ecdaad516d9c22fbadf3b4bb3a5db8f3635c60eabc7b" "pypy" verify_py35 ensurepip + install_package "pypy3-v5.7.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.7.0-linux64.tar.bz2#921894884a647220a712ecdaad516d9c22fbadf3b4bb3a5db8f3635c60eabc7b" "pypy" verify_py35 ensurepip else install_package "pypy3.5-5.7-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.7-beta-linux_x86_64-portable.tar.bz2#d289ff7c32fd4263c3889994c8191c626891513e8ab60a65ba41a58b331db92c" "pypy" verify_py35 ensurepip fi diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src b/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src index 50e26a5c31..2bd4e2adb8 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.7.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.7.0-src.tar.bz2#f0f563b74f8b82ec33b022393219b93cc0d81e9f9500614fe8417b67a52e9569" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v5.7.0-src" "https://downloads.python.org/pypy/pypy3-v5.7.0-src.tar.bz2#f0f563b74f8b82ec33b022393219b93cc0d81e9f9500614fe8417b67a52e9569" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta index 454677d032..b9a8d70b96 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta +++ b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta @@ -1,9 +1,9 @@ case "$(pypy_architecture 2>/dev/null || true)" in "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 "pypy3-v5.7.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.7.1-linux64.tar.bz2#2abaa54d88c9b70b64c37083e7e430a1d3a8f78f8de92e484a988b7aca1e50a7" "pypy" verify_py35 ensurepip + install_package "pypy3-v5.7.1-linux64" "https://downloads.python.org/pypy/pypy3-v5.7.1-linux64.tar.bz2#2abaa54d88c9b70b64c37083e7e430a1d3a8f78f8de92e484a988b7aca1e50a7" "pypy" verify_py35 ensurepip else - install_package "pypy3.5-5.7.1-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2#3d1b02f6ef50d4e9069885e0b3f19f26491c7f4f9c5ccc8aa118e38fd6a23997" "pypy" verify_py35 ensurepip + install_package "pypy3.5-5.7.1-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2#3d1b02f6ef50d4e9069885e0b3f19f26491c7f4f9c5ccc8aa118e38fd6a23997" "pypy" verify_py35 ensurepip fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src index d0ed396a86..90abe205cf 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.7.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.7.1-src.tar.bz2#40ece0145282980ac121390f13709404c0532896507d5767496381180b631bd0" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v5.7.1-src" "https://downloads.python.org/pypy/pypy3-v5.7.1-src.tar.bz2#40ece0145282980ac121390f13709404c0532896507d5767496381180b631bd0" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.8.0 b/plugins/python-build/share/python-build/pypy3.5-5.8.0 index 9c8164d028..d54532bb39 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.8.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.8.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux64" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.8.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.8.0-linux64.tar.bz2#57d871a7f1135719c138cee4e3533c3275d682a76a40ff668e95150c65923035" "pypy" verify_py35 ensurepip + install_package "pypy3-v5.8.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.8.0-linux64.tar.bz2#57d871a7f1135719c138cee4e3533c3275d682a76a40ff668e95150c65923035" "pypy" verify_py35 ensurepip else install_package "pypy3.5-5.8-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.8-1-beta-linux_x86_64-portable.tar.bz2#cab20a6d315a1bb05aa953ebc37d8deaa34dcbe298cb5938e373c42c05542b99" "pypy" verify_py35 ensurepip fi diff --git a/plugins/python-build/share/python-build/pypy3.5-5.8.0-src b/plugins/python-build/share/python-build/pypy3.5-5.8.0-src index 3ffa9a1cff..634e9716d6 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.8.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.8.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.8.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.8.0-src.tar.bz2#9d090127335c3c0fd2b14c8835bf91752e62756e55ea06aad3353f24a6854223" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v5.8.0-src" "https://downloads.python.org/pypy/pypy3-v5.8.0-src.tar.bz2#9d090127335c3c0fd2b14c8835bf91752e62756e55ea06aad3353f24a6854223" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.9.0 b/plugins/python-build/share/python-build/pypy3.5-5.9.0 index e950321169..4aed1a45a9 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.9.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.9.0 @@ -1,9 +1,9 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux64" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.9.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.9.0-linux64.tar.bz2#d8c41ede3758127718944cc2fd6bf78ed4303d946f85596cac91281ccce36165" "pypy" verify_py35 ensurepip + install_package "pypy3-v5.9.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.9.0-linux64.tar.bz2#d8c41ede3758127718944cc2fd6bf78ed4303d946f85596cac91281ccce36165" "pypy" verify_py35 ensurepip else - install_package "pypy3.5-5.9-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.9-beta-linux_x86_64-portable.tar.bz2#b0a79dabe2c48b0374d567936139ecf1379904a504d4a645be5c3e7e35140575" "pypy" verify_py35 ensurepip + install_package "pypy3.5-5.9-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.9-beta-linux_x86_64-portable.tar.bz2#b0a79dabe2c48b0374d567936139ecf1379904a504d4a645be5c3e7e35140575" "pypy" verify_py35 ensurepip fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.5-5.9.0-src b/plugins/python-build/share/python-build/pypy3.5-5.9.0-src index a33d481e32..5206ef429b 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.9.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.9.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.9.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.9.0-src.tar.bz2#a014f47f50a1480f871a0b82705f904b38c93c4ca069850eb37653fedafb1b97" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v5.9.0-src" "https://downloads.python.org/pypy/pypy3-v5.9.0-src.tar.bz2#a014f47f50a1480f871a0b82705f904b38c93c4ca069850eb37653fedafb1b97" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-6.0.0 b/plugins/python-build/share/python-build/pypy3.5-6.0.0 index 9267f30ba3..823d3193a5 100644 --- a/plugins/python-build/share/python-build/pypy3.5-6.0.0 +++ b/plugins/python-build/share/python-build/pypy3.5-6.0.0 @@ -1,23 +1,23 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v6.0.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux32.tar.bz2#b04eeee5160e6cb5f8962de80f077ea1dc7be34e77d74bf075519c23603f5ff9" "pypy" verify_py27 ensurepip + install_package "pypy3-v6.0.0-linux32" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux32.tar.bz2#b04eeee5160e6cb5f8962de80f077ea1dc7be34e77d74bf075519c23603f5ff9" "pypy" verify_py27 ensurepip fi ;; "linux64" ) if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3-v6.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux64.tar.bz2#4cfffa292b9ef34bb6ba39cdbaa196c5c5cbbc5aa3faaa157cf45d7e34027048" "pypy" verify_py27 ensurepip + install_package "pypy3-v6.0.0-linux64" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux64.tar.bz2#4cfffa292b9ef34bb6ba39cdbaa196c5c5cbbc5aa3faaa157cf45d7e34027048" "pypy" verify_py27 ensurepip else - install_package "pypy3.5-6.0.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2#07f16282d126abfa759702baea869b0f661aa97f4c553ebec66c624bda28155f" "pypy" verify_py35 ensurepip + install_package "pypy3.5-6.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2#07f16282d126abfa759702baea869b0f661aa97f4c553ebec66c624bda28155f" "pypy" verify_py35 ensurepip fi ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true - install_package "pypy3-v6.0.0-linux-armel" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux-armel.tar.bz2#6a6888a55192f58594838b8b3d2e7daaad43d3bf4293afab3dd8987d0bbd1124" "pypy" verify_py27 ensurepip + install_package "pypy3-v6.0.0-linux-armel" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux-armel.tar.bz2#6a6888a55192f58594838b8b3d2e7daaad43d3bf4293afab3dd8987d0bbd1124" "pypy" verify_py27 ensurepip ;; "linux-armhf" ) if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_package "pypy3-v6.0.0-linux-armhf-raspbian" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-linux-armhf-raspbian.tar.bz2#8a0420dda23413925400538bbfc0cff2bbb2ab0de984eef6faaeab6d3309cbcc" "pypy" verify_py27 ensurepip + install_package "pypy3-v6.0.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux-armhf-raspbian.tar.bz2#8a0420dda23413925400538bbfc0cff2bbb2ab0de984eef6faaeab6d3309cbcc" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -30,7 +30,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3-v6.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-osx64.tar.bz2#938b8034e30f5f5060d2a079070c56c3be5559bc7ae9cc0c8395fe6fc45cfe4c" "pypy" verify_py27 ensurepip + install_package "pypy3-v6.0.0-osx64" "https://downloads.python.org/pypy/pypy3-v6.0.0-osx64.tar.bz2#938b8034e30f5f5060d2a079070c56c3be5559bc7ae9cc0c8395fe6fc45cfe4c" "pypy" verify_py27 ensurepip else # install_package "pypy3-v6.0.0-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-osx64-2.tar.bz2#" "pypy" verify_py27 ensurepip { echo @@ -44,7 +44,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy3-v6.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-win32.zip#72dddb3746a51f7672c77d619c818e27efe899e08ae82762448e50dbfdc2f5f3" "pypy" verify_py27 ensurepip + install_zip "pypy3-v6.0.0-win32" "https://downloads.python.org/pypy/pypy3-v6.0.0-win32.zip#72dddb3746a51f7672c77d619c818e27efe899e08ae82762448e50dbfdc2f5f3" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-6.0.0-src b/plugins/python-build/share/python-build/pypy3.5-6.0.0-src index 4bb593779e..59a0c8e130 100644 --- a/plugins/python-build/share/python-build/pypy3.5-6.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-6.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v6.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-src.tar.bz2#ed8005202b46d6fc6831df1d13a4613bc40084bfa42f275068edadf8954034a3" "pypy_builder" verify_py35 ensurepip +install_package "pypy3-v6.0.0-src" "https://downloads.python.org/pypy/pypy3-v6.0.0-src.tar.bz2#ed8005202b46d6fc6831df1d13a4613bc40084bfa42f275068edadf8954034a3" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-7.0.0 b/plugins/python-build/share/python-build/pypy3.5-7.0.0 index 61bb6e0a29..06af24fcd4 100644 --- a/plugins/python-build/share/python-build/pypy3.5-7.0.0 +++ b/plugins/python-build/share/python-build/pypy3.5-7.0.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.5-v7.0.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.5-v7.0.0-linux32.tar.bz2#b8db8fbca9621de8ea8cd7184b322f2dddb2f385e8e5a63dfb75bb3fea4b2e3f" "pypy" verify_py35 ensurepip + install_package "pypy3.5-v7.0.0-linux32" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-linux32.tar.bz2#b8db8fbca9621de8ea8cd7184b322f2dddb2f385e8e5a63dfb75bb3fea4b2e3f" "pypy" verify_py35 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.5-v7.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.5-v7.0.0-linux64.tar.bz2#729e3c54325969c98bd3658c6342b9f5987b96bad1d6def04250a08401b54c4b" "pypy" verify_py35 ensurepip + install_package "pypy3.5-v7.0.0-linux64" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-linux64.tar.bz2#729e3c54325969c98bd3658c6342b9f5987b96bad1d6def04250a08401b54c4b" "pypy" verify_py35 ensurepip else - install_package "pypy3.5-7.0.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-7.0.0-linux_x86_64-portable.tar.bz2#b0fa200f25a5a0ef90b8776ab1d0665c47d47c607d2ef057cce1da1ad2568e1f" "pypy" verify_py35 ensurepip + install_package "pypy3.5-7.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-7.0.0-linux_x86_64-portable.tar.bz2#b0fa200f25a5a0ef90b8776ab1d0665c47d47c607d2ef057cce1da1ad2568e1f" "pypy" verify_py35 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3.5-v7.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.5-v7.0.0-osx64.tar.bz2#7c6d71653d9b1a7946d1eeebbf24b454fe934fba8b0c39f648bdc545fb2895ce" "pypy" verify_py35 ensurepip + install_package "pypy3.5-v7.0.0-osx64" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-osx64.tar.bz2#7c6d71653d9b1a7946d1eeebbf24b454fe934fba8b0c39f648bdc545fb2895ce" "pypy" verify_py35 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy3.5-v7.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.5-v7.0.0-win32.zip#a840305c24f426e11d8bb3f062cacec1edf7fcbce6a99122d59f73e1984bc5c0" "pypy" verify_py35 ensurepip + install_zip "pypy3.5-v7.0.0-win32" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-win32.zip#a840305c24f426e11d8bb3f062cacec1edf7fcbce6a99122d59f73e1984bc5c0" "pypy" verify_py35 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-7.0.0-src b/plugins/python-build/share/python-build/pypy3.5-7.0.0-src index 7f1134364a..bc4a409a23 100644 --- a/plugins/python-build/share/python-build/pypy3.5-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-7.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.5-v7.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.5-v7.0.0-src.tar.bz2#b2ddb0f45cb4e0384fb498ef7fcca2ac96c730b9000affcf8d730169397f017f" "pypy_builder" verify_py35 ensurepip +install_package "pypy3.5-v7.0.0-src" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-src.tar.bz2#b2ddb0f45cb4e0384fb498ef7fcca2ac96c730b9000affcf8d730169397f017f" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.0.0 b/plugins/python-build/share/python-build/pypy3.6-7.0.0 index 5b90f96067..f49ad7c492 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.0.0 +++ b/plugins/python-build/share/python-build/pypy3.6-7.0.0 @@ -10,14 +10,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.0.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.0.0-linux64.tar.bz2#8576bde0760c239040706cf4952995eb0e77938b175885392a465a0d1616173d" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.0.0-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-linux64.tar.bz2#8576bde0760c239040706cf4952995eb0e77938b175885392a465a0d1616173d" "pypy" verify_py36 ensurepip else - install_package "pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable.tar.bz2#ef8a5254b9a082dec23a6e029b1bb674a122a789c29d9c452452a9e97498bcbe" "pypy" verify_py36 ensurepip + install_package "pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable.tar.bz2#ef8a5254b9a082dec23a6e029b1bb674a122a789c29d9c452452a9e97498bcbe" "pypy" verify_py36 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3.6-v7.0.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.0.0-osx64.tar.bz2#4a95ffd61fd2d626a9c099db6e44889c2a7eecee9cb1cbc29e06603c218ba8e2" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.0.0-osx64" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-osx64.tar.bz2#4a95ffd61fd2d626a9c099db6e44889c2a7eecee9cb1cbc29e06603c218ba8e2" "pypy" verify_py36 ensurepip else { echo colorize 1 "ERROR" @@ -29,7 +29,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy3.6-v7.0.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.0.0-win32.zip#645d81472d16922fd592e9261da449cb19847ff7d5eaa89bcf05d9214b6b2698" "pypy" verify_py36 ensurepip + install_zip "pypy3.6-v7.0.0-win32" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-win32.zip#645d81472d16922fd592e9261da449cb19847ff7d5eaa89bcf05d9214b6b2698" "pypy" verify_py36 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.6-7.0.0-src b/plugins/python-build/share/python-build/pypy3.6-7.0.0-src index 2031b1f489..b344022a3a 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.0.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.0.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.0.0-src.tar.bz2#7ccbf81db5c647fa0c27636c7d18d059d2570fff7eaffc03857c67bee84b8a26" "pypy_builder" verify_py36 ensurepip +install_package "pypy3.6-v7.0.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-src.tar.bz2#7ccbf81db5c647fa0c27636c7d18d059d2570fff7eaffc03857c67bee84b8a26" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.0 b/plugins/python-build/share/python-build/pypy3.6-7.1.0 index 7de8e31ac3..593a810685 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.0 +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.0-linux32.tar.bz2#031bfac61210a6e161bace0691b854dc15d01b0e624dc0588c544ee5e1621a83" "pypy" verify_py27 ensurepip + install_package "pypy3.6-v7.1.0-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-linux32.tar.bz2#031bfac61210a6e161bace0691b854dc15d01b0e624dc0588c544ee5e1621a83" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.0-linux64.tar.bz2#270dd06633cf03337e6f815d7235e790e90dabba6f4b6345c9745121006925fc" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.1.0-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-linux64.tar.bz2#270dd06633cf03337e6f815d7235e790e90dabba6f4b6345c9745121006925fc" "pypy" verify_py36 ensurepip else - install_package "pypy3.6-7.1.0-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.6-7.1.0-beta-linux_x86_64-portable.tar.bz2#d1bde814fb0c3645dfc0bdab67c335c8aa259b83fb39106e2e11b0112bcbb602" "pypy" verify_py36 ensurepip + install_package "pypy3.6-7.1.0-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.1.0-beta-linux_x86_64-portable.tar.bz2#d1bde814fb0c3645dfc0bdab67c335c8aa259b83fb39106e2e11b0112bcbb602" "pypy" verify_py36 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3.6-v7.1.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.0-osx64.tar.bz2#d46e005ba095cb4a7006079ffbf4fe63c18cf5e9d8ce9ce8383efc1a4863ab5b" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.1.0-osx64" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-osx64.tar.bz2#d46e005ba095cb4a7006079ffbf4fe63c18cf5e9d8ce9ce8383efc1a4863ab5b" "pypy" verify_py36 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy3.6-v7.1.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.0-win32.zip#77a0576a3d518210467f0df2d0d9a1892c664566dc02f25d974c2dbc6b4749e7" "pypy" verify_py36 ensurepip + install_zip "pypy3.6-v7.1.0-win32" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-win32.zip#77a0576a3d518210467f0df2d0d9a1892c664566dc02f25d974c2dbc6b4749e7" "pypy" verify_py36 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.0-src b/plugins/python-build/share/python-build/pypy3.6-7.1.0-src index 506e73de85..7a29458fc3 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.1.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.0-src.tar.bz2#faa81f469bb2a7cbd22c64f22d4b4ddc5a1f7c798d43b7919b629b932f9b1c6f" "pypy_builder" verify_py36 ensurepip +install_package "pypy3.6-v7.1.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-src.tar.bz2#faa81f469bb2a7cbd22c64f22d4b4ddc5a1f7c798d43b7919b629b932f9b1c6f" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.1 b/plugins/python-build/share/python-build/pypy3.6-7.1.1 index fad193eb96..6a1534bbd1 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.1 +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.1 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.1-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.1-linux32.tar.bz2#cb11ef4b0df569c28390b1ee93029159e1b90bfbad98df6abd629d5203b2abd9" "pypy" verify_py27 ensurepip + install_package "pypy3.6-v7.1.1-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-linux32.tar.bz2#cb11ef4b0df569c28390b1ee93029159e1b90bfbad98df6abd629d5203b2abd9" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.1-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.1-linux64.tar.bz2#8014f63b1a34b155548852c7bf73aab2d41ebddf2c8fb603dc9dd8509be93db0" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.1.1-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-linux64.tar.bz2#8014f63b1a34b155548852c7bf73aab2d41ebddf2c8fb603dc9dd8509be93db0" "pypy" verify_py36 ensurepip else - install_package "pypy3.6-7.1.1-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.6-7.1.1-beta-linux_x86_64-portable.tar.bz2#82c878b61ad34fc2cf1686fa600a7a002d352e1b33a99a43007eec486ecd068e" "pypy" verify_py36 ensurepip + install_package "pypy3.6-7.1.1-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.1.1-beta-linux_x86_64-portable.tar.bz2#82c878b61ad34fc2cf1686fa600a7a002d352e1b33a99a43007eec486ecd068e" "pypy" verify_py36 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3.6-v7.1.1-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.1-osx64.tar.bz2#a5c2f2bfa2b4a4d29e8a67baab95699b169054066df218a14f171bb84a6df0c0" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.1.1-osx64" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-osx64.tar.bz2#a5c2f2bfa2b4a4d29e8a67baab95699b169054066df218a14f171bb84a6df0c0" "pypy" verify_py36 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy3.6-v7.1.1-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.1-win32.zip#8b513b254de5f31890f5956569de9aec3a0a91d7aba72fc89d66901f4a8ccf49" "pypy" verify_py36 ensurepip + install_zip "pypy3.6-v7.1.1-win32" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-win32.zip#8b513b254de5f31890f5956569de9aec3a0a91d7aba72fc89d66901f4a8ccf49" "pypy" verify_py36 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.1-src b/plugins/python-build/share/python-build/pypy3.6-7.1.1-src index c99fcfa0d2..0fe4b17001 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.1-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.1.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.1.1-src.tar.bz2#6a3ef876e3691a54f4cff045028ec3be94ab9beb2e99f051b83175302c1899a8" "pypy_builder" verify_py36 ensurepip +install_package "pypy3.6-v7.1.1-src" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-src.tar.bz2#6a3ef876e3691a54f4cff045028ec3be94ab9beb2e99f051b83175302c1899a8" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.2.0 b/plugins/python-build/share/python-build/pypy3.6-7.2.0 index 70ca10344e..45dbdc4c9f 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.2.0 +++ b/plugins/python-build/share/python-build/pypy3.6-7.2.0 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.2.0-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-linux32.tar.bz2#45e99de197cb3e974cfc8d45e0076ad2066852e61e56b3eafd1237efafd2c43e" "pypy" verify_py27 ensurepip + install_package "pypy3.6-v7.2.0-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-linux32.tar.bz2#45e99de197cb3e974cfc8d45e0076ad2066852e61e56b3eafd1237efafd2c43e" "pypy" verify_py27 ensurepip else { echo colorize 1 "ERROR" @@ -14,14 +14,14 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.2.0-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-linux64.tar.bz2#aa128e555ad0fe5c4c15104ae0903052bd232b6e3a73f5fe023d27b8fd0d6089" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.2.0-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-linux64.tar.bz2#aa128e555ad0fe5c4c15104ae0903052bd232b6e3a73f5fe023d27b8fd0d6089" "pypy" verify_py36 ensurepip else install_package "pypy3.6-7.2.0-beta-linux_x86_64-portable" "https://github.com/squeaky-pl/portable-pypy/releases/download/pypy3.6-7.2.0/pypy3.6-7.2.0-linux_x86_64-portable.tar.bz2#59099546b4dee56edcde2c9ff706687e35bb2aa94354cd56daa78aca036bd3d8" "pypy" verify_py36 ensurepip fi ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy3.6-v7.2.0-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-osx64.tar.bz2#836abb0ec303b90a684533711ed3b8269d3e8c64805b595e410920abdea678ac" "pypy" verify_py36 ensurepip + install_package "pypy3.6-v7.2.0-osx64" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-osx64.tar.bz2#836abb0ec303b90a684533711ed3b8269d3e8c64805b595e410920abdea678ac" "pypy" verify_py36 ensurepip else { echo colorize 1 "ERROR" @@ -33,7 +33,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy3.6-v7.2.0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-win32.zip#c926f622bec24a8b348591d631717ace83b3a6c3c2dac02b157b622b97d1fc9c" "pypy" verify_py36 ensurepip + install_zip "pypy3.6-v7.2.0-win32" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-win32.zip#c926f622bec24a8b348591d631717ace83b3a6c3c2dac02b157b622b97d1fc9c" "pypy" verify_py36 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.6-7.2.0-src b/plugins/python-build/share/python-build/pypy3.6-7.2.0-src index 9e21af9890..e981b83285 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.2.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.2.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.2.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-src.tar.bz2#0d7c707df5041f1593fe82f29c40056c21e4d6cb66554bbd66769bd80bcbfafc" "pypy_builder" verify_py36 ensurepip +install_package "pypy3.6-v7.2.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-src.tar.bz2#0d7c707df5041f1593fe82f29c40056c21e4d6cb66554bbd66769bd80bcbfafc" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.0 b/plugins/python-build/share/python-build/pypy3.6-7.3.0 index 080bafb357..f5deb33c04 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.0 +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.0 @@ -3,17 +3,17 @@ PYVER='3.6' case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy${PYVER}-v${VERSION}-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#7045b295d38ba0b5ee65bd3f078ca249fcf1de73fedeaab2d6ad78de2eab0f0e" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#7045b295d38ba0b5ee65bd3f078ca249fcf1de73fedeaab2d6ad78de2eab0f0e" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux64" ) - install_package "pypy${PYVER}-v${VERSION}-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#d3d549e8f43de820ac3385b698b83fa59b4d7dd6cf3fe34c115f731e26ad8856" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#d3d549e8f43de820ac3385b698b83fa59b4d7dd6cf3fe34c115f731e26ad8856" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux-aarch64" ) - install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#b900241bca7152254c107a632767f49edede99ca6360b9a064141267b47ef598" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#b900241bca7152254c107a632767f49edede99ca6360b9a064141267b47ef598" "pypy" "verify_py${PYVER//./}" ensurepip ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy${PYVER}-v${VERSION}-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#87b2545dad75fe3027b4b2108aceb9fdadcdd24e61ae312ac48b449fdd452bf3" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#87b2545dad75fe3027b4b2108aceb9fdadcdd24e61ae312ac48b449fdd452bf3" "pypy" "verify_py${PYVER//./}" ensurepip else { echo colorize 1 "ERROR" @@ -25,7 +25,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy${PYVER}-v${VERSION}-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-win32.zip#30e6870c4f3d8ef91890a6556a98080758000ba7c207cccdd86a8f5d358998c1" "pypy" "verify_py${PYVER//./}" ensurepip + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#30e6870c4f3d8ef91890a6556a98080758000ba7c207cccdd86a8f5d358998c1" "pypy" "verify_py${PYVER//./}" ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.0-src b/plugins/python-build/share/python-build/pypy3.6-7.3.0-src index fea6eb54b3..297949f35c 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.3.0-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.0-src.tar.bz2#48d12c15fbcbcf4a32882a883195e1f922997cde78e7a16d4342b9b521eefcfa" "pypy_builder" verify_py36 ensurepip +install_package "pypy3.6-v7.3.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.0-src.tar.bz2#48d12c15fbcbcf4a32882a883195e1f922997cde78e7a16d4342b9b521eefcfa" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.1 b/plugins/python-build/share/python-build/pypy3.6-7.3.1 index 2ab4ac02a7..690e4d693a 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.1 +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.1 @@ -3,17 +3,17 @@ PYVER='3.6' case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_package "pypy${PYVER}-v${VERSION}-linux32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#2e7a818c67f3ac0708e4d8cdf1961f30cf9586b3f3ca2f215d93437c5ea4567b" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#2e7a818c67f3ac0708e4d8cdf1961f30cf9586b3f3ca2f215d93437c5ea4567b" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux64" ) - install_package "pypy${PYVER}-v${VERSION}-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#f67cf1664a336a3e939b58b3cabfe47d893356bdc01f2e17bc912aaa6605db12" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#f67cf1664a336a3e939b58b3cabfe47d893356bdc01f2e17bc912aaa6605db12" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux-aarch64" ) - install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#0069bc3c1570b935f1687f5e128cf050cd7229309e48fad2a2bf2140d43ffcee" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#0069bc3c1570b935f1687f5e128cf050cd7229309e48fad2a2bf2140d43ffcee" "pypy" "verify_py${PYVER//./}" ensurepip ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy${PYVER}-v${VERSION}-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#d9c1778cd1ba37e129b495ea0f35ccdd9b68f5cd9d33ef0ce24e955c16d8840b" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#d9c1778cd1ba37e129b495ea0f35ccdd9b68f5cd9d33ef0ce24e955c16d8840b" "pypy" "verify_py${PYVER//./}" ensurepip else { echo colorize 1 "ERROR" @@ -25,7 +25,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "win32" ) - install_zip "pypy${PYVER}-v${VERSION}-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy${PYVER}-v${VERSION}-win32.zip#752fbe8c4abee6468e5ce22af82818f821daded36faa65f3d69423f9c217007a" "pypy" "verify_py${PYVER//./}" ensurepip + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#752fbe8c4abee6468e5ce22af82818f821daded36faa65f3d69423f9c217007a" "pypy" "verify_py${PYVER//./}" ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.1-src b/plugins/python-build/share/python-build/pypy3.6-7.3.1-src index 7848531218..330b116ab9 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.1-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.1-src @@ -1,4 +1,4 @@ #require_gcc 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 "pypy3.6-v7.3.1-src" "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.3.1-src.tar.bz2#0c2cc3229da36c6984baee128c8ff8bb4516d69df1d73275dc4622bf249afa83" "pypy_builder" verify_py36 ensurepip +install_package "pypy3.6-v7.3.1-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.1-src.tar.bz2#0c2cc3229da36c6984baee128c8ff8bb4516d69df1d73275dc4622bf249afa83" "pypy_builder" verify_py36 ensurepip From 58c776a136a2c1b60ed104694fc14998e0fbb131 Mon Sep 17 00:00:00 2001 From: Kevin Rose Date: Sat, 22 Aug 2020 09:11:25 -0400 Subject: [PATCH 0007/1324] Add 3.6.12 and 3.7.9 versions (#1680) --- plugins/python-build/share/python-build/3.6.12 | 9 +++++++++ plugins/python-build/share/python-build/3.7.9 | 10 ++++++++++ 2 files changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.6.12 create mode 100644 plugins/python-build/share/python-build/3.7.9 diff --git a/plugins/python-build/share/python-build/3.6.12 b/plugins/python-build/share/python-build/3.6.12 new file mode 100644 index 0000000000..4ecea345b1 --- /dev/null +++ b/plugins/python-build/share/python-build/3.6.12 @@ -0,0 +1,9 @@ +#require_gcc +prefer_openssl11 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz#70953a9b5d6891d92e65d184c3512126a15814bee15e1eff2ddcce04334e9a99" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tgz#12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.7.9 b/plugins/python-build/share/python-build/3.7.9 new file mode 100644 index 0000000000..3b35af290a --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.9 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz#91923007b05005b5f9bd46f3b9172248aea5abc1543e8a636d59e629c3331b01" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz#39b018bc7d8a165e59aa827d9ae45c45901739b0bbb13721e4f973f3521c166a" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +fi From 34c0e6079809fb3dd3476da225dc1a28ae731c02 Mon Sep 17 00:00:00 2001 From: miketrumpis Date: Thu, 27 Aug 2020 11:06:33 -0700 Subject: [PATCH 0008/1324] exclude bin files from coreutils --- pyenv.d/rehash/conda.d/default.list | 108 ++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) diff --git a/pyenv.d/rehash/conda.d/default.list b/pyenv.d/rehash/conda.d/default.list index c3c98fb9af..867de1cc8b 100644 --- a/pyenv.d/rehash/conda.d/default.list +++ b/pyenv.d/rehash/conda.d/default.list @@ -82,3 +82,111 @@ xzgrep xzless xzmore reset +# --- start exclusions from coreutils +[ +b2sum +base32 +base64 +basename +basenc +cat +chcon +chgrp +chmod +chown +chroot +cksum +comm +cp +csplit +cut +date +dd +df +dir +dircolors +dirname +du +echo +env +expand +expr +factor +false +fmt +fold +groups +head +hostid +id +install +join +kill +link +ln +logname +ls +md5sum +mkdir +mkfifo +mknod +mktemp +mv +nice +nl +nohup +nproc +numfmt +od +paste +pathchk +pinky +pr +printenv +printf +ptx +pwd +readlink +realpath +rm +rmdir +runcon +seq +sha1sum +sha224sum +sha256sum +sha384sum +sha512sum +shred +shuf +sleep +sort +split +stat +stdbuf +stty +sum +sync +tac +tail +tee +test +timeout +touch +tr +true +truncate +tsort +tty +uname +unexpand +uniq +unlink +uptime +users +vdir +wc +who +whoami +yes +# --- end exclusions from coreutils \ No newline at end of file From d1ae4a1225f1c7e714316c4079416bbc6f4d60b0 Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Tue, 15 Sep 2020 11:07:22 -0400 Subject: [PATCH 0009/1324] Add CPython v3.5.10 (#1690) --- plugins/python-build/share/python-build/3.5.10 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.5.10 diff --git a/plugins/python-build/share/python-build/3.5.10 b/plugins/python-build/share/python-build/3.5.10 new file mode 100644 index 0000000000..c4d7363e33 --- /dev/null +++ b/plugins/python-build/share/python-build/3.5.10 @@ -0,0 +1,9 @@ +#require_gcc +prefer_openssl11 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.10" "https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tar.xz#0f0fa8685c1dc1f1dacb0b4e7779796b90aef99dc1fa4967a71b9da7b57d4a28" ldflags_dirs standard verify_py35 ensurepip +else + install_package "Python-3.5.10" "https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tgz#3496a0daf51913718a6f10e3eda51fa43634cb6151cb096f312d48bdbeff7d3a" ldflags_dirs standard verify_py35 ensurepip +fi From f77c2d7eab15d3ec04751c4545fabf5d5c56342b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 21 Sep 2020 18:53:09 +0300 Subject: [PATCH 0010/1324] Detect Py2 presence as well --- libexec/pyenv-prefix | 4 +++- libexec/pyenv-versions | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index a2ee880ef8..9e20a21a0f 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -30,7 +30,9 @@ OLDIFS="$IFS" { IFS=: for version in ${PYENV_VERSION}; do if [ "$version" = "system" ]; then - if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)" || PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 2>/dev/null)"; then + if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)" || \ + PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 2>/dev/null)" || \ + PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python2 2>/dev/null)"; then PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}" PYENV_PREFIX_PATH="${PYENV_PREFIX_PATH:-/}" else diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 1e3302d29c..195f459003 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -102,7 +102,10 @@ print_version() { } # Include "system" in the non-bare output, if it exists -if [ -n "$include_system" ] && (PYENV_VERSION=system pyenv-which python >/dev/null 2>&1 || PYENV_VERSION=system pyenv-which python3 >/dev/null 2>&1); then +if [ -n "$include_system" ] && \ + (PYENV_VERSION=system pyenv-which python >/dev/null 2>&1 || \ + PYENV_VERSION=system pyenv-which python3 >/dev/null 2>&1 || \ + PYENV_VERSION=system pyenv-which python2 >/dev/null 2>&1) ; then print_version system fi From dd62b0d155878cd5dbb90b1a38c4a7e1993cf4ef Mon Sep 17 00:00:00 2001 From: Kenji Saito Date: Sat, 26 Sep 2020 10:46:12 +0900 Subject: [PATCH 0011/1324] Add CPython 3.8.6 (#1698) --- plugins/python-build/share/python-build/3.8.6 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.8.6 diff --git a/plugins/python-build/share/python-build/3.8.6 b/plugins/python-build/share/python-build/3.8.6 new file mode 100644 index 0000000000..3c01bafaf2 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.6 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz#a9e0b79d27aa056eb9cce8d63a427b5f9bab1465dee3f942dcfdb25a82f4ab8a" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz#313562ee9986dc369cd678011bdfd9800ef62fbf7b1496228a18f86b36428c21" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +fi From 1e3ee5e3aab9089f68e16d43eb2eb3d10a288f63 Mon Sep 17 00:00:00 2001 From: "Jose A. Martin" Date: Wed, 30 Sep 2020 17:50:39 +0200 Subject: [PATCH 0012/1324] Add CPython 3.9.0rc2 (#1694) --- .../python-build/share/python-build/{3.9.0rc1 => 3.9.0rc2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.9.0rc1 => 3.9.0rc2} (60%) diff --git a/plugins/python-build/share/python-build/3.9.0rc1 b/plugins/python-build/share/python-build/3.9.0rc2 similarity index 60% rename from plugins/python-build/share/python-build/3.9.0rc1 rename to plugins/python-build/share/python-build/3.9.0rc2 index 6e10d345d7..c24e0e0d64 100644 --- a/plugins/python-build/share/python-build/3.9.0rc1 +++ b/plugins/python-build/share/python-build/3.9.0rc2 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.9.0rc1" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc1.tar.xz#fba7a73e7359356967b853c234b97f4a4114f02b8bd60d6bde6e2f97bcdfdc70" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0rc2" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc2.tar.xz#80b57c11f60dc1f46a408b1543f04ed52e6475ed5e597b4c23f3fd65f0b729ba" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.0rc1" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc1.tgz#ef62b8e524c892168171c52db2a7bfaa9e48bc0b1f5179128c9eca368e1f8d21" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0rc2" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc2.tgz#f49fcaef992d908995afcda93d150c77bd452af4fe8c23ac1b92843fda0b6fb2" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip fi From 8bf79eb44ce1ea0a8b36544eb3e8a694a3a6ed78 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 30 Sep 2020 18:53:37 +0300 Subject: [PATCH 0013/1324] Drop pypy3-dev (#1700) PyPy has now only one development tip, `default`, others are version-line-specific maintenance branches. The py3k branch has been closed in 2016. As such, a separate pypy3-dev entry no longer makes sense. --- plugins/python-build/share/python-build/pypy3-dev | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/pypy3-dev diff --git a/plugins/python-build/share/python-build/pypy3-dev b/plugins/python-build/share/python-build/pypy3-dev deleted file mode 100644 index 3e65127ce7..0000000000 --- a/plugins/python-build/share/python-build/pypy3-dev +++ /dev/null @@ -1,4 +0,0 @@ -#require_gcc -prefer_openssl11 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_hg "pypy3-dev" "https://bitbucket.org/pypy/pypy" "py3k" "pypy_builder" verify_py32 ensurepip From 898fe1bb9bb1736cdf6cc82f9c6ba727aabf81a6 Mon Sep 17 00:00:00 2001 From: Maximilian Matthe Date: Fri, 2 Oct 2020 02:13:05 +0200 Subject: [PATCH 0014/1324] add file for downloading and installing micropython-1.13 (#1704) --- plugins/python-build/share/python-build/micropython-1.13 | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/python-build/share/python-build/micropython-1.13 diff --git a/plugins/python-build/share/python-build/micropython-1.13 b/plugins/python-build/share/python-build/micropython-1.13 new file mode 100644 index 0000000000..5557b8c66c --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.13 @@ -0,0 +1,5 @@ +#require_gcc +has_tar_xz_support \ + && src="https://micropython.org/resources/source/micropython-1.13.tar.xz#fb5434ec1fd2f7d06733696b020a992e69005532bcb97a9b4158ec1fffbc9c1e" \ + || src="https://github.com/micropython/micropython/releases/download/v1.13/micropython-1.13.tar.gz#9ab32eb2c19a682f6de7e9b4226de849c42cb92e1ecb4cf56438a75d763bd451" +install_package micropython-1.13 "$src" micropython From a992892225854de8699115f02339fb7654e082e5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 2 Oct 2020 03:15:42 +0300 Subject: [PATCH 0015/1324] Add Anaconda3-2020.07 (#1684) --- .../share/python-build/anaconda3-2020.07 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2020.07 diff --git a/plugins/python-build/share/python-build/anaconda3-2020.07 b/plugins/python-build/share/python-build/anaconda3-2020.07 new file mode 100644 index 0000000000..c22ce13cae --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2020.07 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Anaconda3-2020.07-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2020.07-Linux-ppc64le.sh#0df7c3784973ab46a9ef9848aced01311d08a71d79a18d5ed79dccdae8c8dea7" "anaconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2020.07-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.07-Linux-x86_64.sh#38ce717758b95b3bd0b1797cc6ccfb76f29a90c25bdfa50ee45f11e583edfdbf" "anaconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2020.07-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.07-MacOSX-x86_64.sh#3980c2a57fde5de2ccfdf0d7973f95ac1a3fa63351642e6735c50fc3791ef0f1" "anaconda" verify_py37 + ;; +* ) + { 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 From 592271b86f615de12997de9797eb322a014c5e3c Mon Sep 17 00:00:00 2001 From: Smiler Lee Date: Fri, 2 Oct 2020 08:16:55 +0800 Subject: [PATCH 0016/1324] Fix 'sed: RE error: illegal byte sequence' (#1670) ... which is caused by `realpath.dylib` containing illegal UTF-8 byte sequence, and `LC_CTYPE` won't take effect if `LC_ALL` happens to be set to something other than `C`. This commit fixes issue pyenv/pyenv#1454. Ref: https://stackoverflow.com/a/23584470 --- libexec/pyenv-help | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-help b/libexec/pyenv-help index b4e385a3b5..0bf90abbda 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -27,7 +27,7 @@ command_path() { } extract_initial_comment_block() { - LC_CTYPE=C + LC_ALL=C LANG=C sed -ne " /^#/ !{ From 71d2e4549e9a64961ddcf25c886758c52d2019ae Mon Sep 17 00:00:00 2001 From: "M. Smits" Date: Fri, 2 Oct 2020 03:28:29 +0200 Subject: [PATCH 0017/1324] Updated documentation pyenv init for fish shell comform to readme. (#1703) --- libexec/pyenv-init | 2 +- test/init.bats | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 659d1f4c9f..2bf7c56ac4 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -70,7 +70,7 @@ if [ -z "$print" ]; then echo case "$shell" in fish ) - echo 'status --is-interactive; and source (pyenv init -|psub)' + echo 'pyenv init - | source' ;; * ) echo 'eval "$(pyenv init -)"' diff --git a/test/init.bats b/test/init.bats index ead63d82d0..bb57dc3ec6 100755 --- a/test/init.bats +++ b/test/init.bats @@ -53,7 +53,7 @@ OUT @test "fish instructions" { run pyenv-init fish assert [ "$status" -eq 1 ] - assert_line 'status --is-interactive; and source (pyenv init -|psub)' + assert_line 'pyenv init - | source' } @test "option to skip rehash" { From cadebd8e65c03a85d888eb323953d0885826057e Mon Sep 17 00:00:00 2001 From: cornfeedhobo Date: Thu, 1 Oct 2020 20:33:34 -0500 Subject: [PATCH 0018/1324] Search for plugins in PYENV_DIR and PYENV_ROOT (#1697) --- libexec/pyenv | 5 ++++- test/pyenv.bats | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index 4147d78050..93debeaecf 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -94,7 +94,10 @@ export PYENV_DIR shopt -s nullglob bin_path="$(abs_dirname "$0")" -for plugin_bin in "${PYENV_ROOT}/plugins/"*/bin; do +for plugin_bin in "${bin_path%/*}"/plugins/*/bin; do + PATH="${plugin_bin}:${PATH}" +done +for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do PATH="${plugin_bin}:${PATH}" done export PATH="${bin_path}:${PATH}" diff --git a/test/pyenv.bats b/test/pyenv.bats index d161072846..e7e8b419f6 100644 --- a/test/pyenv.bats +++ b/test/pyenv.bats @@ -48,7 +48,7 @@ load test_helper @test "adds its own libexec to PATH" { run pyenv echo "PATH" - assert_success "${BATS_TEST_DIRNAME%/*}/libexec:$PATH" + assert_success "${BATS_TEST_DIRNAME%/*}/libexec:${BATS_TEST_DIRNAME%/*}/plugins/python-build/bin:$PATH" } @test "adds plugin bin dirs to PATH" { @@ -59,6 +59,7 @@ load test_helper assert_line 0 "${BATS_TEST_DIRNAME%/*}/libexec" assert_line 1 "${PYENV_ROOT}/plugins/python-build/bin" assert_line 2 "${PYENV_ROOT}/plugins/pyenv-each/bin" + assert_line 3 "${BATS_TEST_DIRNAME%/*}/plugins/python-build/bin" } @test "PYENV_HOOK_PATH preserves value from environment" { From 501c97aeea27138aa7952b5812c76b3bfb75195e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 2 Oct 2020 04:36:24 +0300 Subject: [PATCH 0019/1324] CONDUCT.md: update maintainers (#1625) --- CONDUCT.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONDUCT.md b/CONDUCT.md index aebb7899a8..59437f0bbc 100644 --- a/CONDUCT.md +++ b/CONDUCT.md @@ -67,9 +67,9 @@ members of the project's leadership. ## Project Maintainers -* Sam Stephenson <> -* Mislav Marohnić <> -* Erik Michaels-Ober <> +* Yamashita, Yuu <> +* Daniel Hahler <> +* Josh Friend <> ## Attribution From f44cb70d938446b396a676dd76f1b1b28031a9e6 Mon Sep 17 00:00:00 2001 From: Tim Felgentreff Date: Fri, 2 Oct 2020 16:40:23 +0200 Subject: [PATCH 0020/1324] Add Graalpython 20.1.0 and 20.2.0 (#1594) --- plugins/python-build/bin/python-build | 5 ++ .../share/python-build/graalpython-20.1.0 | 48 +++++++++++++++++++ .../share/python-build/graalpython-20.2.0 | 48 +++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-20.1.0 create mode 100644 plugins/python-build/share/python-build/graalpython-20.2.0 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0e7306ebbb..d2e829d3a8 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -911,6 +911,11 @@ pyston_architecture() { pypy_architecture } +build_package_graalpython() { + build_package_copy + ln -fs "${PREFIX_PATH}/bin/graalpython" "${PREFIX_PATH}/bin/python" +} + build_package_pypy() { build_package_copy mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib" diff --git a/plugins/python-build/share/python-build/graalpython-20.1.0 b/plugins/python-build/share/python-build/graalpython-20.1.0 new file mode 100644 index 0000000000..7b7357640f --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-20.1.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2020, 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='20.1.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="8df5d3797876d63e5b0fed6460b1943d53160fa3c3a589d0c1ce68c23646dd93" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="7fe5aca69a64fd411d9b424b68118f2225daf96509ee1e0fcc4252a19887d9c7" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/graalvm/graalpython/releases/download/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip diff --git a/plugins/python-build/share/python-build/graalpython-20.2.0 b/plugins/python-build/share/python-build/graalpython-20.2.0 new file mode 100644 index 0000000000..f7a556bc9c --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-20.2.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2020, 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='20.2.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="9ba0447523a6cf6f8b74fef2b918672762b7d7f67be9f5be8ab6b479f173cfd7" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="e06f8e6f5766483d5613eca6a4703cec8a93236443c7c6f2866b31307e62bbe6" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/graalvm/graalpython/releases/download/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From c9eab47752ea7f452700dcd683d6ed200a23b82c Mon Sep 17 00:00:00 2001 From: Chris Slater <6004777+electricsam@users.noreply.github.com> Date: Fri, 2 Oct 2020 08:50:24 -0600 Subject: [PATCH 0021/1324] Add Jython 2.7.2 (#1672) --- .../python-build/share/python-build/jython-2.7.2 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 plugins/python-build/share/python-build/jython-2.7.2 diff --git a/plugins/python-build/share/python-build/jython-2.7.2 b/plugins/python-build/share/python-build/jython-2.7.2 new file mode 100644 index 0000000000..5ced805179 --- /dev/null +++ b/plugins/python-build/share/python-build/jython-2.7.2 @@ -0,0 +1,14 @@ +require_java +unrequire_python27 +install_jar "jython-2.7.2" "https://repo1.maven.org/maven2/org/python/jython-installer/2.7.2/jython-installer-2.7.2.jar#36e40609567ce020a1de0aaffe45e0b68571c278c14116f52e58cc652fb71552" jython + +case "$(pypy_architecture 2>/dev/null || true)" in +"osx64"|"win32" ) + # Jython does not seem to work properly on OSX/windows unless JAVA_HOME is set + if [ -z "${JAVA_HOME+defined}" ]; then + colorize 1 "WARNING: " + echo "Please ensure that your JAVA_HOME environment variable is set correctly!" + echo "See http://bugs.jython.org/issue2346 for details." + fi + ;; +esac From 5d84eed8693e6ee4dbeba9adf207c718e80a5d35 Mon Sep 17 00:00:00 2001 From: James Curtin Date: Sat, 3 Oct 2020 14:30:46 -0400 Subject: [PATCH 0022/1324] Add support for PYTHON_BUILD_MIRROR_URL when checksums do not exist (#1673) --- plugins/python-build/README.md | 6 ++++++ plugins/python-build/bin/python-build | 13 +++++++++++-- plugins/python-build/test/mirror.bats | 20 ++++++++++++++++++++ 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 978c9af6c4..1f4b591133 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -109,6 +109,8 @@ You can set certain environment variables to control the build process. downloaded package files. * `PYTHON_BUILD_MIRROR_URL` overrides the default mirror URL root to one of your choosing. +* `PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM`, if set, does not append the SHA2 + checksum of the file to the mirror URL. * `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from their original source URLs instead of using a mirror. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions @@ -182,6 +184,10 @@ You can point python-build to another mirror by specifying the own local mirror, for example. Package mirror URLs are constructed by joining this variable with the SHA2 checksum of the package file. +If the mirror being used does not have the same checksum (*e.g.* with a +pull-through cache like Artifactory), you can set the +`PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM` environment variable. + If you don't have an SHA2 program installed, python-build will skip the download mirror and use official URLs instead. You can force python-build to bypass the mirror by setting the `PYTHON_BUILD_SKIP_MIRROR` environment variable. diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index d2e829d3a8..d81e3b8fd5 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -480,7 +480,12 @@ reuse_existing_tarball() { } download_tarball() { - local package_url="$1" + local official_source="www.python.org/ftp/python" + if [ -n "$PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM" ]; then + local package_url="$(echo "$1" | sed -e "s|.*//${URL_BASE:-$official_source}|$PYTHON_BUILD_MIRROR_URL|g")" + else + local package_url="$1" + fi [ -n "$package_url" ] || return 1 local package_filename="$2" @@ -1953,7 +1958,11 @@ else PYTHON_BUILD_DEFAULT_MIRROR= fi -if [ -n "$PYTHON_BUILD_SKIP_MIRROR" ] || ! has_checksum_support compute_sha2; then +if [ -n "$PYTHON_BUILD_SKIP_MIRROR" ]; then + unset PYTHON_BUILD_MIRROR_URL +fi + +if ! has_checksum_support compute_sha2 && ! [ -n "$PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM" ] ; then unset PYTHON_BUILD_MIRROR_URL fi diff --git a/plugins/python-build/test/mirror.bats b/plugins/python-build/test/mirror.bats index 62ed38c0bc..c53b00964c 100644 --- a/plugins/python-build/test/mirror.bats +++ b/plugins/python-build/test/mirror.bats @@ -70,6 +70,26 @@ export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com unstub shasum } +@test "package is fetched from mirror when checksum is invalid if SKIP_CHECKSUM set" { + export PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM=1 + export PYTHON_BUILD_MIRROR_URL=https://custom.mirror.org + export URL_BASE=example.com + local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5" + + stub shasum false + stub curl "-*I* : true" \ + "-q -o * -*S* https://custom.mirror.org/* : cp $FIXTURE_ROOT/package-1.0.0.tar.gz \$3" \ + + install_fixture definitions/with-checksum + + assert_success + assert [ -x "${INSTALL_ROOT}/bin/package" ] + + unstub curl + unstub shasum + unset PYTHON_BUILD_MIRROR_URL_SKIP_CHECKSUM +} + @test "package is fetched from original URL if mirror download checksum is invalid" { local checksum="ba988b1bb4250dee0b9dd3d4d722f9c64b2bacfc805d1b6eba7426bda72dd3c5" From 8ac91b4fd678a8c04356f5ec85cfcd565c265e9a Mon Sep 17 00:00:00 2001 From: wakemaster39 Date: Mon, 5 Oct 2020 14:19:24 -0400 Subject: [PATCH 0023/1324] Add CPython 3.9.0 (#1706) --- plugins/python-build/share/python-build/{3.9.0rc2 => 3.9.0} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.9.0rc2 => 3.9.0} (52%) diff --git a/plugins/python-build/share/python-build/3.9.0rc2 b/plugins/python-build/share/python-build/3.9.0 similarity index 52% rename from plugins/python-build/share/python-build/3.9.0rc2 rename to plugins/python-build/share/python-build/3.9.0 index c24e0e0d64..64762dd03b 100644 --- a/plugins/python-build/share/python-build/3.9.0rc2 +++ b/plugins/python-build/share/python-build/3.9.0 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.9.0rc2" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc2.tar.xz#80b57c11f60dc1f46a408b1543f04ed52e6475ed5e597b4c23f3fd65f0b729ba" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz#9c73e63c99855709b9be0b3cc9e5b072cb60f37311e8c4e50f15576a0bf82854" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.0rc2" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0rc2.tgz#f49fcaef992d908995afcda93d150c77bd452af4fe8c23ac1b92843fda0b6fb2" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz#df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip fi From a488feb9bfc3a455e1623820cfe005da7933f175 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 6 Oct 2020 12:18:08 +0200 Subject: [PATCH 0024/1324] Travis CI: Add Xcode 12 on macOS 10.15.5 --- .travis.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index f918f54c7e..d380ee43b9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,9 +21,10 @@ dist: # https://docs.travis-ci.com/user/reference/osx/#macos-version osx_image: -- xcode9.4.1 -- xcode10.3 -- xcode11.3 +- xcode9.4.1 # macOS 10.13 +- xcode10.3 # macOS 10.14.4 +- xcode11.3 # macOS 10.14.6 +- xcode12u # macOS 10.15.5 env: - PYTHON_BUILD_VERSION=3.8.0 From 806b30d6ce5b263a765648fbcdd68266833b7289 Mon Sep 17 00:00:00 2001 From: Josh Friend Date: Thu, 8 Oct 2020 20:59:02 -0400 Subject: [PATCH 0025/1324] v1.2.21 --- CHANGELOG.md | 17 +++++++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a886d6330b..454e378873 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ ## Version History +## 1.2.21 + +* python-build: Add CPython 3.9.0 (#1706) +* python-build: Add CPython 3.8.6 (#1698) +* python-build: Add CPython 3.7.9 (#1680) +* python-build: Add CPython 3.6.12 (#1680) +* python-build: Add CPython 3.5.10 (#1690) +* python-build: Add Jython 2.7.2 (#1672) +* python-build: Add Graalpython 20.1.0 (#1594) +* python-build: Add Graalpython 20.2.0 (#1594) +* python-build: Add Anaconda3-2020.07 (#1684) +* python-build: Add micropython-1.13 (#1704) +* python-build: Fix PyPy download links (#1682) +* python-build: Support for `PYTHON_BUILD_MIRROR_URL` when checksums do not exist (#1673) +* pyenv: Search for plugins in `PYENV_DIR` and `PYENV_ROOT` (#1697) +* pyenv-help: Fix 'sed: RE error: illegal byte sequence' (#1670) + ## 1.2.20 * python-build: Add CPython 3.8.5 (#1667) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 82b2d533d3..4c1a23c38e 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.20" +version="1.2.21" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 0129a87bd39c6088a90e163cc7026e30ff3161e5 Mon Sep 17 00:00:00 2001 From: Guilherme Scaranse Date: Sat, 17 Oct 2020 20:38:10 -0300 Subject: [PATCH 0026/1324] Add pypy3.7 --- .../share/python-build/pypy3.7-7.3.2 | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.2 diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.2 b/plugins/python-build/share/python-build/pypy3.7-7.3.2 new file mode 100644 index 0000000000..e8c5a49dc0 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.2 @@ -0,0 +1,39 @@ +VERSION='7.3.2' +PYVER='3.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#34c7e1c7bd06e437ad43cc90a20f9444be1f0a264d0955e32098294c30274784" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#a285ddcbc909d68c648585fae4f33b0ba24961bb4e8fafe5874cf725d6e83df6" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#c5c35a37917f759c19e2a6b3df3b4d56298faa2fae83c143469bcbda42ca5dd2" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#337dd4d9e529d2f221e0beb092236c18430e0564ab835c6bba425a1daf7c9958" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#e3c589be07760bc3042981c379b7fd1603e832a4db426075f09e090473846a96" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac From 87c6fed6975fe131ae880300f41612857c6673a4 Mon Sep 17 00:00:00 2001 From: Brecht Machiels Date: Wed, 4 Nov 2020 10:02:50 +0100 Subject: [PATCH 0027/1324] Add PyPy 3.7-7.3.2 (binary distribution) --- plugins/python-build/pypy3.7-7.3.2 | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/pypy3.7-7.3.2 diff --git a/plugins/python-build/pypy3.7-7.3.2 b/plugins/python-build/pypy3.7-7.3.2 new file mode 100644 index 0000000000..e8c5a49dc0 --- /dev/null +++ b/plugins/python-build/pypy3.7-7.3.2 @@ -0,0 +1,39 @@ +VERSION='7.3.2' +PYVER='3.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#34c7e1c7bd06e437ad43cc90a20f9444be1f0a264d0955e32098294c30274784" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#a285ddcbc909d68c648585fae4f33b0ba24961bb4e8fafe5874cf725d6e83df6" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#c5c35a37917f759c19e2a6b3df3b4d56298faa2fae83c143469bcbda42ca5dd2" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#337dd4d9e529d2f221e0beb092236c18430e0564ab835c6bba425a1daf7c9958" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#e3c589be07760bc3042981c379b7fd1603e832a4db426075f09e090473846a96" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac From 3c51754e83939bd3ee3b6099b65d71ef3dc5e8f3 Mon Sep 17 00:00:00 2001 From: Brecht Machiels Date: Wed, 4 Nov 2020 10:16:53 +0100 Subject: [PATCH 0028/1324] Add PyPy 3.7-7.3.2 (source distribution) --- plugins/python-build/share/python-build/pypy3.7-7.3.2-src | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.2-src diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.2-src b/plugins/python-build/share/python-build/pypy3.7-7.3.2-src new file mode 100644 index 0000000000..b74d8866d9 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.2-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy3.7-v7.3.2-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.2-src.tar.bz2#9274186eb0c28716a8c6134803b1df857bc3f496e25e50e605c4d95201c8817d" "pypy_builder" verify_py37 ensurepip From 943015ebb2ee2ec3b249e1177d8b8531d0ee3960 Mon Sep 17 00:00:00 2001 From: Benjamin Howell <18622468+lambda-9@users.noreply.github.com> Date: Sat, 14 Nov 2020 16:48:15 -0500 Subject: [PATCH 0029/1324] Add LDFLAGS for zlib on macOS >= 1100 (#1711) Add LDFLAGS for Xcode SDK zlib on macOS >= 1100 to resolve build issues on Big Sur. --- plugins/python-build/bin/python-build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index d81e3b8fd5..c97041d3c6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1493,6 +1493,9 @@ use_xcode_sdk_zlib() { if [ -d "$xc_sdk_path" ]; then echo "python-build: use zlib from xcode sdk" export CFLAGS="-I${xc_sdk_path}/usr/include ${CFLAGS}" + if is_mac -ge 1100; then + export LDFLAGS="-L${xc_sdk_path}/usr/lib ${LDFLAGS}" + fi fi } From 5221c4aeeaa58bd40266db0d33250820a0cf1836 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 5 Dec 2020 18:19:26 +0200 Subject: [PATCH 0030/1324] README: note optional bash extension build Borrowed from rbenv. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index cc78f1b820..46e150a2da 100644 --- a/README.md +++ b/README.md @@ -194,6 +194,10 @@ easy to fork and contribute any changes back upstream. git clone https://github.com/pyenv/pyenv.git ~/.pyenv + Optionally, try to compile dynamic bash extension to speed up pyenv. Don't + worry if it fails; pyenv will still work normally: + + cd ~/.pyenv && src/configure && make -C src 2. **Define environment variable `PYENV_ROOT`** to point to the path where pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access From 7307b185d2fb17106ee4e078078f24219dafef28 Mon Sep 17 00:00:00 2001 From: Kenji Saito Date: Fri, 11 Dec 2020 09:42:26 +0900 Subject: [PATCH 0031/1324] Add the CPython 3.9.1 (#1752) --- plugins/python-build/share/python-build/3.9.1 | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.1 diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 new file mode 100644 index 0000000000..fcab5efbfb --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.1 @@ -0,0 +1,11 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi + From 9052491a05b8886850e8f61f083de45f986471db Mon Sep 17 00:00:00 2001 From: tillhainbach <33448151+tillhainbach@users.noreply.github.com> Date: Fri, 11 Dec 2020 01:46:40 +0100 Subject: [PATCH 0032/1324] Change order of LDFLAGS paths (#1754) --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c97041d3c6..b1c128983b 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1494,7 +1494,7 @@ use_xcode_sdk_zlib() { echo "python-build: use zlib from xcode sdk" export CFLAGS="-I${xc_sdk_path}/usr/include ${CFLAGS}" if is_mac -ge 1100; then - export LDFLAGS="-L${xc_sdk_path}/usr/lib ${LDFLAGS}" + export LDFLAGS="${LDFLAGS} -L${xc_sdk_path}/usr/lib" fi fi } From 23677c5124bf1c80871f0fbce83b4dc640849de1 Mon Sep 17 00:00:00 2001 From: Chris Barnes Date: Fri, 11 Dec 2020 00:49:13 +0000 Subject: [PATCH 0033/1324] Docker config for testing python-build (#1548) * Dockerfile for testing python builds * README: document docker usage * Finish docker dockerignore file, specify ephemeral nature of containers. * Move docs for docker usage to python-build README --- .dockerignore | 4 +++ Dockerfile | 35 +++++++++++++++++++++++++ plugins/python-build/README.md | 48 ++++++++++++++++++++++++++++++++++ 3 files changed, 87 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..dda9459b6a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.git/ +.python-version +.vscode/ +.idea/ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..a11ff01eb4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM ubuntu:18.04 + +LABEL maintainer="Chris L. Barnes " + +ENV DEBIAN_FRONTEND=noninteractive + +RUN apt-get update -y \ + && apt-get install -y \ + make \ + build-essential \ + libssl-dev \ + zlib1g-dev \ + libbz2-dev \ + libreadline-dev \ + libsqlite3-dev \ + wget \ + curl \ + llvm \ + libncurses5-dev \ + libncursesw5-dev \ + xz-utils \ + tk-dev \ + libffi-dev \ + liblzma-dev \ + python-openssl \ + git \ + && rm -rf /var/lib/apt/lists/* + +ENV PYENV_ROOT "/pyenv" +ENV PATH "$PYENV_ROOT/bin:$PATH" + +COPY . /pyenv + +RUN eval "$(pyenv init -)" + diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 1f4b591133..931d56ef03 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -226,3 +226,51 @@ Please see the [pyenv wiki](https://github.com/pyenv/pyenv/wiki) for solutions t If you can't find an answer on the wiki, open an issue on the [issue tracker](https://github.com/pyenv/pyenv/issues). Be sure to include the full build log for build failures. + +## Contributing + +### Testing new python versions + +If you are contributing a new python version for python-build, +you can test the build in a [docker](https://www.docker.com/) container based on Ubuntu 18.04. + +With docker installed: + +```sh +docker build -t my_container . +docker run my_container pyenv install +``` + +To enter a shell which will allow you to build and then test a python version, +replace the second line with + +```sh +docker run -it my_container +``` + +The container will need to be rebuilt whenever you change the repo, +but after the first build, this will be very fast, +as the layer including the build dependencies will be cached. + +Changes made inside the container will not be persisted. + +To test *all* new versions since a particular revision (e.g. `master`), `cd` to the root of your `pyenv` repo, and run this script: + +```sh +set -e +set -x + +docker build -t pyenv-test-container . + +git diff --name-only master \ + | grep '^plugins/python-build/share/python-build/' \ + | awk -F '/' '{print $NF}' \ + | xargs -I _ docker run pyenv-test-container pyenv install _ +``` + +- Build the docker image with the **t**ag pyenv-test-container +- Look for the names files changed since revision `master` +- Filter out any which don't live where python-build keeps its build scripts +- Look only at the file name (i.e. the python version name) +- Run a new docker container for each, building that version + From db939bbcfca7b3d8ef6b6300d5e1474c85049441 Mon Sep 17 00:00:00 2001 From: Almenon Date: Thu, 10 Dec 2020 16:50:14 -0800 Subject: [PATCH 0034/1324] Put prerequisite for installation before install (#1750) This prevents people from jumping the gun and trying to install a python version right after brew install. --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index cc78f1b820..1307d8a517 100644 --- a/README.md +++ b/README.md @@ -167,6 +167,10 @@ We'd recommend to install pyenv-virtualenv as well if you have some plan to play ## Installation +### Prerequisites: + +For pyenv to install python correctly you should [**install the Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment). + ### Homebrew on macOS 1. Consider installing with [Homebrew](https://brew.sh) From 2bf6111fa0bad10b78c3130dfab497c8c3dcd2b6 Mon Sep 17 00:00:00 2001 From: Tim Felgentreff Date: Wed, 16 Dec 2020 17:32:58 +0100 Subject: [PATCH 0035/1324] Add GraalPython 20.3 (#1736) * Add GraalPython 20.3 * Update graalpython repository URLs --- .../share/python-build/graalpython-20.1.0 | 2 +- .../share/python-build/graalpython-20.2.0 | 2 +- .../share/python-build/graalpython-20.3.0 | 48 +++++++++++++++++++ 3 files changed, 50 insertions(+), 2 deletions(-) create mode 100644 plugins/python-build/share/python-build/graalpython-20.3.0 diff --git a/plugins/python-build/share/python-build/graalpython-20.1.0 b/plugins/python-build/share/python-build/graalpython-20.1.0 index 7b7357640f..9946f563a8 100644 --- a/plugins/python-build/share/python-build/graalpython-20.1.0 +++ b/plugins/python-build/share/python-build/graalpython-20.1.0 @@ -42,7 +42,7 @@ esac if [ -n "${BUILD}" ]; then urlprefix="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-${BUILD}" else - urlprefix="https://github.com/graalvm/graalpython/releases/download/vm-${VERSION}" + urlprefix="https://github.com/oracle/graalpython/releases/download/vm-${VERSION}" fi install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip diff --git a/plugins/python-build/share/python-build/graalpython-20.2.0 b/plugins/python-build/share/python-build/graalpython-20.2.0 index f7a556bc9c..6b5002ff50 100644 --- a/plugins/python-build/share/python-build/graalpython-20.2.0 +++ b/plugins/python-build/share/python-build/graalpython-20.2.0 @@ -42,7 +42,7 @@ esac if [ -n "${BUILD}" ]; then urlprefix="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-${BUILD}" else - urlprefix="https://github.com/graalvm/graalpython/releases/download/vm-${VERSION}" + urlprefix="https://github.com/oracle/graalpython/releases/download/vm-${VERSION}" fi install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip diff --git a/plugins/python-build/share/python-build/graalpython-20.3.0 b/plugins/python-build/share/python-build/graalpython-20.3.0 new file mode 100644 index 0000000000..36139f9513 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-20.3.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2020, 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='20.3.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="121508c64c2f18e9a57294d38a4c090c7a9417087f8549e120d0050906e2c82f" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="1a80bf3fde2dc2d0fdc92605176c281835d912c26847346150b3be82d2a250e0" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From 973597d67d5e8032dc477b8a7d662d912439a42f Mon Sep 17 00:00:00 2001 From: Jose Martin Date: Tue, 22 Dec 2020 09:40:04 +0100 Subject: [PATCH 0036/1324] Add CPython 3.8.7 --- plugins/python-build/share/python-build/3.8.7 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.8.7 diff --git a/plugins/python-build/share/python-build/3.8.7 b/plugins/python-build/share/python-build/3.8.7 new file mode 100644 index 0000000000..d1dc96dd7d --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.7 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tar.xz#ddcc1df16bb5b87aa42ec5d20a5b902f2d088caa269b28e01590f97a798ec50a" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz#20e5a04262f0af2eb9c19240d7ec368f385788bba2d8dfba7e74b20bab4d2bac" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +fi From fd003a8f0686458b9486c3580e708adcd31eccc7 Mon Sep 17 00:00:00 2001 From: Kiko Marin Date: Tue, 22 Dec 2020 20:59:58 -0700 Subject: [PATCH 0037/1324] Add miniconda3 4.8.2, 4.8.3, & 4.9.2 --- .../share/python-build/miniconda3-py37_4.8.2 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-py37_4.8.3 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-py37_4.9.2 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-py38_4.8.2 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-py38_4.8.3 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-py38_4.9.2 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-py39_4.9.2 | 19 +++++++++++++++++++ 7 files changed, 133 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-py37_4.8.2 create mode 100644 plugins/python-build/share/python-build/miniconda3-py37_4.8.3 create mode 100644 plugins/python-build/share/python-build/miniconda3-py37_4.9.2 create mode 100644 plugins/python-build/share/python-build/miniconda3-py38_4.8.2 create mode 100644 plugins/python-build/share/python-build/miniconda3-py38_4.8.3 create mode 100644 plugins/python-build/share/python-build/miniconda3-py38_4.9.2 create mode 100644 plugins/python-build/share/python-build/miniconda3-py39_4.9.2 diff --git a/plugins/python-build/share/python-build/miniconda3-py37_4.8.2 b/plugins/python-build/share/python-build/miniconda3-py37_4.8.2 new file mode 100644 index 0000000000..5d6271172e --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py37_4.8.2 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py37_4.8.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-Linux-ppc64le.sh#e50662a93f3f5e56ef2d3fdfaf2f8e91" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_4.8.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-Linux-x86_64.sh#87e77f097f6ebb5127c77662dfc3165e" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_4.8.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.2-MacOSX-x86_64.sh#e0320c20ea13d04407424ecf57b70eaf" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-py37_4.8.3 b/plugins/python-build/share/python-build/miniconda3-py37_4.8.3 new file mode 100644 index 0000000000..bc10060ed7 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py37_4.8.3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py37_4.8.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-Linux-ppc64le.sh#ae06d853a09764d86e400cd797c2e922" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_4.8.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-Linux-x86_64.sh#751786b92c00b1aeae3f017b781018df" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_4.8.3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-MacOSX-x86_64.sh#d1754f1e192e078b4d207a8b2e5607b0" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-py37_4.9.2 b/plugins/python-build/share/python-build/miniconda3-py37_4.9.2 new file mode 100644 index 0000000000..eceae73688 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py37_4.9.2 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py37_4.9.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-ppc64le.sh#5bdc8650a2d1b32c8fd6eed9ed61aef5" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh#3143b1116f2d466d9325c206b7de88f7" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-MacOSX-x86_64.sh#cfe1b551b169d6386f5f4b7df40cdac4" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-py38_4.8.2 b/plugins/python-build/share/python-build/miniconda3-py38_4.8.2 new file mode 100644 index 0000000000..aaf4dd975f --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py38_4.8.2 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py38_4.8.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-ppc64le.sh#8dbe9589f7ba6e17428ac57658802eb2" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_4.8.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-Linux-x86_64.sh#cbda751e713b5a95f187ae70b509403f" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_4.8.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.2-MacOSX-x86_64.sh#589972cf83097c97e70c41813f2fe3a2" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-py38_4.8.3 b/plugins/python-build/share/python-build/miniconda3-py38_4.8.3 new file mode 100644 index 0000000000..4d93ac4b97 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py38_4.8.3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py38_4.8.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.3-Linux-ppc64le.sh#a48a5db8c22c47cea7b04af2c3af2a1f" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_4.8.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.3-Linux-x86_64.sh#d63adf39f2c220950a063e0529d4ff74" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_4.8.3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.3-MacOSX-x86_64.sh#3fe6d972d40ee60f2e8496cf943ad852" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-py38_4.9.2 b/plugins/python-build/share/python-build/miniconda3-py38_4.9.2 new file mode 100644 index 0000000000..a80281d53c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py38_4.9.2 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py38_4.9.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-ppc64le.sh#b05f6c543ce0c593761bbfb4e6548ff6" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh#122c8c9beb51e124ab32a0fa6426c656" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.3-MacOSX-x86_64.sh#cb40e2c1a32dccd6cdd8d5e49977a635" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-py39_4.9.2 b/plugins/python-build/share/python-build/miniconda3-py39_4.9.2 new file mode 100644 index 0000000000..058e0c118c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-py39_4.9.2 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py39_4.9.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-ppc64le.sh#73b8d60454389905b1d209f1b0c211d9" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh#b4e46fcc8029e2cfa731b788f25b1d36" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.8.3-MacOSX-x86_64.sh#0658832393a50f5a578bcad825304886" "miniconda" verify_py39 + ;; +* ) + { 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 From c8aff5f1b7f4a15050cdddbe372a691cdfca4534 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 9 Jan 2021 11:13:28 +0300 Subject: [PATCH 0038/1324] Added Miniforge3-4.9.2 Added Miniforge3-4.9.2 support for all platforms, including arm64 in macOS for Apple M1 SoC --- .../share/python-build/miniforge3-4.9.2 | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-4.9.2 diff --git a/plugins/python-build/share/python-build/miniforge3-4.9.2 b/plugins/python-build/share/python-build/miniforge3-4.9.2 new file mode 100644 index 0000000000..9d63f531ab --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.9.2 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-4.9.2-4-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-Linux-ppc64le.sh#d226016334a28fc99912c640fcb52074" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.9.2-4-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-Linux-x86_64.sh#cdfeb2264de9c77bd9dc4ce8f7dfbad4" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.9.2-4-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-MacOSX-arm64.sh#c5f52aa3bf6b5d56469138d4cdcd9079" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.9.2-4-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-MacOSX-x86_64.sh#23337bfd70a8099395b1a5c42ac725fd" "miniconda" verify_py39 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 82ef0424d6def26d1ce2a4d0d338da2553066310 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 9 Jan 2021 18:37:49 +0300 Subject: [PATCH 0039/1324] Added anaconda3-2020.11 (#1774) Added support for Anaconda 2020.11 --- .../share/python-build/anaconda3-2020.11 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2020.11 diff --git a/plugins/python-build/share/python-build/anaconda3-2020.11 b/plugins/python-build/share/python-build/anaconda3-2020.11 new file mode 100644 index 0000000000..158af56d81 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2020.11 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Anaconda3-2020.11-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2020.11-Linux-ppc64le.sh#870535ada0a8ae75eeda8cd2bf7dde853ac9f4949b20e1b5641f1843a655f3b8" "anaconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2020.11-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.11-Linux-x86_64.sh#cf2ff493f11eaad5d09ce2b4feaa5ea90db5174303d5b3fe030e16d29aeef7de" "anaconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2020.11-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.11-MacOSX-x86_64.sh#ec11e325c792a6f49dbdbe5e641991d0a29788689176d7e54da97def9532c762" "anaconda" verify_py38 + ;; +* ) + { 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 From 48f742446a930049ef7e5f5b48beaf013c7c07d7 Mon Sep 17 00:00:00 2001 From: Chris Hunt Date: Sat, 9 Jan 2021 10:56:24 -0500 Subject: [PATCH 0040/1324] Use verify_py38 for anaconda3-2020.07 Per the release notes the installer and base environment (which I assume we'd be verifying here, if anything) is Python 3.8. --- plugins/python-build/share/python-build/anaconda3-2020.07 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/share/python-build/anaconda3-2020.07 b/plugins/python-build/share/python-build/anaconda3-2020.07 index c22ce13cae..f4b018dd35 100644 --- a/plugins/python-build/share/python-build/anaconda3-2020.07 +++ b/plugins/python-build/share/python-build/anaconda3-2020.07 @@ -1,12 +1,12 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-ppc64le" ) - install_script "Anaconda3-2020.07-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2020.07-Linux-ppc64le.sh#0df7c3784973ab46a9ef9848aced01311d08a71d79a18d5ed79dccdae8c8dea7" "anaconda" verify_py37 + install_script "Anaconda3-2020.07-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2020.07-Linux-ppc64le.sh#0df7c3784973ab46a9ef9848aced01311d08a71d79a18d5ed79dccdae8c8dea7" "anaconda" verify_py38 ;; "Linux-x86_64" ) - install_script "Anaconda3-2020.07-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.07-Linux-x86_64.sh#38ce717758b95b3bd0b1797cc6ccfb76f29a90c25bdfa50ee45f11e583edfdbf" "anaconda" verify_py37 + install_script "Anaconda3-2020.07-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.07-Linux-x86_64.sh#38ce717758b95b3bd0b1797cc6ccfb76f29a90c25bdfa50ee45f11e583edfdbf" "anaconda" verify_py38 ;; "MacOSX-x86_64" ) - install_script "Anaconda3-2020.07-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.07-MacOSX-x86_64.sh#3980c2a57fde5de2ccfdf0d7973f95ac1a3fa63351642e6735c50fc3791ef0f1" "anaconda" verify_py37 + install_script "Anaconda3-2020.07-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2020.07-MacOSX-x86_64.sh#3980c2a57fde5de2ccfdf0d7973f95ac1a3fa63351642e6735c50fc3791ef0f1" "anaconda" verify_py38 ;; * ) { echo From 9e03d1b62ef015748917687ff8e3f154067f6061 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 9 Jan 2021 19:54:49 +0300 Subject: [PATCH 0041/1324] Added arm64 architecture support in python-build for macOS (#1775) * Update python-build with arm64 architecture --- plugins/python-build/bin/python-build | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b1c128983b..043cc4f167 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -995,7 +995,12 @@ build_package_activepython() { anaconda_architecture() { case "$(uname -s)" in - "Darwin" ) echo "MacOSX-x86_64" ;; + "Darwin" ) + case "$(uname -m)" in + "arm64" ) echo "MacOSX-arm64" ;; + * ) echo "MacOSX-x86_64" ;; + esac + ;; "Linux" ) case "$(uname -m)" in "armv7l" ) echo "Linux-armv7l" ;; From ebd4d982277310569c2a8e7d12f373208464fdab Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 9 Jan 2021 20:07:03 +0300 Subject: [PATCH 0042/1324] Update miniforge3-4.9.2 Bump version to 4.9.2-5 --- plugins/python-build/share/python-build/miniforge3-4.9.2 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/miniforge3-4.9.2 b/plugins/python-build/share/python-build/miniforge3-4.9.2 index 9d63f531ab..e8940d4fb2 100644 --- a/plugins/python-build/share/python-build/miniforge3-4.9.2 +++ b/plugins/python-build/share/python-build/miniforge3-4.9.2 @@ -1,15 +1,15 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-ppc64le" ) - install_script "Miniforge3-4.9.2-4-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-Linux-ppc64le.sh#d226016334a28fc99912c640fcb52074" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-5-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-Linux-ppc64le.sh#825b3e5f39f0bdb825323ea23af24ba4" "miniconda" verify_py38 ;; "Linux-x86_64" ) - install_script "Miniforge3-4.9.2-4-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-Linux-x86_64.sh#cdfeb2264de9c77bd9dc4ce8f7dfbad4" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-5-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-Linux-x86_64.sh#73ea193f82d8f3b558b9c2186a147bcf" "miniconda" verify_py38 ;; "MacOSX-arm64" ) - install_script "Miniforge3-4.9.2-4-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-MacOSX-arm64.sh#c5f52aa3bf6b5d56469138d4cdcd9079" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-5-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-arm64.sh#cf309b725c8a0b4448e4ee922703bf00" "miniconda" verify_py38 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-4.9.2-4-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-4/Miniforge3-4.9.2-4-MacOSX-x86_64.sh#23337bfd70a8099395b1a5c42ac725fd" "miniconda" verify_py39 + install_script "Miniforge3-4.9.2-5-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-x86_64.sh#e66d62e8872bc1548af54063cab7b72e" "miniconda" verify_py39 ;; * ) { echo From d589778b6b25611cc9bc61fe31b60fe8ea90c23a Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 9 Jan 2021 20:24:20 +0300 Subject: [PATCH 0043/1324] Create pypy3.7-7.3.3 --- .../share/python-build/pypy3.7-7.3.3 | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.3 diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.3 b/plugins/python-build/share/python-build/pypy3.7-7.3.3 new file mode 100644 index 0000000000..1b177cbf5a --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.3 @@ -0,0 +1,39 @@ +VERSION='7.3.3' +PYVER='3.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#7d81b8e9fcd07c067cfe2f519ab770ec62928ee8787f952cadf2d2786246efc8" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#37e2804c4661c86c857d709d28c7de716b000d31e89766599fdf5a98928b7096" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#ee4aa041558b58de6063dd6df93b3def221c4ca4c900d6a9db5b1b52135703a8" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#d72b27d5bb60813273f14f07378a08822186a66e216c5d1a768ad295b582438d" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#a282ce40aa4f853e877a5dbb38f0a586a29e563ae9ba82fd50c7e5dc465fb649" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac From 559cc59677086ce9ef9c028f524eb9e303834fba Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 9 Jan 2021 20:27:10 +0300 Subject: [PATCH 0044/1324] Create pypy3.7-7.3.3-src --- plugins/python-build/share/python-build/pypy3.7-7.3.3-src | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.3-src diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.3-src b/plugins/python-build/share/python-build/pypy3.7-7.3.3-src new file mode 100644 index 0000000000..b0c6479454 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.3-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy3.7-v7.3.3-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.3-src.tar.bz2#f6c96401f76331e474cca2d14437eb3b2f68a0f27220a6dcbc537445fe9d5b78" "pypy_builder" verify_py37 ensurepip From dc7054656575ca50a3a274e995e515c3b725843f Mon Sep 17 00:00:00 2001 From: "Yamashita, Yuu" Date: Sun, 10 Jan 2021 12:52:22 +0900 Subject: [PATCH 0045/1324] v1.2.22 (fixes #1760) --- CHANGELOG.md | 12 ++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 454e378873..6336095b31 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ ## Version History +## 1.2.22 + ++ python-build: Add LDFLAGS for zlib on macOS >= 1100 (#1711) ++ python-build: Add the CPython 3.9.1 (#1752) ++ python-build: Change order of LDFLAGS paths (#1754) ++ python-build: Docker config for testing python-build (#1548) ++ python-build: Put prerequisite for installation before install (#1750) ++ python-build: Add GraalPython 20.3 (#1736) ++ python-build: Add CPython 3.8.7 ++ python-build: Added anaconda3-2020.11 (#1774) ++ python-build: Added arm64 architecture support in python-build for macOS (#1775) + ## 1.2.21 * python-build: Add CPython 3.9.0 (#1706) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 4c1a23c38e..1d6e520c13 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.21" +version="1.2.22" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From c5d205025483c6e5605755330749e37f9c817540 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 10 Jan 2021 09:37:42 +0300 Subject: [PATCH 0046/1324] Update miniforge3-4.9.2 OS X arm64 will be installed with Python 3.9 only. Other versions bundled with python 3.8. Miniforge does not have as wide a choice of python versions as miniconda. The Python version is specific only to the base environment. --- plugins/python-build/share/python-build/miniforge3-4.9.2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/miniforge3-4.9.2 b/plugins/python-build/share/python-build/miniforge3-4.9.2 index e8940d4fb2..05ad0a9f3c 100644 --- a/plugins/python-build/share/python-build/miniforge3-4.9.2 +++ b/plugins/python-build/share/python-build/miniforge3-4.9.2 @@ -6,10 +6,10 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Miniforge3-4.9.2-5-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-Linux-x86_64.sh#73ea193f82d8f3b558b9c2186a147bcf" "miniconda" verify_py38 ;; "MacOSX-arm64" ) - install_script "Miniforge3-4.9.2-5-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-arm64.sh#cf309b725c8a0b4448e4ee922703bf00" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-5-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-arm64.sh#cf309b725c8a0b4448e4ee922703bf00" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-4.9.2-5-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-x86_64.sh#e66d62e8872bc1548af54063cab7b72e" "miniconda" verify_py39 + install_script "Miniforge3-4.9.2-5-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-x86_64.sh#e66d62e8872bc1548af54063cab7b72e" "miniconda" verify_py38 ;; * ) { echo From 90b68684acfd9200e286f4de4371b5cdf3d0241c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:07:52 +0300 Subject: [PATCH 0047/1324] Rename miniconda3-py37_4.8.2 to miniconda3-3.7-4.8.2 --- .../python-build/{miniconda3-py37_4.8.2 => miniconda3-3.7-4.8.2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py37_4.8.2 => miniconda3-3.7-4.8.2} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py37_4.8.2 b/plugins/python-build/share/python-build/miniconda3-3.7-4.8.2 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py37_4.8.2 rename to plugins/python-build/share/python-build/miniconda3-3.7-4.8.2 From d15b3674d8e80fd503ed1fae975d1f70556c1bf5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:08:11 +0300 Subject: [PATCH 0048/1324] Rename miniconda3-py37_4.8.3 to miniconda3-3.7-4.8.3 --- .../python-build/{miniconda3-py37_4.8.3 => miniconda3-3.7-4.8.3} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py37_4.8.3 => miniconda3-3.7-4.8.3} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py37_4.8.3 b/plugins/python-build/share/python-build/miniconda3-3.7-4.8.3 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py37_4.8.3 rename to plugins/python-build/share/python-build/miniconda3-3.7-4.8.3 From 553f9a4d26587a2ca9df174936ba3a92e3b6b3aa Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:08:31 +0300 Subject: [PATCH 0049/1324] Rename miniconda3-py37_4.9.2 to miniconda3-3.7-4.9.2 --- .../python-build/{miniconda3-py37_4.9.2 => miniconda3-3.7-4.9.2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py37_4.9.2 => miniconda3-3.7-4.9.2} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py37_4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py37_4.9.2 rename to plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 From b103763fa8277b70b84a6d27d8ab3857bb85a12f Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:09:30 +0300 Subject: [PATCH 0050/1324] Rename miniconda3-py38_4.8.2 to miniconda3-3.8-4.8.2 --- .../python-build/{miniconda3-py38_4.8.2 => miniconda3-3.8-4.8.2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py38_4.8.2 => miniconda3-3.8-4.8.2} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py38_4.8.2 b/plugins/python-build/share/python-build/miniconda3-3.8-4.8.2 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py38_4.8.2 rename to plugins/python-build/share/python-build/miniconda3-3.8-4.8.2 From 01e5eaecf34082bb0c87d045a7dc5101e9275016 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:09:58 +0300 Subject: [PATCH 0051/1324] Rename miniconda3-py38_4.8.3 to miniconda3-3.8-4.8.3 --- .../python-build/{miniconda3-py38_4.8.3 => miniconda3-3.8-4.8.3} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py38_4.8.3 => miniconda3-3.8-4.8.3} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py38_4.8.3 b/plugins/python-build/share/python-build/miniconda3-3.8-4.8.3 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py38_4.8.3 rename to plugins/python-build/share/python-build/miniconda3-3.8-4.8.3 From 5c5d647a06ffdaf8dbb58b1d0bf37ba39ee1e646 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:11:04 +0300 Subject: [PATCH 0052/1324] Rename miniconda3-py38_4.9.2 to miniconda3-3.8-4.9.2 --- .../python-build/{miniconda3-py38_4.9.2 => miniconda3-3.8-4.9.2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py38_4.9.2 => miniconda3-3.8-4.9.2} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py38_4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py38_4.9.2 rename to plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 From 5b90e629842b7cc08a3d4ea2d811541314516357 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 11 Jan 2021 20:11:36 +0300 Subject: [PATCH 0053/1324] Rename miniconda3-py39_4.9.2 to miniconda3-3.9-4.9.2 --- .../python-build/{miniconda3-py39_4.9.2 => miniconda3-3.9-4.9.2} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniconda3-py39_4.9.2 => miniconda3-3.9-4.9.2} (100%) diff --git a/plugins/python-build/share/python-build/miniconda3-py39_4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 similarity index 100% rename from plugins/python-build/share/python-build/miniconda3-py39_4.9.2 rename to plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 From b61536e9ee8c56407c8cbd5e4a8c5c4ca90d1ebd Mon Sep 17 00:00:00 2001 From: Jan Bronicki <56229312+John15321@users.noreply.github.com> Date: Wed, 13 Jan 2021 19:36:39 +0100 Subject: [PATCH 0054/1324] more general installation readme instructions --- README.md | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 1307d8a517..0b89f906c3 100644 --- a/README.md +++ b/README.md @@ -232,12 +232,26 @@ easy to fork and contribute any changes back upstream. 3. **Add `pyenv init` to your shell** to enable shims and autocompletion. Please make sure `eval "$(pyenv init -)"` is placed toward the end of the shell configuration file since it manipulates `PATH` during the initialization. - ```sh - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile - ``` - - **Zsh note**: Modify your `~/.zshrc` file instead of `~/.bash_profile`. - - **fish note**: Use `pyenv init - | source` instead of `eval (pyenv init -)`. - - **Ubuntu and Fedora note**: Modify your `~/.bashrc` file instead of `~/.bash_profile`. + + - For **bash**: + ~~~ bash + echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile + ~~~ + + - For **Ubuntu Desktop** and **Fedora**: + ~~~ bash + echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc + ~~~ + + - For **Zsh**: + ~~~ zsh + echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc + ~~~ + + - For **Fish shell**: + ~~~ fish + echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$pyenv init - | source"\nfi' >> ~/.bash_profile + ~~~ **General warning**: There are some systems where the `BASH_ENV` variable is configured to point to `.bashrc`. On such systems you should almost certainly put the above mentioned line From f53aa3e64ec522803cdf87fe87e90f17e11684ec Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 15 Jan 2021 08:02:25 +0300 Subject: [PATCH 0055/1324] Update README.md corrected fish shell command --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0b89f906c3..f4796a7c3b 100644 --- a/README.md +++ b/README.md @@ -250,7 +250,7 @@ easy to fork and contribute any changes back upstream. - For **Fish shell**: ~~~ fish - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$pyenv init - | source"\nfi' >> ~/.bash_profile + echo -e '\n\n# pyenv init\nif command -v pyenv 1>/dev/null 2>&1\n pyenv init - | source\nend' >> ~/.config/fish/config.fish ~~~ **General warning**: There are some systems where the `BASH_ENV` variable is configured From 6c0f6e05e9662c80937cfce7a3311d5acfeb40c7 Mon Sep 17 00:00:00 2001 From: karthek Date: Mon, 25 Jan 2021 22:27:00 +0530 Subject: [PATCH 0056/1324] add manpage --- pyenv.1 | 549 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 549 insertions(+) create mode 100644 pyenv.1 diff --git a/pyenv.1 b/pyenv.1 new file mode 100644 index 0000000000..5b5c624867 --- /dev/null +++ b/pyenv.1 @@ -0,0 +1,549 @@ +.\" (C) Copyright 2020 karthek , +.\" +.TH PYENV 1 "12 Dec 2020" "PYENV" +.SH NAME +pyenv \- Simple Python version management +.SH SYNOPSIS +.B pyenv +\fI\, \/\fR[\fI\,\/\fR] +.SH DESCRIPTION +pyenv lets you easily switch between multiple versions of Python\. It's simple, unobtrusive, and follows the UNIX tradition of single\-purpose tools that do one thing well\. +.P + To start using pyenv +.IP "1." 3 +\fBAppend\fR the following to \fB$HOME/.bashrc\fR +.P +.RS 15 +source /usr/share/pyenv/pyenv_user_setup.bash +.RE +.\"OR +.\"\fBsh echo \-e \if command \-v pyenv 1>/dev/null 2>&1; then\en eval "$(pyenv init \-)"\enfi' >> ~/\.bashrc\fR +.RS 3 +.P +.nh +Appending this line enables shims. Please make sure this line is placed toward the end of the shell configuration file since it manipulates \fBPATH\fR during the initialization\. +.hy +.TP 13 +.B Debian note: +Modify only your \fB~/\.bashrc\fR file instead of creating +.br +\fB~/\.bash_profile\fR +.P +.RS 0 +\fBZsh note\fR: Modify your \fB~/\.zshrc\fR file instead of \fB~/\.bashrc\fR +.P +\fBWarning\fR: If you configured your system so that \fBBASH_ENV\fR variable points to \fB\.bashrc\fR\. You should almost certainly put the above mentioned line into \fB\.bash_profile\fR, and \fBnot\fR into \fB\.bashrc\fR. Otherwise you may observe strange behaviour, such as \fBpyenv\fR getting into an infinite loop. See #264 +.UR https://github\.com/pyenv/pyenv/issues/264 +.UE +for details. +.RE +.RE +.IP "2." 3 +\fBRestart your shell so the path changes take effect\.\fR You can now begin using pyenv\. +.P +.RS 15 +exec "$SHELL"\fR +.RE +.IP "3." 3 +\fBInstall Python versions into \fB$(pyenv root)/versions\fR\.\fR For example, to download and install Python 3\.6\.12, run: +.P +.RS 15 +.B pyenv install 3.6.12\fR +.RE +.P +\fBNOTE:\fR If you need to pass configure option to build, please use \fBCONFIGURE_OPTS\fR environment variable. If you are having trouble installing a python version, please visit the wiki page about Common Build Problems +.UR https://github\.com/pyenv/pyenv/wiki/Common\-build\-problems +.UE +.P +\fBProxy note\fR: If you use a proxy, export \fBHTTP_PROXY\fR and \fBHTTPS_PROXY\fR environment variables. +.P +.SS "Stop using pyenv" +The simplicity of pyenv makes it easy to temporarily disable it, or uninstall from the system\. +To \fBdisable\fR pyenv managing your Python versions, simply remove the \fBpyenv init\fR line from your shell startup configuration\. This will remove pyenv shims directory from PATH, and future invocations like \fBpython\fR will execute the system Python version, as before pyenv\. +.IP "" 0 +.P +\fBpyenv\fR will still be accessible on the command line, but your Python apps won't be affected by version switching\. +.IP "" 0 +.SH COMMAND LINE OPTIONS +Like \fBgit\fR, the \fBpyenv\fR command delegates to subcommands based on its first argument\. +.SS "Some useful pyenv commands are:" +.TP 5 +.B commands +List all available pyenv commands +.TP +.B exec +Run an executable with the selected Python version +.TP +.B global +Set or show the global Python version(s) +.TP +.B help +Display help for a command +.TP +.B hooks +List hook scripts for a given pyenv command +.TP +.B init +Configure the shell environment for pyenv +.TP +.B install +Install a Python version using python\-build +.TP +.B local +Set or show the local application\-specific Python version(s) +.TP +.B prefix +Display prefix for a Python version +.TP +.B rehash +Rehash pyenv shims (run this after installing executables) +.TP +.B root +Display the root directory where versions and shims are kept +.TP +.B shell +Set or show the shell\-specific Python version +.TP +.B shims +List existing pyenv shims +.TP +.B uninstall +Uninstall a specific Python version +.TP +.B version +Show the current Python version(s) and its origin +.TP +.B version\-file +Detect the file that sets the current pyenv version +.TP +.B version\-name +Show the current Python version +.TP +.B version\-origin +Explain how the current Python version is set +.TP +.B versions +List all Python versions available to pyenv +.TP +.B whence +List all Python versions that contain the given executable +.TP +.B which +Display the full path to an executable +.PP +See `pyenv help ' for information on a specific command. +For full documentation, see \fBCOMMAND REFERENCE\fR section +.SH OPTIONS +.TP +.B \-h, \-\-help +Show summary of options. +.TP +.B \-v, \-\-version +Show version of program. +.SH COMPARISON +.P +.B "pyenv does\|\.\|\.\|\. +.P +.IP \(bu 4 +Let you \fBchange the global Python version\fR on a per\-user basis\. +.IP \(bu 4 +Provide support for \fBper\-project Python versions\fR\. +.IP \(bu 4 +Allow you to \fBoverride the Python version\fR with an environment variable\. +.IP \(bu 4 +Search commands from \fBmultiple versions of Python at a time\fR\. This may be helpful to test across Python versions with tox +.IP "" 0 +.P +.B "In contrast with pythonbrew and pythonz, pyenv does not\|\.\|\.\|\." +.IP \(bu 4 +\fBDepend on Python itself\.\fR pyenv was made from pure shell scripts\. There is no bootstrap problem of Python\. +.IP \(bu 4 +\fBNeed to be loaded into your shell\.\fR Instead, pyenv's shim approach works by adding a directory to your \fB$PATH\fR\. +.IP \(bu 4 +\fBManage virtualenv\.\fR Of course, you can create virtualenv yourself, or pyenv\-virtualenv to automate the process\. +.SH "How It Works" +At a high level, pyenv intercepts Python commands using shim executables injected into your \fBPATH\fR, determines which Python version has been specified by your application, and passes your commands along to the correct Python installation\. +.SS "Understanding PATH" +When you run a command like \fBpython\fR or \fBpip\fR, your operating system searches through a list of directories to find an executable file with that name\. This list of directories lives in an environment variable called \fBPATH\fR, with each directory in the list separated by a colon: +.IP "" 4 +.nf +/usr/local/bin:/usr/bin:/bin +.fi +.IP "" 0 +.P +Directories in \fBPATH\fR are searched from left to right, so a matching executable in a directory at the beginning of the list takes precedence over another one at the end\. In this example, the \fB/usr/local/bin\fR directory will be searched first, then \fB/usr/bin\fR, then \fB/bin\fR\. +.SS "Understanding Shims" +pyenv works by inserting a directory of \fIshims\fR at the front of your \fBPATH\fR: +.IP "" 4 +.nf +$(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin +.fi +.IP "" 0 +.P +Through a process called \fIrehashing\fR, pyenv maintains shims in that directory to match every Python command (\fBpython\fR,\fBpip\fR,etc...) across every installed version of Python +.P +Shims are lightweight executables that simply pass your command along to pyenv\. So with pyenv installed, when you run, say, \fBpip\fR, your operating system will do the following: +.IP \(bu 4 +Search your \fBPATH\fR for an executable file named \fBpip\fR +.IP \(bu 4 +Find the pyenv shim named \fBpip\fR at the beginning of your \fBPATH\fR +.IP \(bu 4 +Run the shim named \fBpip\fR, which in turn passes the command along to pyenv +.IP "" 0 +.SS "Choosing the Python Version" +When you execute a shim, pyenv determines which Python version to use by reading it from the following sources, in this order: +.IP "1." 4 +The \fBPYENV_VERSION\fR environment variable (if specified)\. You can use the \fBpyenv shell\fR command to set this environment variable in your current shell session\. +.IP "2." 4 +The application\-specific \fB\.python\-version\fR file in the current directory (if present)\. You can modify the current directory's \fB\.python\-version\fR file with the \fBpyenv local\fR command\. +.IP "3." 4 +The first \fB\.python\-version\fR file found (if any) by searching each parent directory, until reaching the root of your filesystem\. +.IP "4." 4 +The global \fB$(pyenv root)/version\fR file\. You can modify this file using the \fBpyenv global\fR command\. If the global version file is not present, pyenv assumes you want to use the "system" Python\. (In other words, whatever version would run if pyenv weren't in your \fBPATH\fR\.) +.IP "" 0 +.P +.nh +\fBNOTE:\fR You can activate multiple versions at the same time, including multiple versions of Python2 or Python3 simultaneously\. This allows for parallel usage of Python2 and Python3, and is required with tools like \fBtox\fR\. For example, to set your path to first use your \fBsystem\fR Python and Python3 (set to 2\.7\.9 and 3\.4\.2 in this example), but also have Python 3\.3\.6, 3\.2, and 2\.5 available on your \fBPATH\fR, one would first \fBpyenv install\fR the missing versions, then set \fBpyenv global system 3\.3\.6 3\.2 2\.5\fR\. At this point, one should be able to find the full executable path to each of these using \fBpyenv which\fR, e\.g\. \fBpyenv which python2\.5\fR (should display \fB$(pyenv root)/versions/2\.5/bin/python2\.5\fR), or \fBpyenv which python3\.4\fR (should display path to system Python3)\. You can also specify multiple versions in a \fB\.python\-version\fR file, separated by newlines or any whitespace\. +hy +.SS "Locating the Python Installation" +Once pyenv has determined which version of Python your application has specified, it passes the command along to the corresponding Python installation\. +.P +Each Python version is installed into its own directory under +.nf +\fB$(pyenv root)/versions\fR\. +.fi +.P +For example, you might have these versions installed: +.IP \(bu 4 +\fB$(pyenv root)/versions/2\.7\.8/\fR +.IP \(bu 4 +\fB$(pyenv root)/versions/3\.4\.2/\fR +.IP \(bu 4 +\fB$(pyenv root)/versions/pypy\-2\.4\.0/\fR +.IP "" 0 +.P +As far as pyenv is concerned, version names are simply the directories in \fB$(pyenv root)/versions\fR\. +.SS "Managing Virtual Environments" +There is a pyenv plugin named pyenv\-virtualenv which comes with various features to help pyenv users to manage virtual environments created by virtualenv or Anaconda\. Because the \fBactivate\fR script of those virtual environments are relying on mutating \fB$PATH\fR variable of user's interactive shell, it will intercept pyenv's shim style command execution hooks\. We'd recommend to install pyenv\-virtualenv as well if you have some plan to play with those virtual environments\. + +.SH "Advanced Configuration" +Skip this section unless you must know what every line in your shell profile is doing\. +.P +\fBpyenv init\fR is the only command that crosses the line of loading extra commands into your shell\. Coming from rvm, some of you might be opposed to this idea\. Here's what \fBpyenv init\fR actually does: +.IP "1." 4 +\fBSets up your shims path\.\fR This is the only requirement for pyenv to function properly\. You can do this by hand by prepending \fB$(pyenv root)/shims\fR to your \fB$PATH\fR\. +.IP "2." 4 +\fBRehashes shims\.\fR From time to time you'll need to rebuild your shim files\. Doing this on init makes sure everything is up to date\. You can always run \fBpyenv rehash\fR manually\. +.IP "3." 4 +\fBInstalls the sh dispatcher\.\fR This bit is also optional, but allows pyenv and plugins to change variables in your current shell, making commands like \fBpyenv shell\fR possible\. The sh dispatcher doesn't do anything crazy like override \fBcd\fR or hack your shell prompt, but if for some reason you need \fBpyenv\fR to be a real script rather than a shell function, you can safely skip it\. +.IP "" 0 +.P +To see exactly what happens under the hood for yourself, run \fB"pyenv init \-"\fR\. +.SH "Uninstalling Python Versions" +As time goes on, you will accumulate Python versions in your \fB$(pyenv root)/versions\fR directory\. +.P +To remove old Python versions, \fBpyenv uninstall\fR command to automate the removal process\. +.P +Alternatively, simply \fBrm \-rf\fR the directory of the version you want to remove\. You can find the directory of a particular Python version with the \fBpyenv prefix\fR command, +.P +e\.g\. \fBpyenv prefix 2\.6\.8\fR\. +.SH "Command Reference" +.P +The most common subcommands are: +.SS "pyenv commands" +Lists all available pyenv commands\. +.SS "pyenv local" +Sets a local application\-specific Python version by writing the version name to a \fB\.python\-version\fR file in the current directory\. This version overrides the global version, and can be overridden itself by setting the \fBPYENV_VERSION\fR environment variable or with the \fBpyenv shell\fR command\. +.IP "" 4 +.nf +$ pyenv local 2\.7\.6 +.fi +.IP "" 0 +.P +When run without a version number, \fBpyenv local\fR reports the currently configured local version\. You can also unset the local version: +.IP "" 4 +.nf +$ pyenv local \-\-unset +.fi +.IP "" 0 +.P +Previous versions of pyenv stored local version specifications in a file named \fB\.pyenv\-version\fR\. For backwards compatibility, pyenv will read a local version specified in an \fB\.pyenv\-version\fR file, but a \fB\.python\-version\fR file in the same directory will take precedence\. +.P +You can specify multiple versions as local Python at once\. +.P +Let's say if you have two versions of 2\.7\.6 and 3\.3\.3\. If you prefer 2\.7\.6 over 3\.3\.3, +.IP "" 4 +.nf +$ pyenv local 2\.7\.6 3\.3\.3 +$ pyenv versions + system +* 2\.7\.6 (set by /Users/yyuu/path/to/project/\.python\-version) +* 3\.3\.3 (set by /Users/yyuu/path/to/project/\.python\-version) +$ python \-\-version +Python 2\.7\.6 +$ python2\.7 \-\-version +Python 2\.7\.6 +$ python3\.3 \-\-version +Python 3\.3\.3 +.fi +.IP "" 0 +.P +or, if you prefer 3\.3\.3 over 2\.7\.6, +.IP "" 4 +.nf +$ pyenv local 3\.3\.3 2\.7\.6 +$ pyenv versions + system +* 2\.7\.6 (set by /Users/yyuu/path/to/project/\.python\-version) +* 3\.3\.3 (set by /Users/yyuu/path/to/project/\.python\-version) + venv27 +$ python \-\-version +Python 3\.3\.3 +$ python2\.7 \-\-version +Python 2\.7\.6 +$ python3\.3 \-\-version +Python 3\.3\.3 +.fi +.IP "" 0 +.SS "pyenv global" +Sets the global version of Python to be used in all shells by writing the version name to the \fB~/\.pyenv/version\fR file\. This version can be overridden by an application\-specific \fB\.python\-version\fR file, or by setting the \fBPYENV_VERSION\fR environment variable\. +.IP "" 4 +.nf +$ pyenv global 2\.7\.6 +.fi +.IP "" 0 +.P +The special version name \fBsystem\fR tells pyenv to use the system Python (detected by searching your \fB$PATH\fR)\. +.P +When run without a version number, \fBpyenv global\fR reports the currently configured global version\. +.P +You can specify multiple versions as global Python at once\. +.P +Let's say if you have two versions of 2\.7\.6 and 3\.3\.3\. If you prefer 2\.7\.6 over 3\.3\.3, +.IP "" 4 +.nf +$ pyenv global 2\.7\.6 3\.3\.3 +$ pyenv versions + system +* 2\.7\.6 (set by /Users/yyuu/\.pyenv/version) +* 3\.3\.3 (set by /Users/yyuu/\.pyenv/version) +$ python \-\-version +Python 2\.7\.6 +$ python2\.7 \-\-version +Python 2\.7\.6 +$ python3\.3 \-\-version +Python 3\.3\.3 +.fi +.IP "" 0 +.P +or, if you prefer 3\.3\.3 over 2\.7\.6, +.IP "" 4 +.nf +$ pyenv global 3\.3\.3 2\.7\.6 +$ pyenv versions + system +* 2\.7\.6 (set by /Users/yyuu/\.pyenv/version) +* 3\.3\.3 (set by /Users/yyuu/\.pyenv/version) + venv27 +$ python \-\-version +Python 3\.3\.3 +$ python2\.7 \-\-version +Python 2\.7\.6 +$ python3\.3 \-\-version +Python 3\.3\.3 +.fi +.IP "" 0 +.SS "pyenv shell" +Sets a shell\-specific Python version by setting the \fBPYENV_VERSION\fR environment variable in your shell\. This version overrides application\-specific versions and the global version\. +.IP "" 4 +.nf +$ pyenv shell pypy\-2\.2\.1 +.fi +.IP "" 0 +.P +When run without a version number, \fBpyenv shell\fR reports the current value of \fBPYENV_VERSION\fR\. You can also unset the shell version: +.IP "" 4 +.nf +$ pyenv shell \-\-unset +.fi +.IP "" 0 +.P +Note that you'll need pyenv's shell integration enabled (step 3 of the installation instructions) in order to use this command\. If you prefer not to use shell integration, you may simply set the \fBPYENV_VERSION\fR variable yourself: +.IP "" 4 +.nf +$ export PYENV_VERSION=pypy\-2\.2\.1 +.fi +.IP "" 0 +.P +You can specify multiple versions via \fBPYENV_VERSION\fR at once\. +.P +Let's say if you have two versions of 2\.7\.6 and 3\.3\.3\. If you prefer 2\.7\.6 over 3\.3\.3, +.IP "" 4 +.nf +$ pyenv shell 2\.7\.6 3\.3\.3 +$ pyenv versions + system +* 2\.7\.6 (set by PYENV_VERSION environment variable) +* 3\.3\.3 (set by PYENV_VERSION environment variable) +$ python \-\-version +Python 2\.7\.6 +$ python2\.7 \-\-version +Python 2\.7\.6 +$ python3\.3 \-\-version +Python 3\.3\.3 +.fi +.IP "" 0 +.P +or, if you prefer 3\.3\.3 over 2\.7\.6, +.IP "" 4 +.nf +$ pyenv shell 3\.3\.3 2\.7\.6 +$ pyenv versions + system +* 2\.7\.6 (set by PYENV_VERSION environment variable) +* 3\.3\.3 (set by PYENV_VERSION environment variable) + venv27 +$ python \-\-version +Python 3\.3\.3 +$ python2\.7 \-\-version +Python 2\.7\.6 +$ python3\.3 \-\-version +Python 3\.3\.3 +.fi +.IP "" 0 +.SS "pyenv install" +Install a Python version +.IP "" 4 +.nf +Usage: pyenv install [\-f] [\-kvp] + pyenv install [\-f] [\-kvp] + pyenv install \-l|\-\-list + + \-l, \-\-list List all available versions + \-f, \-\-force Install even if the version appears to be installed + already + \-s, \-\-skip\-existing Skip the installation if the version appears to be + installed already + + python\-build options: + + \-k, \-\-keep Keep source tree in $PYENV_BUILD_ROOT after installation + (defaults to $PYENV_ROOT/sources) + \-v, \-\-verbose Verbose mode: print compilation status to stdout + \-p, \-\-patch Apply a patch from stdin before building + \-g, \-\-debug Build a debug version +.fi +.IP "" 0 +.P +To list the all available versions of Python, including Anaconda, Jython, pypy, and stackless, use: +.IP "" 4 +.nf +$ pyenv install \-\-list +.fi +.IP "" 0 +.P +Then install the desired versions: +.IP "" 4 +.nf +$ pyenv install 2\.7\.6 +$ pyenv install 2\.6\.8 +$ pyenv versions + system + 2\.6\.8 +* 2\.7\.6 (set by /home/yyuu/\.pyenv/version) +.fi +.IP "" 0 +.SS "pyenv uninstall" +Uninstall a specific Python version\. +.IP "" 4 +.nf +Usage: pyenv uninstall [\-f|\-\-force] + + \-f Attempt to remove the specified version without prompting + for confirmation\. If the version does not exist, do not + display an error message\. +.fi +.IP "" 0 +.SS "pyenv rehash" +Installs shims for all Python binaries known to pyenv (i\.e\., \fB~/\.pyenv/versions/*/bin/*\fR)\. Run this command after you install a new version of Python, or install a package that provides binaries\. +.IP "" 4 +.nf +$ pyenv rehash +.fi +.IP "" 0 +.SS "pyenv version" +Displays the currently active Python version, along with information on how it was set\. +.IP "" 4 +.nf +$ pyenv version +2\.7\.6 (set by /home/yyuu/\.pyenv/version) +.fi +.IP "" 0 +.SS "pyenv versions" +Lists all Python versions known to pyenv, and shows an asterisk next to the currently active version\. +.IP "" 4 +.nf +$ pyenv versions + 2\.5\.6 + 2\.6\.8 +* 2\.7\.6 (set by /home/yyuu/\.pyenv/version) + 3\.3\.3 + jython\-2\.5\.3 + pypy\-2\.2\.1 +.fi +.IP "" 0 +.SS "pyenv which" +Displays the full path to the executable that pyenv will invoke when you run the given command\. +.IP "" 4 +.nf +$ pyenv which python3\.3 +/home/yyuu/\.pyenv/versions/3\.3\.3/bin/python3\.3 +.fi +.IP "" 0 +.SS "pyenv whence" +Lists all Python versions with the given command installed\. +.IP "" 4 +.nf +$ pyenv whence 2to3 +2\.6\.8 +2\.7\.6 +3\.3\.3 +.fi +.IP "" 0 +.SH "Environment variables" +You can affect how pyenv operates with the following settings: +.TP 28 +.B name (default) +.B description +.TP 28 +.B PYENV_VERSION +Specifies the Python version to be used. Also see \fBpyenv shell\fR +.TP +.B PYENV_ROOT (\fB~/.pyenv\fR) +Defines the directory under which Python versions and shims reside. Also see \fBpyenv root\fR +.TP +.B PYENV_DEBUG +Outputs debug information. +.br +Also as: \fBpyenv --debug \fR +.TP +.B PYENV_HOOK_PATH +Colon\-separated list of paths searched for pyenv hooks\. +.TP +.B PYENV_DIR (\fB$PWD\fR) +Directory to start searching for \fB\.python\-version\fR files\. +.TP +.B HTTP_PROXY,HTTPS_PROXY +Proxy Variables +.TP +.B CONFIGURE_OPTS +Pass configure options to build. +.TP +.B PYTHON_BUILD_ARIA2_OPTS +Used to pass additional parameters to \fBaria2\fR +.UR https://aria2\.github\.io/ +.UE +If the \fBaria2c\fR binary is available on PATH, pyenv uses \fBaria2c\fR instead of \fBcurl\fR or \fBwget\fR to download the Python Source code\. If you have an unstable internet connection, you can use this variable to instruct \fBaria2\fR to accelerate the download\. +In most cases, you will only need to use \fB\-x 10 \-k 1M\fR as value to \fBPYTHON_BUILD_ARIA2_OPTS\fR environment variable +.SH "License" +The \fBMIT\fR License From bfb5e0ec1e4c9b3442d0210c5ee919837348f165 Mon Sep 17 00:00:00 2001 From: Luke Plant Date: Tue, 26 Jan 2021 09:37:19 +0300 Subject: [PATCH 0057/1324] README section on using pyenv without "pyenv init" --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index f4796a7c3b..a8362bd14c 100644 --- a/README.md +++ b/README.md @@ -364,6 +364,11 @@ opposed to this idea. Here's what `pyenv init` actually does: To see exactly what happens under the hood for yourself, run `pyenv init -`. +If you don't want to use `pyenv init` and shims, you can still benefit +from pyenv's ability to install Python versions for you. Just run +`pyenv install` and you will find versions installed in +`$(pyenv root)/versions`, which you can manually execute or symlink +as required. ### Uninstalling Python Versions From 189afa88c65b6c524b9ccaf3e441b20f9ad7a000 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 10:10:06 +0100 Subject: [PATCH 0058/1324] Fix get-pip which dropped support for legacy Python Fix pyenv to continue to support legacy Python builds despite the fact that `get-pip` has dropped support for Python 2 as discussed in pypa/get-pip#87 --- plugins/python-build/bin/python-build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 043cc4f167..8a1be8446f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2090,6 +2090,9 @@ if [ -z "${GET_PIP_URL}" ]; then 2.6 | 2.6.* ) GET_PIP_URL="https://bootstrap.pypa.io/2.6/get-pip.py" ;; + 2.7 | 2.7.* ) + GET_PIP_URL="https://bootstrap.pypa.io/2.7/get-pip.py" + ;; 3.2 | 3.2.* ) GET_PIP_URL="https://bootstrap.pypa.io/3.2/get-pip.py" ;; From 93025e9aa47b89aa98dd919cf4a1f327cd07a5cf Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 10:31:16 +0100 Subject: [PATCH 0059/1324] Also fix Python 3.4 and 3.5 which do not support f-strings --- plugins/python-build/bin/python-build | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 8a1be8446f..d7c41d55be 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2099,6 +2099,12 @@ if [ -z "${GET_PIP_URL}" ]; then 3.3 | 3.3.* ) GET_PIP_URL="https://bootstrap.pypa.io/3.3/get-pip.py" ;; + 3.4 | 3.4.* ) + GET_PIP_URL="https://bootstrap.pypa.io/3.4/get-pip.py" + ;; + 3.5 | 3.5.* ) + GET_PIP_URL="https://bootstrap.pypa.io/3.5/get-pip.py" + ;; * ) GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py" ;; From c0ea15226d5de8cd5025cc3db60e226da1251218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 5 Dec 2020 18:08:16 +0200 Subject: [PATCH 0060/1324] rehash: try to sleep in 0.1 sec steps when acquiring lock --- libexec/pyenv-rehash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 5c421c41e5..33b7e23362 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -45,8 +45,8 @@ for (( i=1; i<="${PYENV_REHASH_TIMEOUT:-60}"; i++ )); do acquired=1 break else - # POSIX sleep(1) doesn't provides time precision of subsecond - sleep 1 + # POSIX sleep(1) doesn't provide subsecond precision, but many others do + sleep 0.1 2>/dev/null || sleep 1 fi done From b938abdea1480496fa5b402783539b16bbfb86d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 9 Jan 2021 10:21:11 +0200 Subject: [PATCH 0061/1324] rehash: preserve existing $PYENV_REHASH_TIMEOUT semantics Try for that long no matter what the sleep step available is. --- libexec/pyenv-rehash | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 33b7e23362..4e31994ec4 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -40,7 +40,8 @@ if [ ! -w "$SHIM_PATH" ]; then fi unset acquired -for (( i=1; i<="${PYENV_REHASH_TIMEOUT:-60}"; i++ )); do +start=$SECONDS +while (( SECONDS <= start + ${PYENV_REHASH_TIMEOUT:-60} )); do if acquire_lock 2>/dev/null; then acquired=1 break From ef3b5072cef923e84773271e5de31a2be5e6f191 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 29 Jan 2021 12:00:28 +0300 Subject: [PATCH 0062/1324] Delete pypy3.7-7.3.2 The file was in the wrong location! --- plugins/python-build/pypy3.7-7.3.2 | 39 ------------------------------ 1 file changed, 39 deletions(-) delete mode 100644 plugins/python-build/pypy3.7-7.3.2 diff --git a/plugins/python-build/pypy3.7-7.3.2 b/plugins/python-build/pypy3.7-7.3.2 deleted file mode 100644 index e8c5a49dc0..0000000000 --- a/plugins/python-build/pypy3.7-7.3.2 +++ /dev/null @@ -1,39 +0,0 @@ -VERSION='7.3.2' -PYVER='3.7' - -case "$(pypy_architecture 2>/dev/null || true)" in -"linux" ) - install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#34c7e1c7bd06e437ad43cc90a20f9444be1f0a264d0955e32098294c30274784" "pypy" "verify_py${PYVER//./}" ensurepip - ;; -"linux64" ) - install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#a285ddcbc909d68c648585fae4f33b0ba24961bb4e8fafe5874cf725d6e83df6" "pypy" "verify_py${PYVER//./}" ensurepip - ;; -"linux-aarch64" ) - install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#c5c35a37917f759c19e2a6b3df3b4d56298faa2fae83c143469bcbda42ca5dd2" "pypy" "verify_py${PYVER//./}" ensurepip - ;; -"osx64" ) - if require_osx_version "10.13"; then - install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#337dd4d9e529d2f221e0beb092236c18430e0564ab835c6bba425a1daf7c9958" "pypy" "verify_py${PYVER//./}" ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." - echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." - echo - } >&2 - exit 1 - fi - ;; -"win32" ) - install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#e3c589be07760bc3042981c379b7fd1603e832a4db426075f09e090473846a96" "pypy" "verify_py${PYVER//./}" ensurepip - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." - echo - } >&2 - exit 1 - ;; -esac From d40aa12a279ce2b9a2cac6bfda517a86633d79ed Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 29 Jan 2021 12:07:45 +0300 Subject: [PATCH 0063/1324] Create pypy3.6-7.3.2 PyPy 3.6 version 7.3.2 --- .../share/python-build/pypy3.6-7.3.2 | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.6-7.3.2 diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.2 b/plugins/python-build/share/python-build/pypy3.6-7.3.2 new file mode 100644 index 0000000000..bf2bbc65e2 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.2 @@ -0,0 +1,39 @@ +VERSION='7.3.2' +PYVER='3.6' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#6fa871dedf5e60372231362d2ccb0f28f623d42267cabb49be11a3e10bee2726" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#d7a91f179076aaa28115ffc0a81e46c6a787785b2bc995c926fe3b02f0e9ad83" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#164d6a0503c83dd328e1a6bf7fcb2b2e977c1d27c6fcc491a7174fd37bc32a12" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#fd457bfeaf54aa69417b6aa4817df40e702dc8aaaf7e83ba005d391a1bddfa96" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#13a39d46340afed20f11de24e9068968386e4bb7c8bd168662711916e2bf1da6" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac From 6077d64b713dbb7c427a28600d566eee304a06d8 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 29 Jan 2021 12:11:22 +0300 Subject: [PATCH 0064/1324] Create pypy3.6-7.3.2-src PyPy version 3.6-7.3.2-src --- plugins/python-build/share/python-build/pypy3.6-7.3.2-src | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.6-7.3.2-src diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.2-src b/plugins/python-build/share/python-build/pypy3.6-7.3.2-src new file mode 100644 index 0000000000..2f5df00965 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.2-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy3.6-v7.3.2-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.2-src.tar.bz2#fd6175fed63ff9fccd7886068078853078948d98afae9bd4f5554c6f7873c10d" "pypy_builder" verify_py36 ensurepip From 09ca07981d9cc27f63392a58e3fb65ec26f7c8b3 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 29 Jan 2021 12:16:06 +0300 Subject: [PATCH 0065/1324] Create pypy3.6-7.3.3 PyPy version 3.6-7.3.3 --- .../share/python-build/pypy3.6-7.3.3 | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.6-7.3.3 diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.3 b/plugins/python-build/share/python-build/pypy3.6-7.3.3 new file mode 100644 index 0000000000..78983728d5 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.3 @@ -0,0 +1,39 @@ +VERSION='7.3.3' +PYVER='3.6' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#f183c61e66fd2c536a65695bd7ff770748c2884c235a589b9c6ac63690770c69" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#4fb85fdd516482cab727bb9473b066ff8fb672940dedf7ccc32bf92957d29e0a" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#bc82cf7f0182b942a2cfad4a0d167f364bfbf18f434e100a2fe62bc88547ac9b" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#84126fcb957f260de221244222152c981643144df1d817329781f555daa52e35" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#b935253877b703d29b1b11f79e66944f1f88adb8a76f871abf765d4de9d25f8a" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac From fdd61c29e6d76b27fe7e675d2d0c5193ecf4385b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 29 Jan 2021 12:18:07 +0300 Subject: [PATCH 0066/1324] Create pypy3.6-7.3.3-src PyPy version 3.6-7.3.3-src --- plugins/python-build/share/python-build/pypy3.6-7.3.3-src | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.6-7.3.3-src diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.3-src b/plugins/python-build/share/python-build/pypy3.6-7.3.3-src new file mode 100644 index 0000000000..e353a88ee6 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.3-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy3.6-v7.3.3-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.3-src.tar.bz2#a23d21ca0de0f613732af4b4abb0b0db1cc56134b5bf0e33614eca87ab8805af" "pypy_builder" verify_py36 ensurepip From cdecf1453555b22d22a8f88a9bcce71244855042 Mon Sep 17 00:00:00 2001 From: Harish Rajagopal Date: Fri, 29 Jan 2021 13:00:14 +0100 Subject: [PATCH 0067/1324] Added fallback to system executable If pyenv doesn't find an executable for the current version/virtualenv, then search the "system" version as a fallback. --- libexec/pyenv-which | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 2279347274..a7a1264acf 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -39,7 +39,7 @@ OLDIFS="$IFS" IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)}) IFS="$OLDIFS" -for version in "${versions[@]}"; do +for version in "${versions[@]}" "system"; do if [ "$version" = "system" ]; then PATH="$(remove_from_path "${PYENV_ROOT}/shims")" PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)" From a80488730710eeec85e20e1e054a8efe9052df4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 5 Dec 2020 14:36:52 +0200 Subject: [PATCH 0068/1324] rehash: use associative array to hold registered shims MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "hyperfine pyenv-rehash" before on my bash 4.4: Time (mean ± σ): 172.8 ms ± 8.2 ms [User: 185.0 ms, System: 24.8 ms] Range (min … max): 164.2 ms … 198.4 ms 15 runs After: Time (mean ± σ): 113.8 ms ± 2.8 ms [User: 127.1 ms, System: 26.1 ms] Range (min … max): 108.0 ms … 117.6 ms 25 runs --- libexec/pyenv-rehash | 78 ++++++++++++++++++++++++++++++-------------- 1 file changed, 53 insertions(+), 25 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 4e31994ec4..0ca0f27664 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -123,34 +123,62 @@ make_shims() { done } -registered_shims=" " +if ((${BASH_VERSINFO[0]} > 3)); then -# Registers the name of a shim to be generated. -register_shim() { - registered_shims="${registered_shims}${1} " -} + declare -A registered_shims -# Install all the shims registered via `make_shims` or `register_shim` directly. -install_registered_shims() { - local shim file - for shim in $registered_shims; do - file="${SHIM_PATH}/${shim}" - [ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file" - done -} + # Registers the name of a shim to be generated. + register_shim() { + registered_shims["$1"]=1 + } -# Once the registered shims have been installed, we make a second pass -# over the contents of the shims directory. Any file that is present -# in the directory but has not been registered as a shim should be -# removed. -remove_stale_shims() { - local shim - for shim in "$SHIM_PATH"/*; do - if [[ "$registered_shims" != *" ${shim##*/} "* ]]; then - rm -f "$shim" - fi - done -} + # Install all shims registered via `make_shims` or `register_shim` directly. + install_registered_shims() { + local shim file + for shim in "${!registered_shims[@]}"; do + file="${SHIM_PATH}/${shim}" + [ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file" + done + } + + # Once the registered shims have been installed, we make a second pass + # over the contents of the shims directory. Any file that is present + # in the directory but has not been registered as a shim should be + # removed. + remove_stale_shims() { + local shim + for shim in "$SHIM_PATH"/*; do + if [[ ! ${registered_shims["${shim##*/}"]} ]]; then + rm -f "$shim" + fi + done + } + +else # Same for bash < 4. + + registered_shims=" " + + register_shim() { + registered_shims="${registered_shims}${1} " + } + + install_registered_shims() { + local shim file + for shim in $registered_shims; do + file="${SHIM_PATH}/${shim}" + [ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file" + done + } + + remove_stale_shims() { + local shim + for shim in "$SHIM_PATH"/*; do + if [[ "$registered_shims" != *" ${shim##*/} "* ]]; then + rm -f "$shim" + fi + done + } +fi shopt -s nullglob From c4e556ededaff1110ced3e0a091caf83c88174f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 5 Dec 2020 15:09:46 +0200 Subject: [PATCH 0069/1324] versions: use associative array to hold current versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit "hyperfine pyenv-versions" before with my bash 4.4: Time (mean ± σ): 81.7 ms ± 2.2 ms [User: 67.8 ms, System: 15.7 ms] Range (min … max): 78.3 ms … 87.2 ms 34 runs After: Time (mean ± σ): 70.6 ms ± 2.4 ms [User: 55.6 ms, System: 16.9 ms] Range (min … max): 67.9 ms … 78.9 ms 41 runs --- libexec/pyenv-versions | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 019c0e906c..91c9951295 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -64,16 +64,27 @@ if [ -d "$versions_dir" ]; then versions_dir="$(realpath "$versions_dir")" fi +if ((${BASH_VERSINFO[0]} > 3)); then + declare -A current_versions +else + current_versions=() +fi if [ -n "$bare" ]; then hit_prefix="" miss_prefix="" - current_versions=() include_system="" else hit_prefix="* " miss_prefix=" " OLDIFS="$IFS" - IFS=: current_versions=($(pyenv-version-name || true)) + IFS=: + if ((${BASH_VERSINFO[0]} > 3)); then + for i in $(pyenv-version-name || true); do + current_versions["$i"]="1" + done + else + current_versions=($(pyenv-version-name || true)) + fi IFS="$OLDIFS" include_system="1" fi @@ -93,7 +104,9 @@ exists() { } print_version() { - if exists "$1" "${current_versions[@]}"; then + if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then + echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" + elif (( ${BASH_VERSINFO[0]} < 3 )) && exists "$1" "${current_versions[@]}"; then echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" else echo "${miss_prefix}$1" From 4c3f2cce3e232fbd70221c414f4d2d493c0d74b9 Mon Sep 17 00:00:00 2001 From: Earl Chew Date: Sat, 6 Feb 2021 10:14:47 -0800 Subject: [PATCH 0070/1324] [python-build] Support PYENV_DEBUG fixes #1805 --- plugins/python-build/bin/python-build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 043cc4f167..f3414bbc80 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -19,6 +19,8 @@ PYTHON_BUILD_VERSION="20180424" OLDIFS="$IFS" set -E +[ -n "$PYENV_DEBUG" ] && set -x + exec 3<&2 # preserve original stderr at fd 3 From a2350d3d9ddbecd85424d77ba268da2180606e2a Mon Sep 17 00:00:00 2001 From: acethical Date: Wed, 10 Feb 2021 11:31:02 +0900 Subject: [PATCH 0071/1324] fix: error link --- plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 index 058e0c118c..dd21323205 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 @@ -6,7 +6,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Miniconda3-py39_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh#b4e46fcc8029e2cfa731b788f25b1d36" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py39_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.8.3-MacOSX-x86_64.sh#0658832393a50f5a578bcad825304886" "miniconda" verify_py39 + install_script "Miniconda3-py39_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-MacOSX-x86_64.sh#0658832393a50f5a578bcad825304886" "miniconda" verify_py39 ;; * ) { echo From 930905086410c6426d563ad93ef2ea3f76b57211 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 10 Feb 2021 22:42:18 +0300 Subject: [PATCH 0072/1324] Use a better PS4 as recommeneded by Bash Hackers Wiki it allows to see functions as well as lines, therefore making it possible to see the control flow --- libexec/pyenv | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv b/libexec/pyenv index 93debeaecf..443bf550b2 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -7,7 +7,8 @@ if [ "$1" = "--debug" ]; then fi if [ -n "$PYENV_DEBUG" ]; then - export PS4='+ [${BASH_SOURCE##*/}:${LINENO}] ' + # https://wiki-dev.bash-hackers.org/scripting/debuggingtips#making_xtrace_more_useful + export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' set -x fi From 1158adbb2f27450403618b20d50b6946ac5b7b2f Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 11 Feb 2021 21:11:06 +0300 Subject: [PATCH 0073/1324] Create 3.10.0a5 --- plugins/python-build/share/python-build/3.10.0a5 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.0a5 diff --git a/plugins/python-build/share/python-build/3.10.0a5 b/plugins/python-build/share/python-build/3.10.0a5 new file mode 100644 index 0000000000..650adec4e3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.0a5 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1h" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1h.tar.gz#5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9" 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-3.10.0a5" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a5.tar.xz#0418e57e7036e219f1e6b6303b21e711f64cfd0fddb0894d8f19f37afffc5d4d" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.10.0a5" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a5.tgz#5799026acafeeac9f583bfae81048e4515304ba04c46e1cc602caf0e5e67b0f7" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi From 00f7d6249a3f1c07c29fe494cbb9774c4f358dc7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 14 Feb 2021 15:50:36 +0300 Subject: [PATCH 0074/1324] Fix not printing asterisk for current version in Bash 3 --- libexec/pyenv-versions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 47d0898e6f..2fda7e0b91 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -106,7 +106,7 @@ exists() { print_version() { if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" - elif (( ${BASH_VERSINFO[0]} < 3 )) && exists "$1" "${current_versions[@]}"; then + elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" else echo "${miss_prefix}$1" From e44490c63929c7f2f88d0d216cbaba4bbbf22d3e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 16 Feb 2021 23:46:08 +0300 Subject: [PATCH 0075/1324] Revert "add tests for `PYENV_FILE_ARG`" This reverts commit 438e828eb507536eebe42adee3e896bceb165d8c. # Conflicts: # test/pyenv_ext.bats --- test/pyenv_ext.bats | 25 ------------------------- 1 file changed, 25 deletions(-) diff --git a/test/pyenv_ext.bats b/test/pyenv_ext.bats index 4a3a4a8fc3..cc138cbe09 100644 --- a/test/pyenv_ext.bats +++ b/test/pyenv_ext.bats @@ -12,28 +12,3 @@ load test_helper PYENV_VERSION="2.7.10:system" run pyenv-prefix assert_success "${PYENV_ROOT}/versions/2.7.10:${PYENV_TEST_DIR}" } - -@test "should use dirname of file argument as PYENV_DIR" { - mkdir -p "${PYENV_TEST_DIR}/dir1" - touch "${PYENV_TEST_DIR}/dir1/file.py" - PYENV_FILE_ARG="${PYENV_TEST_DIR}/dir1/file.py" run pyenv echo PYENV_DIR - assert_output "${PYENV_TEST_DIR}/dir1" -} - -@test "should follow symlink of file argument (#379, #404)" { - mkdir -p "${PYENV_TEST_DIR}/dir1" - mkdir -p "${PYENV_TEST_DIR}/dir2" - touch "${PYENV_TEST_DIR}/dir1/file.py" - ln -s "${PYENV_TEST_DIR}/dir1/file.py" "${PYENV_TEST_DIR}/dir2/symlink.py" - PYENV_FILE_ARG="${PYENV_TEST_DIR}/dir2/symlink.py" run pyenv echo PYENV_DIR - assert_output "${PYENV_TEST_DIR}/dir1" -} - -@test "should handle relative symlinks for file argument (#580)" { - mkdir -p "${PYENV_TEST_DIR}" - cd "${PYENV_TEST_DIR}" - touch file.py - ln -s file.py symlink.py - PYENV_FILE_ARG="symlink.py" run pyenv echo PYENV_DIR - assert_output "${PYENV_TEST_DIR}" -} From a6b0a2846ee62da74b95bee2fca1d4c1f60eb979 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 16 Feb 2021 23:53:05 +0300 Subject: [PATCH 0076/1324] Revert "shims: handle symlinked scripts, via new PYENV_FILE_ARG" This reverts commit 493f036928b8ed9e456b2112475973e23b1ec330. # Conflicts: # libexec/pyenv --- libexec/pyenv | 18 ------------------ libexec/pyenv-rehash | 2 +- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index 93debeaecf..4d1a6c587f 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -61,24 +61,6 @@ else fi export PYENV_ROOT -# Transfer PYENV_FILE_ARG (from shims) into PYENV_DIR. -if [ -z "${PYENV_DIR}" ]; then - if [ -n "${PYENV_FILE_ARG}" ]; then - if [ -L "${PYENV_FILE_ARG}" ]; then - PYENV_DIR="$(abs_dirname "${PYENV_FILE_ARG}")" - else - PYENV_DIR="${PYENV_FILE_ARG%/*}" - fi - export PYENV_DIR - unset PYENV_FILE_ARG - fi -else - [[ $PYENV_DIR == /* ]] || PYENV_DIR="$PWD/$PYENV_DIR" - cd "$PYENV_DIR" 2>/dev/null || abort "cannot change working directory to \`$PYENV_DIR'" - PYENV_DIR="$PWD" - cd "$OLDPWD" -fi - if [ -z "${PYENV_DIR}" ]; then PYENV_DIR="$PWD" fi diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 5c421c41e5..094d61739b 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -73,7 +73,7 @@ if [[ "\$program" = "python"* ]]; then -c* | -- ) break ;; */* ) if [ -f "\$arg" ]; then - export PYENV_FILE_ARG="\$arg" + export PYENV_DIR="\${arg%/*}" break fi ;; From 131e44afcbe7ea09ae9f4e3f460ae8f19574507f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 16 Feb 2021 23:59:08 +0300 Subject: [PATCH 0077/1324] Remove the "Using script's directory as PYENV_DIR if shim is invoked with a script argument" feature It's impossible to 100% reliably extract the script argument from the command line for all and unknown Python versions and implementations --- libexec/pyenv-rehash | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 094d61739b..5fcb664601 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -67,19 +67,6 @@ set -e [ -n "\$PYENV_DEBUG" ] && set -x program="\${0##*/}" -if [[ "\$program" = "python"* ]]; then - for arg; do - case "\$arg" in - -c* | -- ) break ;; - */* ) - if [ -f "\$arg" ]; then - export PYENV_DIR="\${arg%/*}" - break - fi - ;; - esac - done -fi export PYENV_ROOT="$PYENV_ROOT" exec "$(command -v pyenv)" exec "\$program" "\$@" From c3405322869e9c36bfeaff93ee29609d1a71ae08 Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Wed, 17 Feb 2021 11:10:12 -0500 Subject: [PATCH 0078/1324] Add CPython v3.7.10. (#1818) --- plugins/python-build/share/python-build/3.7.10 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.7.10 diff --git a/plugins/python-build/share/python-build/3.7.10 b/plugins/python-build/share/python-build/3.7.10 new file mode 100644 index 0000000000..8f789cf2e3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.10 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz#f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tgz#c9649ad84dc3a434c8637df6963100b2e5608697f9ba56d82e3809e4148e0975" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +fi From f0f2e626f4f74dfe6d579f7ce8290b50dfed0cd8 Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Wed, 17 Feb 2021 11:11:41 -0500 Subject: [PATCH 0079/1324] Add CPython v3.6.13. (#1817) --- plugins/python-build/share/python-build/3.6.13 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.6.13 diff --git a/plugins/python-build/share/python-build/3.6.13 b/plugins/python-build/share/python-build/3.6.13 new file mode 100644 index 0000000000..6da4952f0a --- /dev/null +++ b/plugins/python-build/share/python-build/3.6.13 @@ -0,0 +1,9 @@ +#require_gcc +prefer_openssl11 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tar.xz#a47a43a53abb42286a2c11965343ff56711b9e64e8d11bf2c6701a4fb8ce1a0f" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tgz#614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip +fi From 9f12152463ad33cd9d792412bdb2984e40aac80b Mon Sep 17 00:00:00 2001 From: Mike Tigas Date: Wed, 17 Feb 2021 11:12:26 -0500 Subject: [PATCH 0080/1324] add `pypy3.7-c-jit-latest`. use https for buildbot.pypy.org URLs. (#1812) --- .../share/python-build/pypy3.7-c-jit-latest | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-c-jit-latest diff --git a/plugins/python-build/share/python-build/pypy3.7-c-jit-latest b/plugins/python-build/share/python-build/pypy3.7-c-jit-latest new file mode 100644 index 0000000000..e1e7fe6399 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-c-jit-latest @@ -0,0 +1,39 @@ +echo +colorize 1 "WARNING" +echo ": This may eat your kittens/ affect timespace in alternate dimensions/" +echo "cause you to complain more. Nightly builds are meant for testing only." +echo "Current pypy py3.7 development status:" +echo +echo "https://foss.heptapod.net/pypy/pypy/-/wikis/py3.7%20status" +echo +echo "for the latest status updates. To report bugs/regressions, please see:" +echo +echo "https://doc.pypy.org/en/latest/faq.html#how-should-i-report-a-bug" +echo + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_nightly_package "pypy-c-jit-latest-linux" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip + ;; +"linux64" ) + install_nightly_package "pypy3.7-c-jit-latest-linux64" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-linux64.tar.bz2" "pypy-c-jit-*-linux64" "pypy" verify_py35 ensurepip + ;; +"linux-aarch64" ) + install_nightly_package "pypy3.7-c-jit-latest-aarch64" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-aarch64.tar.bz2" "pypy-c-jit-*-aarch64" "pypy" verify_py35 ensurepip + ;; +"osx64" ) + install_nightly_package "pypy-c-jit-latest-osx64" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip + ;; +"win32" ) + install_zip "pypy-c-jit-latest-win32" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The latest nightly build of PyPy 3.7 is not available for $(pypy_architecture 2>/dev/null || true)," + echo "Please check https://buildbot.pypy.org/nightly/py3.7/ for previous builds." + echo + } >&2 + exit 1 + ;; +esac From d51999adf575f2c3d927e520011c7f104a06f72e Mon Sep 17 00:00:00 2001 From: tuzi3040 <28290621+tuzi3040@users.noreply.github.com> Date: Thu, 18 Feb 2021 00:12:45 +0800 Subject: [PATCH 0081/1324] Fix 'sed: RE error: illegal byte sequence' (#1714) ... by unsetting `LC_ALL` and passing `LC_CTYPE=C` to `sed`. This commit fixes issue #1454. --- libexec/pyenv-help | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-help b/libexec/pyenv-help index 0bf90abbda..c7ff6124ce 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -27,8 +27,8 @@ command_path() { } extract_initial_comment_block() { - LC_ALL=C - LANG=C + LC_ALL= \ + LC_CTYPE=C \ sed -ne " /^#/ !{ q From 5b4925633047d7125561865a33a9f71df4ef9919 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 17 Feb 2021 19:13:18 +0300 Subject: [PATCH 0082/1324] Fix download links for everything (incl. PyPy and Stackless) (#1692) * Update PyPy download links. Remove releases that are no longer available. PyPy has moved from bitbucket.org to foss.heptapod.net. Downloads have moved to https://downloads.python.org/pypy/; some of the archives are no longer available. Portable PyPy has moved from bitbucket.org to Github. Old archives have been moved to a 3rd-party "Bitbucket Archive" site. * Update Stackless download links. Remove releases that are no longer available. Stackless has moved from Bitbucket to Github. Old downloads have been renamed(?); stackless.com no longer works via HTTPS. * Delete releases that have become invalid since the last check * fix changed checksums --- .../python-build/share/python-build/pypy-1.5 | 24 --------- .../share/python-build/pypy-1.5-src | 2 +- .../share/python-build/pypy-2.3.1-src | 2 +- .../share/python-build/pypy-2.4.0 | 2 +- .../share/python-build/pypy-2.4.0-src | 2 +- .../share/python-build/pypy-2.5.0-src | 2 +- .../share/python-build/pypy-4.0.0 | 4 +- .../share/python-build/pypy-4.0.1 | 18 +++---- .../share/python-build/pypy-5.0.1 | 2 +- .../share/python-build/pypy-5.1.1 | 10 +--- .../share/python-build/pypy-c-jit-latest | 14 ++--- .../share/python-build/pypy-c-nojit-latest | 35 ------------- .../python-build/share/python-build/pypy-dev | 2 +- .../share/python-build/pypy2.7-6.0.0 | 9 +++- .../share/python-build/pypy3.5-5.10.1 | 2 +- .../share/python-build/pypy3.5-5.7-beta | 2 +- .../share/python-build/pypy3.5-5.8.0 | 2 +- .../share/python-build/pypy3.5-6.0.0 | 1 - .../share/python-build/pypy3.5-c-jit-latest | 52 +++++++++---------- .../share/python-build/stackless-2.7.10 | 2 +- .../share/python-build/stackless-2.7.11 | 2 +- .../share/python-build/stackless-2.7.12 | 2 +- .../share/python-build/stackless-2.7.2 | 2 +- .../share/python-build/stackless-2.7.3 | 2 +- .../share/python-build/stackless-2.7.4 | 2 +- .../share/python-build/stackless-2.7.5 | 2 +- .../share/python-build/stackless-2.7.6 | 2 +- .../share/python-build/stackless-2.7.7 | 2 +- .../share/python-build/stackless-2.7.8 | 2 +- .../share/python-build/stackless-2.7.9 | 2 +- .../share/python-build/stackless-3.2.2 | 2 +- .../share/python-build/stackless-3.2.5 | 2 +- .../share/python-build/stackless-3.3.5 | 2 +- .../share/python-build/stackless-3.4.1 | 4 -- .../share/python-build/stackless-3.4.2 | 2 +- 35 files changed, 78 insertions(+), 143 deletions(-) delete mode 100644 plugins/python-build/share/python-build/pypy-1.5 delete mode 100644 plugins/python-build/share/python-build/pypy-c-nojit-latest delete mode 100644 plugins/python-build/share/python-build/stackless-3.4.1 diff --git a/plugins/python-build/share/python-build/pypy-1.5 b/plugins/python-build/share/python-build/pypy-1.5 deleted file mode 100644 index 4533db6180..0000000000 --- a/plugins/python-build/share/python-build/pypy-1.5 +++ /dev/null @@ -1,24 +0,0 @@ -case "$(pypy_architecture 2>/dev/null || true)" in -"linux" ) - install_package "pypy-c-jit-43780-b590cf6de419-linux" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-linux.tar.bz2#a5a28457134a050bae59ee8d83cc65807bab10f0c7c3be547c6d9284f9a77989" "pypy" verify_py27 ensurepip - ;; -"linux64" ) - install_package "pypy-c-jit-43780-b590cf6de419-linux64" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-linux64.tar.bz2#880b7f9288a6046aff62ded61a4f432ccb45038daee526356afa311d14c010a9" "pypy" verify_py27 ensurepip - ;; -"osx64" ) - install_package "pypy-c-jit-43780-b590cf6de419-osx64" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-osx64.tar.bz2#87294182aeacf2597c2bde358ffd6810295214db8cf81b07340598bb03ac44f0" "pypy" verify_py27 ensurepip - ;; -"win32" ) - # FIXME: never tested on Windows - install_zip "pypy-1.5.0a0-win32" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-win32.zip#8ee727a9cfdc1957ced24a136a263279361efda73cc1354cc4877383565a4fe6" "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-1.5-src' to build from source." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/pypy-1.5-src b/plugins/python-build/share/python-build/pypy-1.5-src index 8598d585d7..bbd1ed4d93 100644 --- a/plugins/python-build/share/python-build/pypy-1.5-src +++ b/plugins/python-build/share/python-build/pypy-1.5-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-1.5-src" "https://bitbucket.org/pypy/pypy/downloads/pypy-1.5-src.tar.bz2" "pypy_builder" verify_py27 ensurepip +install_package "pypy-1.5-src" "https://foss.heptapod.net/pypy/pypy/-/archive/release-1.5/pypy-release-1.5.tar.gz" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3.1-src b/plugins/python-build/share/python-build/pypy-2.3.1-src index b7cbad1004..2e120b8880 100644 --- a/plugins/python-build/share/python-build/pypy-2.3.1-src +++ b/plugins/python-build/share/python-build/pypy-2.3.1-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-32f35069a16d" "https://bitbucket.org/pypy/pypy/get/release-2.3.1.tar.bz2#3fd10d97c0177c33ed358a78eb26f5bf1f91b266af853564b1a9d8c310a1e439" "pypy_builder" verify_py27 ensurepip +install_package "pypy-pypy-32f35069a16d" "https://downloads.python.org/pypy/pypy-2.3.1-src.tar.bz2#6b10efab2be5502b475a25181870616e9ff83296b225aa2c7a7ec617c0ff78ef" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.4.0 b/plugins/python-build/share/python-build/pypy-2.4.0 index 90b45046a1..513570c819 100644 --- a/plugins/python-build/share/python-build/pypy-2.4.0 +++ b/plugins/python-build/share/python-build/pypy-2.4.0 @@ -30,7 +30,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-2.4.0-win32" "https://downloads.python.org/pypy/pypy-2.4.0-win32.zip#3eb8afdfa42bc9b08b4d3058e21d4ce978a52722fdcfdc67d6c3ee5013a51aaa" "pypy" verify_py27 ensurepip + install_zip "pypy-2.4.0-win32" "https://downloads.python.org/pypy/pypy-2.4.0-win32.zip#297fa3820a3aa8da291f52b6e2398b23232192b69773638e3d06999d92a2b0aa" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-2.4.0-src b/plugins/python-build/share/python-build/pypy-2.4.0-src index 1c161d69db..ed38e5b6ab 100644 --- a/plugins/python-build/share/python-build/pypy-2.4.0-src +++ b/plugins/python-build/share/python-build/pypy-2.4.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-c6ad44ecf5d8" "https://bitbucket.org/pypy/pypy/get/release-2.4.0.tar.bz2#7e0dec2c40106f20f002121bdabb71939915254fb91bd55b01434e4b994113d2" "pypy_builder" verify_py27 ensurepip +install_package "pypy-pypy-c6ad44ecf5d8" "https://downloads.python.org/pypy/pypy-2.4.0-src.tar.bz2#38810007aee4885ca0703b566db6594dd7649adaaa287df7a1012f10e067740f" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.0-src b/plugins/python-build/share/python-build/pypy-2.5.0-src index c00ef0d6b4..e319ba7347 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.0-src +++ b/plugins/python-build/share/python-build/pypy-2.5.0-src @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-10f1b29a2bd2" "https://bitbucket.org/pypy/pypy/get/release-2.5.0.tar.bz2#8d644a55a3150cf3d18536c784e3410bb3f3438c1505000c4f761863bacedf88" "pypy_builder" verify_py27 ensurepip +install_package "pypy-pypy-10f1b29a2bd2" "https://downloads.python.org/pypy/pypy-2.5.0-src.tar.bz2#8ff1e131d8fefd79032dd81bcf3fde927e152d3acde5105356f6ffc1aad33f81" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.0 b/plugins/python-build/share/python-build/pypy-4.0.0 index 6098e4c500..46ee1cde58 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.0 +++ b/plugins/python-build/share/python-build/pypy-4.0.0 @@ -30,7 +30,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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-4.0.0-linux64" "https://downloads.python.org/pypy/pypy-4.0.0-linux64.tar.bz2#30365cf4fa6cd8e9ff44126f06dcaebefda35c2543ddcf9b9e8516c29cabe726" "pypy" verify_py27 ensurepip else - install_package "pypy-4.0-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-4.0-linux_x86_64-portable.tar.bz2#61fb04eaa823763b8de777e16edc02b09116985586f53c14c6e85d531072a38f" "pypy" verify_py27 ensurepip + install_package "pypy-4.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0-linux_x86_64-portable.tar.bz2#61fb04eaa823763b8de777e16edc02b09116985586f53c14c6e85d531072a38f" "pypy" verify_py27 ensurepip fi ;; "osx64" ) @@ -38,7 +38,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "win32" ) # FIXME: never tested on Windows - install_zip "pypy-4.0.0-win32" "https://downloads.python.org/pypy/pypy-4.0.0-win32.zip#d906ffa98b120496cbbc1623d0fd08662c3a589340ae7071c669432eccf26e00" "pypy" verify_py27 ensurepip + install_zip "pypy-4.0.0-win32" "https://downloads.python.org/pypy/pypy-4.0.0-win32.zip#86493202261c62ba5b4b8840b1d0005bc9bf46af4f46d3b9a54ddbe8335da568" "pypy" verify_py27 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy-4.0.1 b/plugins/python-build/share/python-build/pypy-4.0.1 index ec532fba3f..c2b70d9d49 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.1 +++ b/plugins/python-build/share/python-build/pypy-4.0.1 @@ -18,19 +18,19 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-4.0.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-4.0.1-linux-armhf-raring.tar.bz2#e67278ce7423aa7bf99a95fd271cb76763eae3106930f4b7de1fba6a70a3f383" "pypy" verify_py27 ensurepip fi ;; -#"linux-ppc64" ) -# require_distro "Fedora 20" || true -# install_package "pypy-4.0.1-ppc64" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-ppc64.tar.bz2#FIXME" "pypy" verify_py27 ensurepip -# ;; -#"linux-ppc64le" ) -# require_distro "Fedora 21" || true -# install_package "pypy-4.0.1-ppc64le" "https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-ppc64le.tar.bz2#FIXME" "pypy" verify_py27 ensurepip -# ;; +"linux-ppc64" ) + require_distro "Fedora 20" || true + install_package "pypy-4.0.1-ppc64" "https://downloads.python.org/pypy/pypy-4.0.1-ppc64.tar.bz2" "pypy" verify_py27 ensurepip + ;; +"linux-ppc64le" ) + require_distro "Fedora 21" || true + install_package "pypy-4.0.1-ppc64le" "https://downloads.python.org/pypy/pypy-4.0.1-ppc64le.tar.bz2" "pypy" verify_py27 ensurepip + ;; "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-4.0.1-linux64" "https://downloads.python.org/pypy/pypy-4.0.1-linux64.tar.bz2#0d6090cee59f4b9bab91ddbea76580d0c232b78dae65aaa9e8fa8d4449ba25b4" "pypy" verify_py27 ensurepip else - install_package "pypy-4.0.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-4.0.1-linux_x86_64-portable.tar.bz2#b3803f6dd9bbb964f7d322aa4aeb93191ff0ebe573428c1d2014ea26da49ff53" "pypy" verify_py27 ensurepip + install_package "pypy-4.0.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0.1-linux_x86_64-portable.tar.bz2#b3803f6dd9bbb964f7d322aa4aeb93191ff0ebe573428c1d2014ea26da49ff53" "pypy" verify_py27 ensurepip fi ;; "osx64" ) diff --git a/plugins/python-build/share/python-build/pypy-5.0.1 b/plugins/python-build/share/python-build/pypy-5.0.1 index b09ea91d42..da95819dd9 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.1 +++ b/plugins/python-build/share/python-build/pypy-5.0.1 @@ -22,7 +22,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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-5.0.1-linux64" "https://downloads.python.org/pypy/pypy-5.0.1-linux64.tar.bz2#1b1363a48edd1c1b31ca5e995987eda3d460a3404f36c3bb2dd9f52c93eecff5" "pypy" verify_py27 ensurepip else - install_package "pypy-5.0.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.0.1-linux_x86_64-portable.tar.bz2#14d65f84fe8228cfa2b8e924364cf4c71e2bc6b13649098fa340baf044606436" "pypy" verify_py27 ensurepip + install_package "pypy-5.0.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0.1-linux_x86_64-portable.tar.bz2#14d65f84fe8228cfa2b8e924364cf4c71e2bc6b13649098fa340baf044606436" "pypy" verify_py27 ensurepip fi ;; "osx64" ) diff --git a/plugins/python-build/share/python-build/pypy-5.1.1 b/plugins/python-build/share/python-build/pypy-5.1.1 index f9c543d2f6..d84028ddfd 100644 --- a/plugins/python-build/share/python-build/pypy-5.1.1 +++ b/plugins/python-build/share/python-build/pypy-5.1.1 @@ -18,19 +18,11 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-5.1.1-linux-armhf-raring" "https://downloads.python.org/pypy/pypy-5.1.1-linux-armhf-raring.tar.bz2#c4bcdabccd15669ea44d1c715cd36b2ca55b340a27b63e1a92ef5ab6eb158a8d" "pypy" verify_py27 ensurepip fi ;; -#"linux-ppc64" ) -# require_distro "Fedora 20" || true -# install_package "pypy-5.1.1-ppc64" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-ppc64.tar.bz2#FIXME" "pypy" verify_py27 ensurepip -# ;; -#"linux-ppc64le" ) -# require_distro "Fedora 21" || true -# install_package "pypy-5.1.1-ppc64le" "https://bitbucket.org/pypy/pypy/downloads/pypy-5.1.1-ppc64le.tar.bz2#FIXME" "pypy" verify_py27 ensurepip -# ;; "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-5.1.1-linux64" "https://downloads.python.org/pypy/pypy-5.1.1-linux64.tar.bz2#c852622e8bc81618c137da35fcf57b2349b956c07b6fd853300846e3cefa64fc" "pypy" verify_py27 ensurepip else - install_package "pypy-5.1.1-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy-5.1.1-linux_x86_64-portable.tar.bz2#c0502d8db1cc2b81513cc6047813669b0a561cb20e41d60e179f51fe8657a794" "pypy" verify_py27 ensurepip + install_package "pypy-5.1.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1.1-linux_x86_64-portable.tar.bz2#c0502d8db1cc2b81513cc6047813669b0a561cb20e41d60e179f51fe8657a794" "pypy" verify_py27 ensurepip fi ;; "osx64" ) diff --git a/plugins/python-build/share/python-build/pypy-c-jit-latest b/plugins/python-build/share/python-build/pypy-c-jit-latest index db2cb9a746..1f8ebf12b3 100644 --- a/plugins/python-build/share/python-build/pypy-c-jit-latest +++ b/plugins/python-build/share/python-build/pypy-c-jit-latest @@ -9,7 +9,12 @@ case "$(pypy_architecture 2>/dev/null || true)" in if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then install_nightly_package "pypy-c-jit-latest-linux-armhf-raspbian" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux-armhf-raspbian.tar.bz2" "pypy-c-jit-*-linux-armhf-raspbian" "pypy" verify_py27 ensurepip else - install_nightly_package "pypy-c-jit-latest-linux-armhf-raring" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux-armhf-raring.tar.bz2" "pypy-c-jit-*-linux-armhf-raring" "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 + } >&2 + exit 1 fi ;; "linux64" ) @@ -18,12 +23,9 @@ case "$(pypy_architecture 2>/dev/null || true)" in "osx64" ) install_nightly_package "pypy-c-jit-latest-osx64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip ;; -"freebsd64" ) - install_nightly_package "pypy-c-jit-latest-freebsd64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-freebsd64.tar.bz2" "pypy-c-jit-*-freebsd64" "pypy" verify_py27 ensurepip +"win32" ) + install_zip "pypy-c-jit-latest-win32" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip ;; -#"win32" ) -# install_zip "pypy-c-jit-latest-win32" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip -# ;; * ) { echo colorize 1 "ERROR" diff --git a/plugins/python-build/share/python-build/pypy-c-nojit-latest b/plugins/python-build/share/python-build/pypy-c-nojit-latest deleted file mode 100644 index 188b0c2611..0000000000 --- a/plugins/python-build/share/python-build/pypy-c-nojit-latest +++ /dev/null @@ -1,35 +0,0 @@ -case "$(pypy_architecture 2>/dev/null || true)" in -"linux" ) - install_nightly_package "pypy-c-nojit-latest-linux" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-linux.tar.bz2" "pypy-c-nojit-*-linux" "pypy" verify_py27 ensurepip - ;; -"linux-armel" ) - install_nightly_package "pypy-c-nojit-latest-linux-armel" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-linux-armel.tar.bz2" "pypy-c-nojit-*-linux-armel" "pypy" verify_py27 ensurepip - ;; -"linux-armhf" ) - if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_nightly_package "pypy-c-nojit-latest-linux-armhf-raspbian" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-linux-armhf-raspbian.tar.bz2" "pypy-c-nojit-*-linux-armhf-raspbian" "pypy" verify_py27 ensurepip - else - install_nightly_package "pypy-c-nojit-latest-linux-armhf-raring" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-linux-armhf-raring.tar.bz2" "pypy-c-nojit-*-linux-armhf-raring" "pypy" verify_py27 ensurepip - fi - ;; -"linux64" ) - install_nightly_package "pypy-c-nojit-latest-linux64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-linux64.tar.bz2" "pypy-c-nojit-*-linux64" "pypy" verify_py27 ensurepip - ;; -"osx64" ) - install_nightly_package "pypy-c-nojit-latest-osx64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-osx64.tar.bz2" "pypy-c-nojit-*-osx64" "pypy" verify_py27 ensurepip - ;; -"freebsd64" ) - install_nightly_package "pypy-c-nojit-latest-freebsd64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-freebsd64.tar.bz2" "pypy-c-nojit-*-freebsd64" "pypy" verify_py27 ensurepip - ;; -#"win32" ) -# install_zip "pypy-c-nojit-latest-win32" "http://buildbot.pypy.org/nightly/trunk/pypy-c-nojit-latest-win32.zip" "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 - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/pypy-dev b/plugins/python-build/share/python-build/pypy-dev index 6e2aff6f9f..5e3633e776 100644 --- a/plugins/python-build/share/python-build/pypy-dev +++ b/plugins/python-build/share/python-build/pypy-dev @@ -1,4 +1,4 @@ #require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_hg "pypy-dev" "https://bitbucket.org/pypy/pypy" "default" "pypy_builder" verify_py27 ensurepip +install_hg "pypy-dev" "https://foss.heptapod.net/pypy/pypy" "default" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-6.0.0 b/plugins/python-build/share/python-build/pypy2.7-6.0.0 index 227be546f2..6024fac031 100644 --- a/plugins/python-build/share/python-build/pypy2.7-6.0.0 +++ b/plugins/python-build/share/python-build/pypy2.7-6.0.0 @@ -20,8 +20,13 @@ case "$(pypy_architecture 2>/dev/null || true)" in if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then install_package "pypy2-v6.0.0-linux-armhf-raspbian" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux-armhf-raspbian.tar.bz2#6506ce739e31981e5596d3cc2e2c7f5b086ee77bb4d97773082b62b2f283eef2" "pypy" verify_py27 ensurepip else - require_distro "Ubuntu 13.04" || true - install_package "pypy2-v6.0.0-linux-armhf-raring" "https://bitbucket.org/pypy/pypy/downloads/pypy2-v6.0.0-linux-armhf-raring.tar.bz2#2c430240cecb562102c677598f106aa57899f00cd37f719989e18ed9ca44bd01" "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 'pypy2-6.0.0-src' to build from source." + echo + } >&2 + exit 1 fi ;; "linux64" ) diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.1 b/plugins/python-build/share/python-build/pypy3.5-5.10.1 index 305a5084b4..43c0a3104c 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.1 +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.1 @@ -32,7 +32,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in if require_osx_version "10.13"; then install_package "pypy3-v5.10.1-osx64" "https://downloads.python.org/pypy/pypy3-v5.10.1-osx64.tar.bz2#52f006611513c995fdebba6e72d394186d4085460408cbbe086e5467bf3fb9b6" "pypy" verify_py27 ensurepip else - # install_package "pypy3-v5.10.1-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.10.1-osx64-2.tar.bz2#" "pypy" verify_py27 ensurepip + # install_package "pypy3-v5.10.1-osx64-2" "https://downloads.python.org/pypy/pypy3-v5.10.1-osx64.tar.bz2#52f006611513c995fdebba6e72d394186d4085460408cbbe086e5467bf3fb9b6" "pypy" verify_py27 ensurepip { echo colorize 1 "ERROR" echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7-beta b/plugins/python-build/share/python-build/pypy3.5-5.7-beta index 58bf94a1d5..8cfe37ae12 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7-beta +++ b/plugins/python-build/share/python-build/pypy3.5-5.7-beta @@ -3,7 +3,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy3-v5.7.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.7.0-linux64.tar.bz2#921894884a647220a712ecdaad516d9c22fbadf3b4bb3a5db8f3635c60eabc7b" "pypy" verify_py35 ensurepip else - install_package "pypy3.5-5.7-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.7-beta-linux_x86_64-portable.tar.bz2#d289ff7c32fd4263c3889994c8191c626891513e8ab60a65ba41a58b331db92c" "pypy" verify_py35 ensurepip + install_package "pypy3.5-5.7-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.7-beta-linux_x86_64-portable.tar.bz2#d289ff7c32fd4263c3889994c8191c626891513e8ab60a65ba41a58b331db92c" "pypy" verify_py35 ensurepip fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.5-5.8.0 b/plugins/python-build/share/python-build/pypy3.5-5.8.0 index d54532bb39..502b216196 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.8.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.8.0 @@ -3,7 +3,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then install_package "pypy3-v5.8.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.8.0-linux64.tar.bz2#57d871a7f1135719c138cee4e3533c3275d682a76a40ff668e95150c65923035" "pypy" verify_py35 ensurepip else - install_package "pypy3.5-5.8-beta-linux_x86_64-portable" "https://bitbucket.org/squeaky/portable-pypy/downloads/pypy3.5-5.8-1-beta-linux_x86_64-portable.tar.bz2#cab20a6d315a1bb05aa953ebc37d8deaa34dcbe298cb5938e373c42c05542b99" "pypy" verify_py35 ensurepip + install_package "pypy3.5-5.8-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.8-1-beta-linux_x86_64-portable.tar.bz2#cab20a6d315a1bb05aa953ebc37d8deaa34dcbe298cb5938e373c42c05542b99" "pypy" verify_py35 ensurepip fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.5-6.0.0 b/plugins/python-build/share/python-build/pypy3.5-6.0.0 index 823d3193a5..e9349a3064 100644 --- a/plugins/python-build/share/python-build/pypy3.5-6.0.0 +++ b/plugins/python-build/share/python-build/pypy3.5-6.0.0 @@ -32,7 +32,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in if require_osx_version "10.13"; then install_package "pypy3-v6.0.0-osx64" "https://downloads.python.org/pypy/pypy3-v6.0.0-osx64.tar.bz2#938b8034e30f5f5060d2a079070c56c3be5559bc7ae9cc0c8395fe6fc45cfe4c" "pypy" verify_py27 ensurepip else - # install_package "pypy3-v6.0.0-osx64-2" "https://bitbucket.org/pypy/pypy/downloads/pypy3-v6.0.0-osx64-2.tar.bz2#" "pypy" verify_py27 ensurepip { echo colorize 1 "ERROR" echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." diff --git a/plugins/python-build/share/python-build/pypy3.5-c-jit-latest b/plugins/python-build/share/python-build/pypy3.5-c-jit-latest index d7617170c5..538acbf14a 100644 --- a/plugins/python-build/share/python-build/pypy3.5-c-jit-latest +++ b/plugins/python-build/share/python-build/pypy3.5-c-jit-latest @@ -2,41 +2,41 @@ echo colorize 1 "WARNING" echo ": This may eat your kittens/ affect timespace in alternate dimensions/" echo "cause you to complain more. Nightly builds are meant for testing only." -echo "The PyPy team is interested in reports of what's already implemented, see:" echo -echo "https://bitbucket.org/pypy/extradoc/src/c70f20cfb870/planning/py3.5/?at=extradoc" -echo -echo "for the latest status updates. To report bugs/regressions, please see:" +echo "To report bugs/regressions, please see:" echo echo "http://doc.pypy.org/en/latest/faq.html#how-should-i-report-a-bug" echo case "$(pypy_architecture 2>/dev/null || true)" in -#"linux" ) -# install_nightly_package "pypy-c-jit-latest-linux" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip -# ;; -#"linux-armel" ) -# install_nightly_package "pypy-c-jit-latest-linux-armel" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armel.tar.bz2" "pypy-c-jit-*-linux-armel" "pypy" verify_py27 ensurepip -# ;; -#"linux-armhf" ) -# if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then -# install_nightly_package "pypy-c-jit-latest-linux-armhf-raspbian" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armhf-raspbian.tar.bz2" "pypy-c-jit-*-linux-armhf-raspbian" "pypy" verify_py27 ensurepip -# else -# install_nightly_package "pypy-c-jit-latest-linux-armhf-raring" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armhf-raring.tar.bz2" "pypy-c-jit-*-linux-armhf-raring" "pypy" verify_py27 ensurepip -# fi -# ;; +"linux" ) + install_nightly_package "pypy-c-jit-latest-linux" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip + ;; +"linux-armel" ) + install_nightly_package "pypy-c-jit-latest-linux-armel" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armel.tar.bz2" "pypy-c-jit-*-linux-armel" "pypy" verify_py27 ensurepip + ;; +"linux-armhf" ) + if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then + install_nightly_package "pypy-c-jit-latest-linux-armhf-raspbian" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armhf-raspbian.tar.bz2" "pypy-c-jit-*-linux-armhf-raspbian" "pypy" verify_py27 ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The latest nightly build of PyPy 3.5 is not available for $(pypy_architecture 2>/dev/null || true)," + echo "Please check http://buildbot.pypy.org/nightly/py3.5/ for previous builds." + echo + } >&2 + exit 1 + fi + ;; "linux64" ) install_nightly_package "pypy3.5-c-jit-latest-linux64" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux64.tar.bz2" "pypy-c-jit-*-linux64" "pypy" verify_py35 ensurepip ;; -#"osx64" ) -# install_nightly_package "pypy-c-jit-latest-osx64" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip -# ;; -#"freebsd64" ) -# install_nightly_package "pypy-c-jit-latest-freebsd64" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-freebsd64.tar.bz2" "pypy-c-jit-*-freebsd64" "pypy" verify_py27 ensurepip -# ;; -#"win32" ) -# install_zip "pypy-c-jit-latest-win32" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip -# ;; +"osx64" ) + install_nightly_package "pypy-c-jit-latest-osx64" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip + ;; +"win32" ) + install_zip "pypy-c-jit-latest-win32" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip + ;; * ) { echo colorize 1 "ERROR" diff --git a/plugins/python-build/share/python-build/stackless-2.7.10 b/plugins/python-build/share/python-build/stackless-2.7.10 index 3e1c813325..b142c37a4d 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.10 +++ b/plugins/python-build/share/python-build/stackless-2.7.10 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-b6b4c928e880" "https://bitbucket.org/stackless-dev/stackless/get/v2.7.10-slp.tar.bz2#70ac8fd4f9c6a735757520fd3faa35180324d72108752d956c40f0571c732f22" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-b6b4c928e880" "http://www.stackless.com/binaries/stackless-2710-export.tar.xz#8af1318f95965138de51e290a509dc3d" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.11 b/plugins/python-build/share/python-build/stackless-2.7.11 index 7293348d6b..854ce950ee 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.11 +++ b/plugins/python-build/share/python-build/stackless-2.7.11 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-456e93659e69" "https://bitbucket.org/stackless-dev/stackless/get/v2.7.11-slp.tar.bz2#74093ac2824b167ecf8592164291c610dd9b31c8dce8b40b485ba9f39721e5b8" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-456e93659e69" "http://www.stackless.com/binaries/stackless-2711-export.tar.xz#d5229693498a4ccc0b3245f7bf8e2b09" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.12 b/plugins/python-build/share/python-build/stackless-2.7.12 index 1c3e8dd5f2..1160918a4e 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.12 +++ b/plugins/python-build/share/python-build/stackless-2.7.12 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-82aaa252fbdc" "https://bitbucket.org/stackless-dev/stackless/get/v2.7.12-slp.tar.bz2#af57d08477e8b9545d30b36df0ea903bdc96073898af6b4730f713bb74fd277d" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-82aaa252fbdc" "http://www.stackless.com/binaries/stackless-2712-export.tar.xz#c610611b39ee374ae36e891c5c739f39" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.2 b/plugins/python-build/share/python-build/stackless-2.7.2 index da95ff7c28..6a8074729e 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.2 +++ b/plugins/python-build/share/python-build/stackless-2.7.2 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-272-export" "https://www.stackless.com/binaries/stackless-272-export.tar.bz2#e2e2706b22839e3e3f45085d0ec8030dd7374d8a65d3297981b7189a7c613197" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-272-export" "http://www.stackless.com/binaries/stackless-272-export.tar.bz2#e2e2706b22839e3e3f45085d0ec8030dd7374d8a65d3297981b7189a7c613197" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.3 b/plugins/python-build/share/python-build/stackless-2.7.3 index 259e016fb2..75570e934e 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.3 +++ b/plugins/python-build/share/python-build/stackless-2.7.3 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-273-export" "https://www.stackless.com/binaries/stackless-273-export.tar.bz2#77bee863bfd16dc4eca7fc078b12db608db7dd6e2481981bb68250118e001dfc" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-273-export" "http://www.stackless.com/binaries/stackless-273-export.tar.bz2#77bee863bfd16dc4eca7fc078b12db608db7dd6e2481981bb68250118e001dfc" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.4 b/plugins/python-build/share/python-build/stackless-2.7.4 index 425804e949..21f37838db 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.4 +++ b/plugins/python-build/share/python-build/stackless-2.7.4 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-274-export" "https://www.stackless.com/binaries/stackless-274-export.tar.bz2#ba566b18c66b095b65addbcfc4d814fc84f163c9fcffa1d0678755c581e64f45" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-274-export" "http://www.stackless.com/binaries/stackless-274-export.tar.bz2#ba566b18c66b095b65addbcfc4d814fc84f163c9fcffa1d0678755c581e64f45" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.5 b/plugins/python-build/share/python-build/stackless-2.7.5 index 6534d6508f..011caa1a20 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.5 +++ b/plugins/python-build/share/python-build/stackless-2.7.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-275-export" "https://www.stackless.com/binaries/stackless-275-export.tar.bz2#5a389357762b32c590e1154a86b098cc379c71d10238b458a3e9b4fa4aac60d4" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-275-export" "http://www.stackless.com/binaries/stackless-275-export.tar.bz2#5a389357762b32c590e1154a86b098cc379c71d10238b458a3e9b4fa4aac60d4" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.6 b/plugins/python-build/share/python-build/stackless-2.7.6 index 97bc88ef7f..340354e8e1 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.6 +++ b/plugins/python-build/share/python-build/stackless-2.7.6 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-276-export" "https://www.stackless.com/binaries/stackless-276-export.tar.bz2#1e905deaf74e8922f49b99139aa48e6670e9456c55fec8e60c47501f78c38ff5" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-276-export" "http://www.stackless.com/binaries/stackless-276-export.tar.bz2#1e905deaf74e8922f49b99139aa48e6670e9456c55fec8e60c47501f78c38ff5" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.7 b/plugins/python-build/share/python-build/stackless-2.7.7 index 15655de000..286b353d0a 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.7 +++ b/plugins/python-build/share/python-build/stackless-2.7.7 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-a182f63395c3" "https://bitbucket.org/stackless-dev/stackless/get/v2.7.7-slp.tar.bz2#88ca1169d878fd860f6d04d9e509399f2bc25ec0b692fd5998640c5d0d489c85" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-a182f63395c3" "http://www.stackless.com/binaries/stackless-277-export.tar.bz2#4ac0a1e95bc12d6733d9e7f3c221ec4a" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.8 b/plugins/python-build/share/python-build/stackless-2.7.8 index fd5136dcd8..333e02c557 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.8 +++ b/plugins/python-build/share/python-build/stackless-2.7.8 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-ff29dd4f67de" "https://bitbucket.org/stackless-dev/stackless/get/v2.7.8-slp.tar.bz2#4d61c630c9a6c445b03c3b1a7d2391d5014a89d55b6d9d94be561fea34f158dc" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-ff29dd4f67de" "http://www.stackless.com/binaries/stackless-278-export.tar.bz2#2880f05e599020eb8f2624ce3796592b" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.9 b/plugins/python-build/share/python-build/stackless-2.7.9 index fe08e471f9..37b329f5c2 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.9 +++ b/plugins/python-build/share/python-build/stackless-2.7.9 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-43302de87df4" "https://bitbucket.org/stackless-dev/stackless/get/v2.7.9-slp.tar.bz2#83857fb269a59cca51c68aef84295892f86ce775700dbe9a3f7fe8322f7dd6ff" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-43302de87df4" "http://www.stackless.com/binaries/stackless-279-export.tar.xz#35307558796389aa51d96b0bc83f6f6f" ldflags_dirs standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.2.2 b/plugins/python-build/share/python-build/stackless-3.2.2 index dfce9e6b94..6430aca92e 100644 --- a/plugins/python-build/share/python-build/stackless-3.2.2 +++ b/plugins/python-build/share/python-build/stackless-3.2.2 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-322-export" "https://www.stackless.com/binaries/stackless-322-export.tar.bz2#779700f12b451a350fe7af4cd2849842adc7006dc83fe14712dd1a0999277b07" ldflags_dirs standard verify_py32 +install_package "stackless-322-export" "http://www.stackless.com/binaries/stackless-322-export.tar.bz2#779700f12b451a350fe7af4cd2849842adc7006dc83fe14712dd1a0999277b07" ldflags_dirs standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/stackless-3.2.5 b/plugins/python-build/share/python-build/stackless-3.2.5 index 21a965df95..7cb0165474 100644 --- a/plugins/python-build/share/python-build/stackless-3.2.5 +++ b/plugins/python-build/share/python-build/stackless-3.2.5 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-325-export" "https://www.stackless.com/binaries/stackless-325-export.tar.bz2#b021125e578ddd267d38feee9e1cbdb675f6aab247a2b88f4494abcf23babb05" ldflags_dirs standard verify_py32 +install_package "stackless-325-export" "http://www.stackless.com/binaries/stackless-325-export.tar.bz2#b021125e578ddd267d38feee9e1cbdb675f6aab247a2b88f4494abcf23babb05" ldflags_dirs standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/stackless-3.3.5 b/plugins/python-build/share/python-build/stackless-3.3.5 index bc6910b94b..37e90aea86 100644 --- a/plugins/python-build/share/python-build/stackless-3.3.5 +++ b/plugins/python-build/share/python-build/stackless-3.3.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-c856cc204b1c" "https://bitbucket.org/stackless-dev/stackless/get/v3.3.5-slp.tar.bz2#197b41ccd7ec998ff612c67df9b8eb827a58f4eda715ca034c43c94bf17d5c0f" ldflags_dirs standard verify_py33 ensurepip +install_package "stackless-dev-stackless-c856cc204b1c" "http://www.stackless.com/binaries/stackless-335-export.tar.xz#d839295b932eb10443f2ddfecf2c25e9" ldflags_dirs standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.4.1 b/plugins/python-build/share/python-build/stackless-3.4.1 deleted file mode 100644 index 26fbc3b231..0000000000 --- a/plugins/python-build/share/python-build/stackless-3.4.1 +++ /dev/null @@ -1,4 +0,0 @@ -#require_gcc -install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-983d1323d146" "https://bitbucket.org/stackless-dev/stackless/get/v3.4.1-slp.tar.bz2#cae24c9d1d9b9ffd27d3ed0d9baae980df4a55fb27c497ef939709a3950ba538" ldflags_dirs standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.4.2 b/plugins/python-build/share/python-build/stackless-3.4.2 index 851ac434dc..62de339b11 100644 --- a/plugins/python-build/share/python-build/stackless-3.4.2 +++ b/plugins/python-build/share/python-build/stackless-3.4.2 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-587417070fe4" "https://bitbucket.org/stackless-dev/stackless/get/v3.4.2-slp.tar.bz2#c3dbdde536fa6bf366fdbc3e957596487608ba11009758ce599357512eb74103" ldflags_dirs standard verify_py34 ensurepip +install_package "stackless-dev-stackless-587417070fe4" "http://www.stackless.com/binaries/stackless-342-export.tar.xz#dd6ae57cc8a162690a24f21ce1f0c4d96e096c24e17137783bacc9182b96b6dc" ldflags_dirs standard verify_py34 ensurepip From 5f62ad7680115b891a2039c74410216ba931fcb7 Mon Sep 17 00:00:00 2001 From: Josh Friend Date: Wed, 17 Feb 2021 11:32:41 -0500 Subject: [PATCH 0083/1324] v1.2.23 --- CHANGELOG.md | 21 +++++++++++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6336095b31..c9c913b6b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,26 @@ ## Version History +## 1.2.23 + ++ python-build: Add CPython v3.7.10 (#1818) ++ python-build: Add CPython v3.6.13 (#1817) +* python-build: Add PyPy 3.7-c-jit-latest (#1812) +* python-build: Add PyPy 3.7 (#1718, #1726, #1780) +* python-build: Add miniconda3 4.9.2 (#1763) +* python-build: Add miniconda3 4.8.3 (#1763) +* python-build: Add miniconda3 4.8.2 (#1763) +* python-build: Add Miniforge3-4.9.2 (#1782) +* python-build: Fix download links for some PyPy and Stackless versions (#1692) +* python-build: Add PYENV_DEBUG option (#1806) +* python-build: Fix get-pip which dropped support for legacy Python (#1793) +* pyenv-help: Fix `sed: RE error: illegal byte sequence` (#1714) +* pyenv-versions: Fix not printing asterisk for current version in Bash 3 (#1815) +* pyenv-prefix: "system" python - support cases where python3 is in PATH but not python (#1655) +* pyenv-which: Added fallback to system executable (#1797) +* pyenv-rehash: Use associative arrays for better performance on bash >= 4 (#1749) +* pyenv-rehash: Try to sleep in 0.1 sec steps when acquiring lock (#1798) +* pyenv: Use a better PS4 as recommended by Bash Hackers Wiki (#1810) + ## 1.2.22 + python-build: Add LDFLAGS for zlib on macOS >= 1100 (#1711) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 1d6e520c13..68ba58d4a2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.22" +version="1.2.23" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 2073e6d4ca2ba531f524570b099aceb68e3f0736 Mon Sep 17 00:00:00 2001 From: karthek Date: Thu, 18 Feb 2021 01:36:11 +0530 Subject: [PATCH 0084/1324] Update pyenv.1 --- pyenv.1 | 2 -- 1 file changed, 2 deletions(-) diff --git a/pyenv.1 b/pyenv.1 index 5b5c624867..04c32d156d 100644 --- a/pyenv.1 +++ b/pyenv.1 @@ -1,5 +1,3 @@ -.\" (C) Copyright 2020 karthek , -.\" .TH PYENV 1 "12 Dec 2020" "PYENV" .SH NAME pyenv \- Simple Python version management From cc776ff875ee0af223736f1bbd49b23db8a38f20 Mon Sep 17 00:00:00 2001 From: Jose Martin Date: Fri, 19 Feb 2021 18:00:05 +0100 Subject: [PATCH 0085/1324] Add CPython 3.8.8 --- plugins/python-build/share/python-build/3.8.8 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.8.8 diff --git a/plugins/python-build/share/python-build/3.8.8 b/plugins/python-build/share/python-build/3.8.8 new file mode 100644 index 0000000000..d6efc5e156 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.8 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tar.xz#7c664249ff77e443d6ea0e4cf0e587eae918ca3c48d081d1915fe2a1f1bcc5cc" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz#76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +fi From 32740a1e86baf2cd792dd90576f3e94cf1058882 Mon Sep 17 00:00:00 2001 From: Jose Martin Date: Fri, 19 Feb 2021 18:07:50 +0100 Subject: [PATCH 0086/1324] Add CPython 3.9.2 --- plugins/python-build/share/python-build/3.9.2 | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.2 diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 new file mode 100644 index 0000000000..342d371e11 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.2 @@ -0,0 +1,11 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi + From d9cb389a46e29efd771e5cbcb82906c263928379 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 20 Feb 2021 06:33:06 +0300 Subject: [PATCH 0087/1324] Update 3.9.2 Upgrade openssl to 1.1.1i --- plugins/python-build/share/python-build/3.9.2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 index 342d371e11..2c4484092b 100644 --- a/plugins/python-build/share/python-build/3.9.2 +++ b/plugins/python-build/share/python-build/3.9.2 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip From f1aab847e7f4e8cb63d1c30835e9c1d98cdd0564 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 20 Feb 2021 06:54:49 +0300 Subject: [PATCH 0088/1324] Update 3.8.8 Upgrade openssl to 1.1.1i --- plugins/python-build/share/python-build/3.8.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.8.8 b/plugins/python-build/share/python-build/3.8.8 index d6efc5e156..1bcca49d32 100644 --- a/plugins/python-build/share/python-build/3.8.8 +++ b/plugins/python-build/share/python-build/3.8.8 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tar.xz#7c664249ff77e443d6ea0e4cf0e587eae918ca3c48d081d1915fe2a1f1bcc5cc" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip From 4860b9a0593828d43e51640a609d482bf5897a2b Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sat, 20 Feb 2021 06:47:11 +0100 Subject: [PATCH 0089/1324] Upgrade to Python 3.9.1, Bug Sur and Ubuntu Focal --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index d380ee43b9..9f5ee24809 100644 --- a/.travis.yml +++ b/.travis.yml @@ -17,17 +17,17 @@ os: - osx dist: -- xenial +- focal # https://docs.travis-ci.com/user/reference/osx/#macos-version osx_image: - xcode9.4.1 # macOS 10.13 - xcode10.3 # macOS 10.14.4 - xcode11.3 # macOS 10.14.6 -- xcode12u # macOS 10.15.5 +- xcode12.2 # macOS 11.0 env: -- PYTHON_BUILD_VERSION=3.8.0 +- PYTHON_BUILD_VERSION=3.9.1 - PYTHON_BUILD_VERSION=3.7.5 before_install: @@ -61,7 +61,7 @@ jobs: osx_image: xcode10 allow_failures: - - env: PYTHON_BUILD_VERSION=3.8.0 + - env: PYTHON_BUILD_VERSION=3.9.1 stages: - test shell From f34dbba9b5d34742eadcfeb8e6e1cd0210d33335 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sat, 20 Feb 2021 07:05:34 +0100 Subject: [PATCH 0090/1324] Upgrade xcode11.3 --> xcode11.6 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9f5ee24809..45e6260dc5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,8 +23,8 @@ dist: osx_image: - xcode9.4.1 # macOS 10.13 - xcode10.3 # macOS 10.14.4 -- xcode11.3 # macOS 10.14.6 -- xcode12.2 # macOS 11.0 +- xcode11.6 # macOS 10.14.6 +- xcode12.2 # macOS 10.15.7 env: - PYTHON_BUILD_VERSION=3.9.1 From 1e5938a9d0e99477f7f66dd79d98e4237b17f2f0 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sat, 20 Feb 2021 10:59:42 +0100 Subject: [PATCH 0091/1324] Update comments on macOS versions --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 45e6260dc5..4537e71c27 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,9 +21,9 @@ dist: # https://docs.travis-ci.com/user/reference/osx/#macos-version osx_image: -- xcode9.4.1 # macOS 10.13 +- xcode9.4.1 # macOS 10.13.6 - xcode10.3 # macOS 10.14.4 -- xcode11.6 # macOS 10.14.6 +- xcode11.6 # macOS 10.15.7 - xcode12.2 # macOS 10.15.7 env: From f31a06dc195e145367c9a928c4ef220e8e2538bf Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 22 Feb 2021 12:21:02 +0300 Subject: [PATCH 0092/1324] Added --nosystem argument Added --nosystem argument to skip the system environment when searching for an executable. --- libexec/pyenv-which | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-which b/libexec/pyenv-which index a7a1264acf..88fc447b23 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -2,10 +2,12 @@ # # Summary: Display the full path to an executable # -# Usage: pyenv which +# Usage: pyenv which [--nosystem] # # Displays the full path to the executable that pyenv will invoke when # you run the given command. +# Use --nosystem argument in case when you don't need to search command in the +# system environment. # set -e @@ -16,6 +18,12 @@ if [ "$1" = "--complete" ]; then exec pyenv-shims --short fi +if [ "$2" = "--nosystem" ]; then + system="" +else + system="system" +fi + remove_from_path() { local path_to_remove="$1" local path_before @@ -39,7 +47,7 @@ OLDIFS="$IFS" IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)}) IFS="$OLDIFS" -for version in "${versions[@]}" "system"; do +for version in "${versions[@]}" "$system"; do if [ "$version" = "system" ]; then PATH="$(remove_from_path "${PYENV_ROOT}/shims")" PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)" From b66160cc42fc1be8b4e4e96d3cfdc97479a770a6 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 11:33:06 +0100 Subject: [PATCH 0093/1324] GitHub Action to build Python verssions on Ubuntu --- .github/workflows/ubuntu_tests.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/ubuntu_tests.yml diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml new file mode 100644 index 0000000000..4c50f13f76 --- /dev/null +++ b/.github/workflows/ubuntu_tests.yml @@ -0,0 +1,25 @@ +name: ubuntu_tests +on: [pull_request, push] +jobs: + ubuntu_tests: + strategy: + fail-fast: false + matrix: + python-version: [2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9] + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + # Normally, we would use the superbly maintained... + # - uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # ... but in the repo, we want to test pyenv builds on Ubuntu + # https://github.com/pyenv/pyenv#installation + - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile + - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile + - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile + - run: | + sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev + libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev + xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + - run: pyenv install ${{ matrix.python-version }} From 665f1f9aa429e511afc7ec2a2d5b3e445ba5e69d Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 11:35:11 +0100 Subject: [PATCH 0094/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 4c50f13f76..c021bbaef7 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -19,7 +19,7 @@ jobs: - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile - run: | - sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev - libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev + sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ + libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - run: pyenv install ${{ matrix.python-version }} From 79bdfce276f64230eab59c2e3ffde9cd61c5f436 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 11:36:58 +0100 Subject: [PATCH 0095/1324] ./pyenv install ${{ matrix.python-version }} --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index c021bbaef7..19fd6fe24a 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -22,4 +22,4 @@ jobs: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: pyenv install ${{ matrix.python-version }} + - run: ./pyenv install ${{ matrix.python-version }} From e702adaee12415340e3e79f1a89979d3b5eacffd Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 11:39:10 +0100 Subject: [PATCH 0096/1324] bin/pyenv install ${{ matrix.python-version }} --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 19fd6fe24a..31dc1e6a10 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -22,4 +22,4 @@ jobs: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: ./pyenv install ${{ matrix.python-version }} + - run: bin/pyenv install ${{ matrix.python-version }} From d6b6e470b920e59acb2653cafa6b80bbd315a4ae Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 11:42:36 +0100 Subject: [PATCH 0097/1324] Python 3.9.1 --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 31dc1e6a10..89b5b2cbad 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9] + python-version: [2.7.18, 3.4.10, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From f9a0bfbe910cdadecc4a65c28fc7154a99de4b2e Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 27 Jan 2021 11:52:12 +0100 Subject: [PATCH 0098/1324] bin/pyenv global ${{ matrix.python-version }} --- .github/workflows/ubuntu_tests.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 89b5b2cbad..33349cac36 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.4.10, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] + python-version: [2.7.6, 2.7.18, 3.4.10, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -23,3 +23,12 @@ jobs: libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - run: bin/pyenv install ${{ matrix.python-version }} + - run: bin/pyenv global ${{ matrix.python-version }} + - run: bin/pyenv rehash + - run: python --version || true + - run: python -m pip --version || true + - run: python2 --version || true + - run: python2 -m pip --version || true + - run: python3 --version || true + - run: python3 -m pip --version || true + From 170636769f16443de3f6bd8232528bc255de84fe Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 14:05:16 +0100 Subject: [PATCH 0099/1324] Python 3.6.13 and 3.7.10 --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 33349cac36..33e49f4268 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.6, 2.7.18, 3.4.10, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.7, 3.9.1] # 2.7.6, 3.4.10, runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From 4be2dc685aab406c2ab9d6767f8ef583232329cb Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 14:11:26 +0100 Subject: [PATCH 0100/1324] bin/pyenv update --- .github/workflows/ubuntu_tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 33e49f4268..f5731f6381 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -22,6 +22,8 @@ jobs: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + - run: git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update + - run: bin/pyenv update - run: bin/pyenv install ${{ matrix.python-version }} - run: bin/pyenv global ${{ matrix.python-version }} - run: bin/pyenv rehash From 390a1dd8c704284dfb2bb89e3344163a1faa6ce8 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 14:19:11 +0100 Subject: [PATCH 0101/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index f5731f6381..537b7d30ba 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -22,7 +22,7 @@ jobs: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: git clone https://github.com/pyenv/pyenv-update.git $(pyenv root)/plugins/pyenv-update + - run: git clone https://github.com/pyenv/pyenv-update.git $(bin/pyenv root)/plugins/pyenv-update - run: bin/pyenv update - run: bin/pyenv install ${{ matrix.python-version }} - run: bin/pyenv global ${{ matrix.python-version }} From 878e96978aa9879e30259240de5953482583a385 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 14:21:52 +0100 Subject: [PATCH 0102/1324] Python 3.6.12 and 3.7.9 --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 537b7d30ba..6090169134 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.7, 3.9.1] # 2.7.6, 3.4.10, + python-version: [2.7.18, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] # 2.7.6, 3.4.10, runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 From 086f594b8c1cd1ccc92e4ca5fd08ccaf13714e9e Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 14:35:19 +0100 Subject: [PATCH 0103/1324] runs-on: Ubuntu-20.04 --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 6090169134..415e18a3a7 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -6,7 +6,7 @@ jobs: fail-fast: false matrix: python-version: [2.7.18, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] # 2.7.6, 3.4.10, - runs-on: ubuntu-latest + runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 # Normally, we would use the superbly maintained... From ac198a66aef25c1e439412f48f282b81e9060017 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 18:32:44 +0100 Subject: [PATCH 0104/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 415e18a3a7..4b1d062edc 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.12, 3.7.9, 3.8.7, 3.9.1] # 2.7.6, 3.4.10, + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.8, 3.9.2] # 2.7.6, 3.4.10, runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -22,8 +22,7 @@ jobs: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: git clone https://github.com/pyenv/pyenv-update.git $(bin/pyenv root)/plugins/pyenv-update - - run: bin/pyenv update + - run: cd $(pyenv root) && git pull - run: bin/pyenv install ${{ matrix.python-version }} - run: bin/pyenv global ${{ matrix.python-version }} - run: bin/pyenv rehash From c8bbc481ee97c76283261c2b633cca53758f1348 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 18:36:18 +0100 Subject: [PATCH 0105/1324] cd $(bin/pyenv root) && git pull --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 4b1d062edc..dc1e598e9a 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -22,7 +22,7 @@ jobs: sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: cd $(pyenv root) && git pull + - run: cd $(bin/pyenv root) && git pull - run: bin/pyenv install ${{ matrix.python-version }} - run: bin/pyenv global ${{ matrix.python-version }} - run: bin/pyenv rehash From 604cd77d26d0bafbe4daf159eb6f3c9172e22d09 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 23 Feb 2021 18:42:03 +0100 Subject: [PATCH 0106/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index dc1e598e9a..867e738388 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -17,12 +17,13 @@ jobs: # https://github.com/pyenv/pyenv#installation - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile + - run: echo -e 'if command -v bin/pyenv 1>/dev/null 2>&1; then\n eval "$(bin/pyenv init -)"\nfi' >> ~/.bash_profile - run: | sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: cd $(bin/pyenv root) && git pull + - run: cd $(bin/pyenv root) && git pull || true + - run: git pull - run: bin/pyenv install ${{ matrix.python-version }} - run: bin/pyenv global ${{ matrix.python-version }} - run: bin/pyenv rehash From f06fb60b1fa0efbeb100b4da925ee09021d063a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 16 Jan 2021 14:38:31 +0200 Subject: [PATCH 0107/1324] Make work in nounset (-u) mode --- libexec/pyenv-sh-shell | 4 ++-- test/shell.bats | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libexec/pyenv-sh-shell b/libexec/pyenv-sh-shell index b38abbf389..51352e1d9f 100755 --- a/libexec/pyenv-sh-shell +++ b/libexec/pyenv-sh-shell @@ -49,7 +49,7 @@ if [ "$versions" = "--unset" ]; then echo "set -e PYENV_VERSION" ;; * ) - echo 'PYENV_VERSION_OLD="$PYENV_VERSION"' + echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"' echo "unset PYENV_VERSION" ;; esac @@ -110,7 +110,7 @@ if pyenv-prefix "${versions[@]}" >/dev/null; then echo "set -gx PYENV_VERSION \"$version\"" ;; * ) - echo 'PYENV_VERSION_OLD="$PYENV_VERSION"' + echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"' echo "export PYENV_VERSION=\"${version}\"" ;; esac diff --git a/test/shell.bats b/test/shell.bats index 0871065c31..daa5744b37 100644 --- a/test/shell.bats +++ b/test/shell.bats @@ -47,7 +47,7 @@ load test_helper PYENV_SHELL=bash run pyenv-sh-shell --unset assert_success assert_output < Date: Wed, 24 Feb 2021 10:07:52 +0100 Subject: [PATCH 0108/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 867e738388..cf5fcb9a7a 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -24,13 +24,9 @@ jobs: xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - run: cd $(bin/pyenv root) && git pull || true - run: git pull - - run: bin/pyenv install ${{ matrix.python-version }} - - run: bin/pyenv global ${{ matrix.python-version }} - - run: bin/pyenv rehash - - run: python --version || true - - run: python -m pip --version || true - - run: python2 --version || true - - run: python2 -m pip --version || true - - run: python3 --version || true - - run: python3 -m pip --version || true - + - run: | + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash + python --version + python -m pip --version From 7c18f8a10cbf80741e977e2d424e14e57059adbe Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 10:31:10 +0100 Subject: [PATCH 0109/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index cf5fcb9a7a..b31a89eef7 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -14,19 +14,21 @@ jobs: # with: # python-version: ${{ matrix.python-version }} # ... but in the repo, we want to test pyenv builds on Ubuntu - # https://github.com/pyenv/pyenv#installation - - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile - - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - - run: echo -e 'if command -v bin/pyenv 1>/dev/null 2>&1; then\n eval "$(bin/pyenv init -)"\nfi' >> ~/.bash_profile - run: | sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - - run: cd $(bin/pyenv root) && git pull || true + # https://github.com/pyenv/pyenv#installation + - run: echo "$HOME" >> $PYENV_ROOT + - run: echo "$HOME/bin" >> $GITHUB_PATH + # - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile + # - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile + - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile + - run: cd $(pyenv root) && git pull || true - run: git pull - run: | - bin/pyenv install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash + pyenv install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + pyenv rehash python --version python -m pip --version From 33335507b0d975fddfbc2ce4e7051f20e5788c56 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 10:40:14 +0100 Subject: [PATCH 0110/1324] env: PYENV_ROOT: $HOME" --- .github/workflows/ubuntu_tests.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index b31a89eef7..b7302ce596 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -19,14 +19,15 @@ jobs: libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - - run: echo "$HOME" >> $PYENV_ROOT - run: echo "$HOME/bin" >> $GITHUB_PATH # - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile # - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile - - run: cd $(pyenv root) && git pull || true + # - run: cd $(pyenv root) && git pull || true - run: git pull - - run: | + - env: + PYENV_ROOT: $HOME" + run: | pyenv install ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} pyenv rehash From 36efced5b7006f4dbcd6b58a086f6b9d37e5bd97 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 10:42:12 +0100 Subject: [PATCH 0111/1324] echo "$HOME/.local/bin" >> $GITHUB_PATH --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index b7302ce596..b3ba348800 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -19,7 +19,7 @@ jobs: libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - - run: echo "$HOME/bin" >> $GITHUB_PATH + - run: echo "$HOME/.local/bin" >> $GITHUB_PATH # - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile # - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile From bc185d76cd36279cdecc40275ad28ee42c6d6150 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:07:27 +0100 Subject: [PATCH 0112/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index b3ba348800..3bc15a00c3 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -19,7 +19,10 @@ jobs: libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation + - run: echo "$HOME/bin" >> $GITHUB_PATH - run: echo "$HOME/.local/bin" >> $GITHUB_PATH + - run: pwd + - run: echo $GITHUB_PATH # - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile # - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile @@ -28,6 +31,7 @@ jobs: - env: PYENV_ROOT: $HOME" run: | + echo $PYENV_ROOT pyenv install ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} pyenv rehash From 61e2f742fc3bef28be99366c68e48b8ac76fd9f0 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:16:02 +0100 Subject: [PATCH 0113/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 3bc15a00c3..6456013236 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -19,21 +19,14 @@ jobs: libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - - run: echo "$HOME/bin" >> $GITHUB_PATH - - run: echo "$HOME/.local/bin" >> $GITHUB_PATH - run: pwd - - run: echo $GITHUB_PATH - # - run: echo 'export PYENV_ROOT=$(pwd)' >> ~/.bash_profile - # - run: echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - - run: echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile - # - run: cd $(pyenv root) && git pull || true - - run: git pull - env: - PYENV_ROOT: $HOME" + PYENV_ROOT: $HOME run: | echo $PYENV_ROOT - pyenv install ${{ matrix.python-version }} - pyenv global ${{ matrix.python-version }} - pyenv rehash + bin/pyenv init - + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash python --version python -m pip --version From 8c0603acf226cc89cb0b22ebd279607a66094b08 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:26:57 +0100 Subject: [PATCH 0114/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 6456013236..3d911a016f 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -21,10 +21,10 @@ jobs: # https://github.com/pyenv/pyenv#installation - run: pwd - env: - PYENV_ROOT: $HOME + PYENV_ROOT: $(pwd) run: | echo $PYENV_ROOT - bin/pyenv init - + $(bin/pyenv init -) bin/pyenv install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash From 1e4c759b7a5b50fe82d19fe0733210da11bb8ed5 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:28:15 +0100 Subject: [PATCH 0115/1324] PYENV_ROOT: /home/runner/work/pyenv/pyenv --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 3d911a016f..f30d845e46 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -21,7 +21,7 @@ jobs: # https://github.com/pyenv/pyenv#installation - run: pwd - env: - PYENV_ROOT: $(pwd) + PYENV_ROOT: /home/runner/work/pyenv/pyenv run: | echo $PYENV_ROOT $(bin/pyenv init -) From f86a799b5f3ccf01c54c2cac2cdd3f4b4bbb5839 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:30:13 +0100 Subject: [PATCH 0116/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index f30d845e46..5b3082e70f 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -24,7 +24,6 @@ jobs: PYENV_ROOT: /home/runner/work/pyenv/pyenv run: | echo $PYENV_ROOT - $(bin/pyenv init -) bin/pyenv install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash From 5ec5f9598fc6eb62b2317b46311dc3d9e7eab3e7 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:45:00 +0100 Subject: [PATCH 0117/1324] echo "$HOME/bin" >> $GITHUB_PATH --- .github/workflows/ubuntu_tests.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 5b3082e70f..b7fc312b70 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -24,8 +24,9 @@ jobs: PYENV_ROOT: /home/runner/work/pyenv/pyenv run: | echo $PYENV_ROOT - bin/pyenv install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash + echo "$HOME/bin" >> $GITHUB_PATH + pyenv install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + pyenv rehash python --version python -m pip --version From 12e6f92a56382c5de63c0904452d2e326bcc365f Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 24 Feb 2021 12:48:18 +0100 Subject: [PATCH 0118/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index b7fc312b70..3d33e647e8 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -25,8 +25,8 @@ jobs: run: | echo $PYENV_ROOT echo "$HOME/bin" >> $GITHUB_PATH - pyenv install ${{ matrix.python-version }} - pyenv global ${{ matrix.python-version }} - pyenv rehash + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash python --version python -m pip --version From 06e88164cc9eb4a1d5d311a73858c8c5b29aa08a Mon Sep 17 00:00:00 2001 From: Zane Dufour Date: Wed, 24 Feb 2021 14:29:21 -0500 Subject: [PATCH 0119/1324] clarify proxy variable names in readme? The casing for `*_proxy` is currently inconsistent. I'm guessing that's a typo? Thanks for maintaining this awesome tool! --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0110316e49..c61543567b 100644 --- a/README.md +++ b/README.md @@ -231,7 +231,7 @@ easy to fork and contribute any changes back upstream. set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths ~~~ - - **Proxy note**: If you use a proxy, export `http_proxy` and `HTTPS_PROXY` too. + - **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy` too. 3. **Add `pyenv init` to your shell** to enable shims and autocompletion. Please make sure `eval "$(pyenv init -)"` is placed toward the end of the shell From 4c4457b22ff97fce0c197059bcd77b686dc6c6ce Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 25 Feb 2021 08:55:13 +0300 Subject: [PATCH 0120/1324] hook script to add latest suffix for install command --- pyenv.d/install/latest.bash | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 pyenv.d/install/latest.bash diff --git a/pyenv.d/install/latest.bash b/pyenv.d/install/latest.bash new file mode 100644 index 0000000000..c04bc2f04b --- /dev/null +++ b/pyenv.d/install/latest.bash @@ -0,0 +1,7 @@ +DEFINITION_PREFIX="${DEFINITION%%:*}" +DEFINITION_TYPE="${DEFINITION_PREFIX%%-*}" # TODO: support non-CPython versions +if [[ "${DEFINITION}" != "${DEFINITION_PREFIX}" ]]; then + DEFINITION_CANDIDATES=($(python-build --definitions | grep -F "${DEFINITION_PREFIX}" | grep "^${DEFINITION_TYPE}" | sed -e '/-dev$/d' -e '/-src$/d' | sort -t. -k1,1r -k 2,2nr -k 3,3nr || true)) + DEFINITION="${DEFINITION_CANDIDATES}" + VERSION_NAME="${DEFINITION##*/}" +fi From 9ee109b66148bc39a685926050b7b56cb4bb184b Mon Sep 17 00:00:00 2001 From: Asynchronous Interruption #0 <3107872+ai0@users.noreply.github.com> Date: Thu, 25 Feb 2021 22:17:47 -0600 Subject: [PATCH 0121/1324] fix error link (#1832) --- plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 | 2 +- plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 index eceae73688..069833c68c 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 @@ -6,7 +6,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Miniconda3-py37_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh#3143b1116f2d466d9325c206b7de88f7" "miniconda" verify_py37 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py37_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.8.3-MacOSX-x86_64.sh#cfe1b551b169d6386f5f4b7df40cdac4" "miniconda" verify_py37 + install_script "Miniconda3-py37_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-MacOSX-x86_64.sh#cfe1b551b169d6386f5f4b7df40cdac4" "miniconda" verify_py37 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 index a80281d53c..3095545aa6 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 @@ -6,7 +6,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Miniconda3-py38_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh#122c8c9beb51e124ab32a0fa6426c656" "miniconda" verify_py38 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py38_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.8.3-MacOSX-x86_64.sh#cb40e2c1a32dccd6cdd8d5e49977a635" "miniconda" verify_py38 + install_script "Miniconda3-py38_4.9.2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-MacOSX-x86_64.sh#cb40e2c1a32dccd6cdd8d5e49977a635" "miniconda" verify_py38 ;; * ) { echo From 2fd00096de523782cf1e88caabc339de6a68d9ca Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 28 Feb 2021 19:01:11 +0300 Subject: [PATCH 0122/1324] Added aarch64 for Linux in anaconda_architecture() Added aarch64 for Linux in anaconda_architecture() --- plugins/python-build/bin/python-build | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 931979a828..a9da5dd5e7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1006,6 +1006,7 @@ anaconda_architecture() { "Linux" ) case "$(uname -m)" in "armv7l" ) echo "Linux-armv7l" ;; + "aarch64 " ) echo "Linux-aarch64" ;; "i386" | "i486" | "i586" | "i686" | "i786" ) echo "Linux-x86" ;; "ppc64le" ) echo "Linux-ppc64le" ;; "x86_64" ) echo "Linux-x86_64" ;; From a2634350f48d943daed253922bd3f019ca8c2744 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 28 Feb 2021 19:03:12 +0300 Subject: [PATCH 0123/1324] Fixed typo Added aarch64 for Linux in anaconda_architecture() --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a9da5dd5e7..650a68212d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1006,7 +1006,7 @@ anaconda_architecture() { "Linux" ) case "$(uname -m)" in "armv7l" ) echo "Linux-armv7l" ;; - "aarch64 " ) echo "Linux-aarch64" ;; + "aarch64" ) echo "Linux-aarch64" ;; "i386" | "i486" | "i586" | "i686" | "i786" ) echo "Linux-x86" ;; "ppc64le" ) echo "Linux-ppc64le" ;; "x86_64" ) echo "Linux-x86_64" ;; From af5bc2bc97a06f6b7e1de728d938902c254f5ffc Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 28 Feb 2021 21:02:01 +0300 Subject: [PATCH 0124/1324] Update miniforge3-4.9.2 Update miniforge3-4.9.2 to the latest patch --- .../python-build/share/python-build/miniforge3-4.9.2 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/miniforge3-4.9.2 b/plugins/python-build/share/python-build/miniforge3-4.9.2 index 05ad0a9f3c..5d7323eca7 100644 --- a/plugins/python-build/share/python-build/miniforge3-4.9.2 +++ b/plugins/python-build/share/python-build/miniforge3-4.9.2 @@ -1,15 +1,18 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-ppc64le" ) - install_script "Miniforge3-4.9.2-5-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-Linux-ppc64le.sh#825b3e5f39f0bdb825323ea23af24ba4" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-7-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-7/Miniforge3-4.9.2-7-Linux-ppc64le.sh#fb18f348f35328aff5dd7edbd83ea2e2" "miniconda" verify_py38 ;; "Linux-x86_64" ) - install_script "Miniforge3-4.9.2-5-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-Linux-x86_64.sh#73ea193f82d8f3b558b9c2186a147bcf" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-7-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-7/Miniforge3-4.9.2-7-Linux-x86_64.sh#d96baf1a0559a1f642528c0e38aad984" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Miniforge3-4.9.2-7-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-7/Miniforge3-4.9.2-7-Linux-aarch64.sh#c5bceb970dcff512f35f444397b5ce11" "miniconda" verify_py38 ;; "MacOSX-arm64" ) - install_script "Miniforge3-4.9.2-5-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-arm64.sh#cf309b725c8a0b4448e4ee922703bf00" "miniconda" verify_py39 + install_script "Miniforge3-4.9.2-7-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-7/Miniforge3-4.9.2-7-MacOSX-arm64.sh#cca7e2cbbf5734eda475a72e81fe8031" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-4.9.2-5-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-5/Miniforge3-4.9.2-5-MacOSX-x86_64.sh#e66d62e8872bc1548af54063cab7b72e" "miniconda" verify_py38 + install_script "Miniforge3-4.9.2-7-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.9.2-7/Miniforge3-4.9.2-7-MacOSX-x86_64.sh#f270b7bfd721899cb175c10f0b6cfa01" "miniconda" verify_py38 ;; * ) { echo From 63a6f1bec4523452b959632d8ff186134f542483 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 12:15:18 +0100 Subject: [PATCH 0125/1324] GitHub Actions: Add $PYENV_ROOT/shims to $PATH --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 3d33e647e8..76be61ba7f 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -24,7 +24,7 @@ jobs: PYENV_ROOT: /home/runner/work/pyenv/pyenv run: | echo $PYENV_ROOT - echo "$HOME/bin" >> $GITHUB_PATH + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH bin/pyenv install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash From acb5f572b2a2c1d85e227c09918669141972dbdd Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 12:23:44 +0100 Subject: [PATCH 0126/1324] echo $GITHUB_PATH --- .github/workflows/ubuntu_tests.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 76be61ba7f..1098ca6a82 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -25,8 +25,11 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + echo $GITHUB_PATH bin/pyenv install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash python --version python -m pip --version + - run: python --version + - run: python -m pip --version From 66ba35817b0a11d7d657d8d8900f79e9fbc1073b Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 12:36:19 +0100 Subject: [PATCH 0127/1324] Separate pyenv install, pyenv global, pyenv rehash --- .github/workflows/ubuntu_tests.yml | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 1098ca6a82..9dc088a39f 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -20,16 +20,13 @@ jobs: xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - run: pwd - - env: - PYENV_ROOT: /home/runner/work/pyenv/pyenv - run: | - echo $PYENV_ROOT - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - echo $GITHUB_PATH - bin/pyenv install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash - python --version - python -m pip --version + #- env: + # PYENV_ROOT: /home/runner/work/pyenv/pyenv + # run: | + # echo $PYENV_ROOT + - run: PYENV_ROOT=$(pwd) echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: bin/pyenv install ${{ matrix.python-version }} + - run: bin/pyenv global ${{ matrix.python-version }} + - run: bin/pyenv rehash - run: python --version - run: python -m pip --version From 9e4ead1f931574f8966208a5a0feb112275f810e Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 12:42:17 +0100 Subject: [PATCH 0128/1324] echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH --- .github/workflows/ubuntu_tests.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 9dc088a39f..5ea9b59381 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -20,11 +20,11 @@ jobs: xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - run: pwd - #- env: - # PYENV_ROOT: /home/runner/work/pyenv/pyenv - # run: | - # echo $PYENV_ROOT - - run: PYENV_ROOT=$(pwd) echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - env: + PYENV_ROOT: /home/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: bin/pyenv install ${{ matrix.python-version }} - run: bin/pyenv global ${{ matrix.python-version }} - run: bin/pyenv rehash From c20aad5ef9a0ee3ff993240bd77e20e4569d08a6 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 12:49:09 +0100 Subject: [PATCH 0129/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 5ea9b59381..a8bc69adde 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -20,13 +20,15 @@ jobs: xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - run: pwd - - env: - PYENV_ROOT: /home/runner/work/pyenv/pyenv - run: | - echo $PYENV_ROOT - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - run: bin/pyenv install ${{ matrix.python-version }} - - run: bin/pyenv global ${{ matrix.python-version }} - - run: bin/pyenv rehash + #- env: + # PYENV_ROOT: /home/runner/work/pyenv/pyenv + # run: | + # echo $PYENV_ROOT + # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: PYENV_ROOT=$(pwd) echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash - run: python --version - run: python -m pip --version From 6e74abc42a244a11e92a92454cdd21fb8bdda098 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 12:54:20 +0100 Subject: [PATCH 0130/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index a8bc69adde..56df456f96 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -20,12 +20,11 @@ jobs: xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - run: pwd - #- env: - # PYENV_ROOT: /home/runner/work/pyenv/pyenv - # run: | - # echo $PYENV_ROOT - # echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - run: PYENV_ROOT=$(pwd) echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - env: + PYENV_ROOT: /home/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | bin/pyenv install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} From 5ca0900a235ed16c1027079349a5b8d08fc17bf9 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 13:06:26 +0100 Subject: [PATCH 0131/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 56df456f96..5e7862b188 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -25,7 +25,6 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - run: | bin/pyenv install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash From 9212585098b91eed7fc813ced71051581bbb030e Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 13:19:57 +0100 Subject: [PATCH 0132/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 32 ++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 5e7862b188..472c01ac9d 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -1,5 +1,26 @@ name: ubuntu_tests on: [pull_request, push] +jobs: + ubuntu_tests: + strategy: + fail-fast: false + matrix: + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.8, 3.9.2] # 2.7.6, 3.4.10, + runs-on: Ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + # Normally, we would use the superbly maintained... + # - uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # ... but in the repo, we want to test pyenv builds on Ubuntu + - run: | + sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ + libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ + xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + # https://github.com/pyenv/pyenv#installation + - run: pwdname: ubuntu_tests +on: [pull_request, push] jobs: ubuntu_tests: strategy: @@ -30,3 +51,14 @@ jobs: bin/pyenv rehash - run: python --version - run: python -m pip --version + + - env: + PYENV_ROOT: /home/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash + - run: python --version + - run: python -m pip --version From 45b99abec6bebd2c0cd8b222b281676b0bbe243f Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Tue, 2 Mar 2021 13:21:20 +0100 Subject: [PATCH 0133/1324] Update ubuntu_tests.yml --- .github/workflows/ubuntu_tests.yml | 32 ------------------------------ 1 file changed, 32 deletions(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 472c01ac9d..5e7862b188 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -1,26 +1,5 @@ name: ubuntu_tests on: [pull_request, push] -jobs: - ubuntu_tests: - strategy: - fail-fast: false - matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.8, 3.9.2] # 2.7.6, 3.4.10, - runs-on: Ubuntu-20.04 - steps: - - uses: actions/checkout@v2 - # Normally, we would use the superbly maintained... - # - uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # ... but in the repo, we want to test pyenv builds on Ubuntu - - run: | - sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ - libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ - xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - # https://github.com/pyenv/pyenv#installation - - run: pwdname: ubuntu_tests -on: [pull_request, push] jobs: ubuntu_tests: strategy: @@ -51,14 +30,3 @@ jobs: bin/pyenv rehash - run: python --version - run: python -m pip --version - - - env: - PYENV_ROOT: /home/runner/work/pyenv/pyenv - run: | - echo $PYENV_ROOT - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash - - run: python --version - - run: python -m pip --version From 8ee561175531da599aaded40ef2907dbfbc5428e Mon Sep 17 00:00:00 2001 From: Theelgirl Date: Tue, 2 Mar 2021 17:35:27 -0800 Subject: [PATCH 0134/1324] Add CPython 3.10a6 --- plugins/python-build/share/python-build/3.10.0a5 | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.10.0a5 diff --git a/plugins/python-build/share/python-build/3.10.0a5 b/plugins/python-build/share/python-build/3.10.0a5 deleted file mode 100644 index 650adec4e3..0000000000 --- a/plugins/python-build/share/python-build/3.10.0a5 +++ /dev/null @@ -1,10 +0,0 @@ -#require_gcc -prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1h" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1h.tar.gz#5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9" 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-3.10.0a5" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a5.tar.xz#0418e57e7036e219f1e6b6303b21e711f64cfd0fddb0894d8f19f37afffc5d4d" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip -else - install_package "Python-3.10.0a5" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a5.tgz#5799026acafeeac9f583bfae81048e4515304ba04c46e1cc602caf0e5e67b0f7" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip -fi From 23048b4f63b5ee0625d18a9adf8c16a7d1fb57df Mon Sep 17 00:00:00 2001 From: Theelgirl Date: Tue, 2 Mar 2021 17:36:05 -0800 Subject: [PATCH 0135/1324] Add CPython 3.10a6 --- plugins/python-build/share/python-build/3.10.0a6 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.0a6 diff --git a/plugins/python-build/share/python-build/3.10.0a6 b/plugins/python-build/share/python-build/3.10.0a6 new file mode 100644 index 0000000000..1780a0a4fb --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.0a6 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1h" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1h.tar.gz#5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9" 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-3.10.0a6" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a6.tar.xz#70ddd5898b996394103d114185429212dadeaf60fa260054712731bc126dca5c" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.10.0a6" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a6.tgz#81ba70f5ab95358f20886da85288af4117b45eadbe62590ce9a5bbb015f0faf1" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi From f75e0284010e2922a63c772bc090a8bfc168c4b8 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Wed, 3 Mar 2021 13:26:08 +0100 Subject: [PATCH 0136/1324] Prove that actual Python == expected Python --- .github/workflows/ubuntu_tests.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 5e7862b188..2343748cd0 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -30,3 +30,7 @@ jobs: bin/pyenv rehash - run: python --version - run: python -m pip --version + - shell: python # Prove that actual Python == expected Python + env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) From 1bacfa5445db5f69c72e0623422d5fef9a667269 Mon Sep 17 00:00:00 2001 From: Mateusz Neumann Date: Mon, 8 Mar 2021 12:51:02 +0100 Subject: [PATCH 0137/1324] Update GET_PIP_URL The bootstrap.pypa.io URLs for pip installation changed. --- plugins/python-build/bin/python-build | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 650a68212d..0ac8e66919 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2091,22 +2091,22 @@ if [ -z "${GET_PIP_URL}" ]; then # Use custom get-pip URL based on the target version (#1127) case "${DEFINITION_PATH##*/}" in 2.6 | 2.6.* ) - GET_PIP_URL="https://bootstrap.pypa.io/2.6/get-pip.py" + GET_PIP_URL="https://bootstrap.pypa.io/pip/2.6/get-pip.py" ;; 2.7 | 2.7.* ) - GET_PIP_URL="https://bootstrap.pypa.io/2.7/get-pip.py" + GET_PIP_URL="https://bootstrap.pypa.io/pip/2.7/get-pip.py" ;; 3.2 | 3.2.* ) - GET_PIP_URL="https://bootstrap.pypa.io/3.2/get-pip.py" + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.2/get-pip.py" ;; 3.3 | 3.3.* ) - GET_PIP_URL="https://bootstrap.pypa.io/3.3/get-pip.py" + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.3/get-pip.py" ;; 3.4 | 3.4.* ) - GET_PIP_URL="https://bootstrap.pypa.io/3.4/get-pip.py" + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.4/get-pip.py" ;; 3.5 | 3.5.* ) - GET_PIP_URL="https://bootstrap.pypa.io/3.5/get-pip.py" + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.5/get-pip.py" ;; * ) GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py" From 3bdafde5bf6a450c3bcd1846568a8ba5b2f756d1 Mon Sep 17 00:00:00 2001 From: Mateusz Neumann Date: Mon, 8 Mar 2021 13:02:52 +0100 Subject: [PATCH 0138/1324] Fix URLs in the tests --- plugins/python-build/test/pyenv_ext.bats | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 5f6d503787..e51490032f 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -360,7 +360,7 @@ OUT run_inline_definition_with_name --name=2.6 < Date: Thu, 18 Mar 2021 12:49:09 +0300 Subject: [PATCH 0139/1324] 1.2.24 --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9c913b6b8..884b747fc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ ## Version History +## 1.2.24 + +* GitHub Actions: Add $PYENV_ROOT/shims to $PATH (#1838) +* Add Python 3.10.0a6 (#1839) +* Remove the "Using script's directory as PYENV_DIR if shim is invoked with a script argument" feature (#1814) +* Update GET_PIP_URL (#1844) +* GitHub Action to build Python versions on Ubuntu (#1794) +* Make work in nounset (-u) mode (#1786) +* Update miniforge3-4.9.2 (#1834) +* Added aarch64 for Linux in anaconda_architecture() (#1833) +* Hook script to add latest suffix for install command (#1831) +* Fix error link (#1832) +* Clarify proxy variable names in readme (#1830) +* Travis CI: Add Xcode 12 on macOS 10.15.5 (#1708) +* Added --nosystem argument (#1829) +* Add CPython 3.8.8 (#1825) +* Add CPython 3.9.2 (#1826) +* Add manpage (#1790) + ## 1.2.23 + python-build: Add CPython v3.7.10 (#1818) From 332772abc5789041b50c9e041e08c90d2935cec2 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 19 Mar 2021 10:06:26 +0300 Subject: [PATCH 0140/1324] 1.2.24 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 68ba58d4a2..ebc4873669 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.23" +version="1.2.24" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 5a122c6732b3acaa529b1c26ae239a8347183cf8 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Fri, 19 Mar 2021 14:05:48 +0100 Subject: [PATCH 0141/1324] Add GraalPython 21.0.0 --- .../share/python-build/graalpython-21.0.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-21.0.0 diff --git a/plugins/python-build/share/python-build/graalpython-21.0.0 b/plugins/python-build/share/python-build/graalpython-21.0.0 new file mode 100644 index 0000000000..9688c8d85e --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-21.0.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2021, 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='21.0.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="df2317bf57461e6a59840921f05a019a3bdf5e59f867b44ab36804d536224d7f" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="3d4c02286d682228843cca2f4a0faeed7a0a64a9558eea5ceb7992a680bd61e6" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From 61d702405d9934153ba9813642a231200893c863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 1 Mar 2021 07:49:47 +0200 Subject: [PATCH 0142/1324] feat(init): strip - when autodetecting shell For example bash-5.1, bash-static. --- libexec/pyenv-init | 1 + 1 file changed, 1 insertion(+) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 2bf7c56ac4..7240b4c84a 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -38,6 +38,7 @@ if [ -z "$shell" ]; then shell="${shell##-}" shell="${shell:-$SHELL}" shell="${shell##*/}" + shell="${shell%%-*}" fi root="${0%/*}/.." From b5008ce74eb6c054b40edb611e0203e52ae1095c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Tue, 23 Mar 2021 23:45:32 +0200 Subject: [PATCH 0143/1324] test(init): remove misleading detect from parent shell case arg The generated script does not take/use any arguments, so passing /bin/zsh to it serves only to cause confusion. --- test/init.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/init.bats b/test/init.bats index bb57dc3ec6..c9fb0a286d 100755 --- a/test/init.bats +++ b/test/init.bats @@ -39,7 +39,7 @@ eval "\$(pyenv-init -)" echo \$PYENV_SHELL OUT chmod +x myscript.sh - run ./myscript.sh /bin/zsh + run ./myscript.sh assert_success "sh" } From 5c8735cdbfbe9854b7335a0240dfae6173e064b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 27 Mar 2021 10:25:11 +0200 Subject: [PATCH 0144/1324] Add micropython 1.14 --- plugins/python-build/share/python-build/micropython-1.14 | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/python-build/share/python-build/micropython-1.14 diff --git a/plugins/python-build/share/python-build/micropython-1.14 b/plugins/python-build/share/python-build/micropython-1.14 new file mode 100644 index 0000000000..cbc4f67f34 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.14 @@ -0,0 +1,5 @@ +#require_gcc +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.14.tar.xz#97306156fdeab120a1244626c75a929bb820722afdfc1317dbd5dadef388d94c"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.14.zip#9aff4d9d8231d93cb9dac2b239ff947d1f123a0fe7a58614c252474cdd3b88d9"; } +$install micropython-1.14 "$src" micropython From e2a1c77666094d8212382d1a454ab2ba6ea71615 Mon Sep 17 00:00:00 2001 From: idwpan <51302919+idwpan@users.noreply.github.com> Date: Fri, 2 Apr 2021 16:28:07 -0400 Subject: [PATCH 0145/1324] Add CPython 3.9.3 and 3.8.9 (#1859) --- .github/workflows/ubuntu_tests.yml | 2 +- plugins/python-build/share/python-build/3.8.9 | 10 ++++++++++ plugins/python-build/share/python-build/3.9.3 | 10 ++++++++++ 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.8.9 create mode 100644 plugins/python-build/share/python-build/3.9.3 diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 2343748cd0..46494fef8c 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.8, 3.9.2] # 2.7.6, 3.4.10, + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.3] # 2.7.6, 3.4.10, runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/plugins/python-build/share/python-build/3.8.9 b/plugins/python-build/share/python-build/3.8.9 new file mode 100644 index 0000000000..25872473c9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.9 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" 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-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tar.xz#5e391f3ec45da2954419cab0beaefd8be38895ea5ce33577c3ec14940c4b9572" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz#9779ec1df000bf86914cdd40860b88da56c1e61db59d37784beca14a259ac9e9" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.3 b/plugins/python-build/share/python-build/3.9.3 new file mode 100644 index 0000000000..44477c9841 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.3 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" 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-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tar.xz#30811039c65e04c14fc698e423947e464f9316e69fb44610bd38446046bb82b5" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tgz#3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi From 32ba5d5e617b7d7fb1c9b79c1c0e8f1cfe642cd1 Mon Sep 17 00:00:00 2001 From: idwpan <51302919+idwpan@users.noreply.github.com> Date: Sat, 3 Apr 2021 09:01:48 -0400 Subject: [PATCH 0146/1324] bpo-43631: update to openssl 1.1.1k (#1861) --- plugins/python-build/share/python-build/3.8.9 | 2 +- plugins/python-build/share/python-build/3.9.3 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.8.9 b/plugins/python-build/share/python-build/3.8.9 index 25872473c9..2ae9beec3b 100644 --- a/plugins/python-build/share/python-build/3.8.9 +++ b/plugins/python-build/share/python-build/3.8.9 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tar.xz#5e391f3ec45da2954419cab0beaefd8be38895ea5ce33577c3ec14940c4b9572" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.3 b/plugins/python-build/share/python-build/3.9.3 index 44477c9841..87e48760f5 100644 --- a/plugins/python-build/share/python-build/3.9.3 +++ b/plugins/python-build/share/python-build/3.9.3 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tar.xz#30811039c65e04c14fc698e423947e464f9316e69fb44610bd38446046bb82b5" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip From 2197566c425ec411a2cca100c445cb947d4ca015 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 4 Apr 2021 14:41:47 +0300 Subject: [PATCH 0147/1324] Update CHANGELOG.md --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 884b747fc8..fe919d144f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ ## Version History +## 1.2.25 + +* bpo-43631: update to openssl 1.1.1k (#1861) +* Add CPython 3.9.3 and 3.8.9 (#1859) +* Add micropython 1.14 (#1858) +* Shell detect improvements (#1835) +* Test(init): remove misleading detect from parent shell case arg (#1856) +* Add GraalPython 21.0.0 (#1855) + ## 1.2.24 * GitHub Actions: Add $PYENV_ROOT/shims to $PATH (#1838) From 35aa7e52cee26af19ce6b5a8d0aed2efa48fe0bf Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 4 Apr 2021 14:42:16 +0300 Subject: [PATCH 0148/1324] 1.2.25 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ebc4873669..c4da0d63e2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.24" +version="1.2.25" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From e18ea212e9b3102cbce331c91bddd9a2ca21f942 Mon Sep 17 00:00:00 2001 From: idwpan Date: Sun, 4 Apr 2021 17:01:37 -0400 Subject: [PATCH 0149/1324] add CPython 3.9.4 --- .github/workflows/ubuntu_tests.yml | 2 +- plugins/python-build/share/python-build/3.9.4 | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.9.4 diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 46494fef8c..a7f5c1903e 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.3] # 2.7.6, 3.4.10, + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.4] # 2.7.6, 3.4.10, runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/plugins/python-build/share/python-build/3.9.4 b/plugins/python-build/share/python-build/3.9.4 new file mode 100644 index 0000000000..6cbc6cb0a5 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.4 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi From 80067632b67e832527a44302b4373a1f006ce51f Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 5 Apr 2021 14:25:25 +0300 Subject: [PATCH 0150/1324] 1.2.26 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index c4da0d63e2..ea5355df8d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.25" +version="1.2.26" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 4f93366be8060e2b096e8136ffeedf9cbd050bd8 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 5 Apr 2021 14:27:53 +0300 Subject: [PATCH 0151/1324] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe919d144f..02df05704d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Version History +## 1.2.26 + +* Add CPython 3.9.4 (#1865) + ## 1.2.25 * bpo-43631: update to openssl 1.1.1k (#1861) From 0e1b1229ce48c9178917949e817eb0fea9e0bf7b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 8 Apr 2021 12:17:21 +0300 Subject: [PATCH 0152/1324] Create miniforge3-4.10 --- .../share/python-build/miniforge3-4.10 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10 diff --git a/plugins/python-build/share/python-build/miniforge3-4.10 b/plugins/python-build/share/python-build/miniforge3-4.10 new file mode 100644 index 0000000000..0d814b8605 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.0-0-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.10.0-0/Miniforge3-4.10.0-0-Linux-ppc64le.sh#cb72e16906f025bbc979b5e72b494722" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.0-0-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.0-0/Miniforge3-4.10.0-0-Linux-x86_64.sh#3db11e33e22a78e2d3371acc883625df" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Miniforge3-4.10.0-0-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.0-0/Miniforge3-4.10.0-0-Linux-aarch64.sh#64ec2e626c1c71332a73081fe482d08e" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.0-0-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.0-0/Miniforge3-4.10.0-0-MacOSX-arm64.sh#a44e4306922989e49a888c4dd2ad6263" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.0-0-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.0-0/Miniforge3-4.10.0-0-MacOSX-x86_64.sh#76a212a23d14e3f027d44fe6837e4a7d" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From c010935abd1d5f32bb1976458f54132e03d9450f Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 9 Apr 2021 10:46:22 +0300 Subject: [PATCH 0153/1324] Update COMMANDS.md --- COMMANDS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/COMMANDS.md b/COMMANDS.md index eafcd6681c..6da9c0e414 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -267,6 +267,8 @@ you run the given command. $ pyenv which python3.3 /home/yyuu/.pyenv/versions/3.3.3/bin/python3.3 +Use --nosystem argument in case when you don't need to search command in the +system environment. ## `pyenv whence` From 641916270be7f8e6ec29deb3d22f4020398e554c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Mon, 5 Apr 2021 10:22:08 +0300 Subject: [PATCH 0154/1324] feat: support (skip) commented lines in version-file Sometimes it is convenient to be able to temporarily disable something in a version-file. Because these files often aren't necessarily tracked in a SCM, especially when working with virtualenvs, the SCM diffs won't help with showing removed lines which are currently the only way to disable something. --- README.md | 1 + libexec/pyenv-version-file-read | 2 +- test/version-file-read.bats | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c61543567b..b2f6668426 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,7 @@ executable path to each of these using `pyenv which`, e.g. `pyenv which python2. (should display `$(pyenv root)/versions/2.5/bin/python2.5`), or `pyenv which python3.4` (should display path to system Python3). You can also specify multiple versions in a `.python-version` file, separated by newlines or any whitespace. +Lines starting with a `#` are ignored. ### Locating the Python Installation diff --git a/libexec/pyenv-version-file-read b/libexec/pyenv-version-file-read index ae24345caa..214d1ef43b 100755 --- a/libexec/pyenv-version-file-read +++ b/libexec/pyenv-version-file-read @@ -9,7 +9,7 @@ if [ -e "$VERSION_FILE" ]; then # Read the first non-whitespace word from the specified version file. # Be careful not to load it whole in case there's something crazy in it. IFS="${IFS}"$'\r' - words=($(cut -b 1-1024 "$VERSION_FILE" | sed 's/[[:space:]]*\([^[:space:]^[:space:]]*\).*/\1/')) + words=($(cut -b 1-1024 "$VERSION_FILE" | sed -n 's/^[[:space:]]*\([^[:space:]#][^[:space:]]*\).*/\1/p')) versions=("${words[@]}") if [ -n "$versions" ]; then diff --git a/test/version-file-read.bats b/test/version-file-read.bats index d31037c227..a7b184de73 100644 --- a/test/version-file-read.bats +++ b/test/version-file-read.bats @@ -70,3 +70,15 @@ IN run pyenv-version-file-read my-version assert_success "3.3.5" } + +@test "skips comment lines" { + cat > my-version < Date: Mon, 12 Apr 2021 20:43:04 +0700 Subject: [PATCH 0155/1324] pypy3.7-7.3.4 --- .../share/python-build/pypy3.7-7.3.4 | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.4 diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.4 b/plugins/python-build/share/python-build/pypy3.7-7.3.4 new file mode 100644 index 0000000000..57b46275c5 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.4 @@ -0,0 +1,39 @@ +VERSION='7.3.4' +PYVER='3.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#04de1a2e80530f3d74abcf133ec046a0fb12d81956bc043dee8ab4799f3b77eb" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#09d7298b44a38648a87995ec06e1e093761644e50f547c8bb0b2d7f4fe433548" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#a4148fa73b74a091e004e1f378b278c0b8830984cbcb91e10fa31fd915c43efe" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#8a4f0e6c7e3845820202bf7f46b48e36886ceb820ff0767963fd74091c4f5d13" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win64" ) + install_zip "pypy${PYVER}-v${VERSION}-win64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win64.zip#0ff4e4653f1ff0653f105680eb101c64c857fa8f828a54a61b02f65c94b5d262" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac From 60dbcea61242ce3117203cbc25d1be3f1f8a2f60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Tue, 13 Apr 2021 10:54:42 +0300 Subject: [PATCH 0156/1324] docs(README): fix info about version-file separator Any whitespace doesn't work, need version per line. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b2f6668426..add2eefcf2 100644 --- a/README.md +++ b/README.md @@ -135,7 +135,7 @@ global system 3.3.6 3.2 2.5`. At this point, one should be able to find the full executable path to each of these using `pyenv which`, e.g. `pyenv which python2.5` (should display `$(pyenv root)/versions/2.5/bin/python2.5`), or `pyenv which python3.4` (should display path to system Python3). You can also specify multiple -versions in a `.python-version` file, separated by newlines or any whitespace. +versions in a `.python-version` file, separated by newlines. Lines starting with a `#` are ignored. ### Locating the Python Installation From e18620c0a7b5d0ef47405955481a23bba4a3269c Mon Sep 17 00:00:00 2001 From: Theelgirl Date: Mon, 19 Apr 2021 09:14:23 -0700 Subject: [PATCH 0157/1324] Add CPython 3.10.0a7 --- plugins/python-build/share/python-build/3.10.0a6 | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.10.0a6 diff --git a/plugins/python-build/share/python-build/3.10.0a6 b/plugins/python-build/share/python-build/3.10.0a6 deleted file mode 100644 index 1780a0a4fb..0000000000 --- a/plugins/python-build/share/python-build/3.10.0a6 +++ /dev/null @@ -1,10 +0,0 @@ -#require_gcc -prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1h" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1h.tar.gz#5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9" 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-3.10.0a6" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a6.tar.xz#70ddd5898b996394103d114185429212dadeaf60fa260054712731bc126dca5c" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip -else - install_package "Python-3.10.0a6" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a6.tgz#81ba70f5ab95358f20886da85288af4117b45eadbe62590ce9a5bbb015f0faf1" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip -fi From 30ba8356bc19ae6942fbc96019bb0104526657b0 Mon Sep 17 00:00:00 2001 From: Theelgirl Date: Mon, 19 Apr 2021 09:15:12 -0700 Subject: [PATCH 0158/1324] Add CPython 3.10.0a7 --- plugins/python-build/share/python-build/3.10.0a7 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.0a7 diff --git a/plugins/python-build/share/python-build/3.10.0a7 b/plugins/python-build/share/python-build/3.10.0a7 new file mode 100644 index 0000000000..acea1967b5 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.0a7 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tar.xz#513199724498513e7098c46bf6442192f5ffef32478d92499704aeeff3516db" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tgz#513199724498513e7098c46bf6442192f5ffef32478d92499704aeeff3516db2" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi From 8dd8fa2d66822b597b345ac7d7c7af99e0c8ca6b Mon Sep 17 00:00:00 2001 From: Theelgirl Date: Mon, 19 Apr 2021 09:27:38 -0700 Subject: [PATCH 0159/1324] Fix missing character in checksum and add tgz checksum --- plugins/python-build/share/python-build/3.10.0a7 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10.0a7 b/plugins/python-build/share/python-build/3.10.0a7 index acea1967b5..e73e8790ae 100644 --- a/plugins/python-build/share/python-build/3.10.0a7 +++ b/plugins/python-build/share/python-build/3.10.0a7 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tar.xz#513199724498513e7098c46bf6442192f5ffef32478d92499704aeeff3516db" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tar.xz#513199724498513e7098c46bf6442192f5ffef32478d92499704aeeff3516db2" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tgz#513199724498513e7098c46bf6442192f5ffef32478d92499704aeeff3516db2" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tgz#8a13ee8033d32085e743e965f72e5ba631c82c8ad4d75d5ff68731a74c5c742b" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip fi From a9a3c96bbdde8bafe9a55f19c6a08a292322e8e6 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Wed, 21 Apr 2021 11:15:54 +0200 Subject: [PATCH 0160/1324] Add GraalPython 21.1.0 --- .../share/python-build/graalpython-21.1.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-21.1.0 diff --git a/plugins/python-build/share/python-build/graalpython-21.1.0 b/plugins/python-build/share/python-build/graalpython-21.1.0 new file mode 100644 index 0000000000..c1a59afc68 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-21.1.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2021, 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='21.1.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="fb48d041e4113cf8a0d0535402eaa64af112b1999839ebee49f431963af3ece1" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="3efb2257b21ce7fdab5d3986f571ad531a5c1c73d23468431a5c8440ee49c2f6" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From 9edeafbc77aabf7b4d92464890190828fced9ed0 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 1 May 2021 08:41:08 +0300 Subject: [PATCH 0161/1324] 1.2.27 --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02df05704d..02606f1247 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ ## Version History +## 1.2.27 + +* Add GraalPython 21.1.0 (#1882) +* Add CPython 3.10.0a7 (#1880) +* Docs(README): fix info about version-file separator (#1874) +* List versions starting with a dot (#1350) +* Feat: support (skip) commented lines in version-file (#1866) +* pypy3.7-7.3.4 (#1873) +* Create miniforge3-4.10 (#1868) +* Add CPython 3.9.4 (#1865) + ## 1.2.26 * Add CPython 3.9.4 (#1865) From 6656066d4fefba64ae247956bb35399f98a399c4 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 1 May 2021 08:41:27 +0300 Subject: [PATCH 0162/1324] 1.2.27 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ea5355df8d..8fb706dcf7 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.26" +version="1.2.27" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 7ad2162004e877da625db99225f00efc97c02b3c Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Mon, 3 May 2021 22:34:56 +0200 Subject: [PATCH 0163/1324] Add CPython 3.10.0b1 --- plugins/python-build/share/python-build/3.10.0b1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.0b1 diff --git a/plugins/python-build/share/python-build/3.10.0b1 b/plugins/python-build/share/python-build/3.10.0b1 new file mode 100644 index 0000000000..1b1a0a38f2 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.0b1 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tar.xz#a30c55b26a91f4c76392ba2b2e87c2d591fdb2b36f7b58d39fe90bd400fef1a3" ldflags_dirs standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tgz#a44c4726948689fe22f3edf30f11bf361d4536b38738ca955747eb5860c2dc93" ldflags_dirs standard verify_py310 copy_python_gdb ensurepip +fi From 79d979f954ae4a59e4b7cc8b1ffa4cc6c7c7d7df Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Tue, 4 May 2021 07:57:52 +0200 Subject: [PATCH 0164/1324] Add test --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index a7f5c1903e..7a20a80ab0 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.4] # 2.7.6, 3.4.10, + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.4, 3.10.0b1] # 2.7.6, 3.4.10, runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 From 1146ce6e9cb25f165e2a04a563215cba380399b8 Mon Sep 17 00:00:00 2001 From: Rajiv Bakulesh Shah Date: Tue, 4 May 2021 05:42:26 -0700 Subject: [PATCH 0165/1324] Add CPython 3.9.5 (#1892) Co-authored-by: Josh Friend --- .github/workflows/ubuntu_tests.yml | 2 +- plugins/python-build/share/python-build/3.9.5 | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.9.5 diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 7a20a80ab0..961a97e558 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.4, 3.10.0b1] # 2.7.6, 3.4.10, + python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.5] # 2.7.6, 3.4.10, runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 new file mode 100644 index 0000000000..9502865ebc --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.5 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip +fi From 7355554fdc2735307e4db44ba6d94f9312300b0b Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Tue, 4 May 2021 14:48:39 +0200 Subject: [PATCH 0166/1324] Add CPython 3.8.10 (#1895) Co-authored-by: Josh Friend --- .github/workflows/ubuntu_tests.yml | 8 +++++++- plugins/python-build/share/python-build/3.8.10 | 10 ++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.8.10 diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 961a97e558..4b125c398e 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -5,7 +5,13 @@ jobs: strategy: fail-fast: false matrix: - python-version: [2.7.18, 3.5.10, 3.6.13, 3.7.10, 3.8.9, 3.9.5] # 2.7.6, 3.4.10, + python-version: + - 2.7.18 + - 3.5.10 + - 3.6.13 + - 3.7.10 + - 3.8.10 + - 3.9.5 runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/plugins/python-build/share/python-build/3.8.10 b/plugins/python-build/share/python-build/3.8.10 new file mode 100644 index 0000000000..c2d6f94266 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.10 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip +fi From e887a3d0623b82aa147258758f437b8a6fd87837 Mon Sep 17 00:00:00 2001 From: "S. Co1" Date: Tue, 4 May 2021 09:44:58 -0400 Subject: [PATCH 0167/1324] Fix CPython 3.10-dev target branch (#1896) --- plugins/python-build/share/python-build/3.10-dev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index 68b97e6c55..d365d9bfc7 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 "Python-3.10-dev" "https://github.com/python/cpython" master standard verify_py310 copy_python_gdb ensurepip +install_git "Python-3.10-dev" "https://github.com/python/cpython" main standard verify_py310 copy_python_gdb ensurepip From 1edded3426dd5799e2f010a8009b142d3a5b4610 Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Tue, 4 May 2021 20:28:09 +0200 Subject: [PATCH 0168/1324] Update 3.10-dev and 3.11-dev (#1897) --- plugins/python-build/bin/python-build | 5 +++++ plugins/python-build/share/python-build/3.10-dev | 2 +- plugins/python-build/share/python-build/3.11-dev | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.11-dev diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0ac8e66919..f5417b6c1d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1748,6 +1748,11 @@ build_package_verify_py310() { build_package_verify_py39 "$1" "${2:-3.10}" } +# Post-install check for Python 3.11.x +build_package_verify_py311() { + build_package_verify_py310 "$1" "${2:-3.11}" +} + # Copy Tools/gdb/libpython.py to pythonX.Y-gdb.py (#1190) build_package_copy_python_gdb() { if [ -e "$BUILD_PATH/$1/Tools/gdb/libpython.py" ]; then diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index d365d9bfc7..27cb27976d 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 "Python-3.10-dev" "https://github.com/python/cpython" main standard verify_py310 copy_python_gdb ensurepip +install_git "Python-3.10-dev" "https://github.com/python/cpython" 3.10 standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.11-dev b/plugins/python-build/share/python-build/3.11-dev new file mode 100644 index 0000000000..d869ec05f7 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11-dev @@ -0,0 +1,6 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 "Python-3.11-dev" "https://github.com/python/cpython" main standard verify_py311 copy_python_gdb ensurepip From 5998f4f7ab12fc0781015ccc0e21ac0978b6c7f4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 4 May 2021 04:12:17 +0300 Subject: [PATCH 0169/1324] Refactoring: make logic more fit for rearrangement With functions, we have more leeway in what to call --- libexec/pyenv-init | 114 +++++++++++++++++++++++++++++---------------- 1 file changed, 73 insertions(+), 41 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 7240b4c84a..c61c328525 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -43,7 +43,29 @@ fi root="${0%/*}/.." -if [ -z "$print" ]; then +function main() { + case "$mode" in + "help") + help_ + exit 1 + ;; + "path") + print_path + exit 0 + ;; + "print") + init_dirs + print_env + print_completion + print_shell_function + exit 0 + ;; + esac + # should never get here + exit 2 +} + +function help_() { case "$shell" in bash ) if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then @@ -79,36 +101,41 @@ if [ -z "$print" ]; then esac echo } >&2 +} - exit 1 -fi +function init_dirs() { + mkdir -p "${PYENV_ROOT}/"{shims,versions} +} -mkdir -p "${PYENV_ROOT}/"{shims,versions} - -case "$shell" in -fish ) - echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" - echo "set -gx PYENV_SHELL $shell" -;; -* ) - echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' - echo "export PYENV_SHELL=$shell" -;; -esac - -completion="${root}/completions/pyenv.${shell}" -if [ -r "$completion" ]; then - echo "source '$completion'" -fi +function print_env() { + case "$shell" in + fish ) + echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" + echo "set -gx PYENV_SHELL $shell" + ;; + * ) + echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' + echo "export PYENV_SHELL=$shell" + ;; + esac +} -if [ -z "$no_rehash" ]; then - echo 'command pyenv rehash 2>/dev/null' -fi +function print_completion() { + completion="${root}/completions/pyenv.${shell}" + if [ -r "$completion" ]; then + echo "source '$completion'" + fi -commands=(`pyenv-commands --sh`) -case "$shell" in -fish ) - cat </dev/null' + fi +} + +function print_shell_function() { + commands=(`pyenv-commands --sh`) + case "$shell" in + fish ) + cat < Date: Tue, 4 May 2021 20:24:28 +0300 Subject: [PATCH 0170/1324] Don't print actual PATH in test output --- test/exec.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/exec.bats b/test/exec.bats index 2a7f48562c..db78a158c7 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -90,7 +90,7 @@ OUT assert_success "${system_python}" } -@test '$PATH is not modified with system Python' { +@test 'PATH is not modified with system Python' { # Create a wrapper executable that verifies PATH. PYENV_VERSION="custom" create_executable "python" '[[ "$PATH" == "${PYENV_TEST_DIR}/root/versions/custom/bin:"* ]] || { echo "unexpected:$PATH"; exit 2;}' From 783870759566a77d09b426e0305bc0993a522765 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 4 May 2021 04:30:52 +0300 Subject: [PATCH 0171/1324] Separate startup logic into PATH and the rest PATH manipulation should be done in ~/.profile rather than ~/.*rc since .rc can be sourced multiple times --- README.md | 25 +++++-------------------- libexec/pyenv-init | 43 +++++++++++++++++++++++++++++++++---------- test/init.bats | 8 ++++---- 3 files changed, 42 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index add2eefcf2..b821d60249 100644 --- a/README.md +++ b/README.md @@ -208,28 +208,18 @@ easy to fork and contribute any changes back upstream. pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access to the `pyenv` command-line utility. - - For **bash**: - ~~~ bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - ~~~ - - - For **Ubuntu Desktop**: + - For **bash**/**Zsh**: ~~~ bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc - ~~~ - - - For **Zsh**: - ~~~ zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init --path)"' >> ~/.profile ~~~ - For **Fish shell**: ~~~ fish set -Ux PYENV_ROOT $HOME/.pyenv set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths + pyenv init --path | source ~~~ - **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy` too. @@ -239,11 +229,6 @@ easy to fork and contribute any changes back upstream. configuration file since it manipulates `PATH` during the initialization. - For **bash**: - ~~~ bash - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bash_profile - ~~~ - - - For **Ubuntu Desktop** and **Fedora**: ~~~ bash echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc ~~~ diff --git a/libexec/pyenv-init b/libexec/pyenv-init index c61c328525..6088584301 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Summary: Configure the shell environment for pyenv -# Usage: eval "$(pyenv init - [--no-rehash] [])" +# Usage: eval "$(pyenv init [-|--path] [--no-rehash] [])" set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -8,6 +8,7 @@ set -e # Provide pyenv completions if [ "$1" = "--complete" ]; then echo - + echo --path echo --no-rehash echo bash echo fish @@ -16,15 +17,20 @@ if [ "$1" = "--complete" ]; then exit fi -print="" +mode="help" no_rehash="" for args in "$@" do if [ "$args" = "-" ]; then - print=1 + mode="print" shift fi + if [ "$args" = "--path" ]; then + mode="path" + shift + fi + if [ "$args" = "--no-rehash" ]; then no_rehash=1 shift @@ -68,11 +74,7 @@ function main() { function help_() { case "$shell" in bash ) - if [ -f "${HOME}/.bashrc" ] && [ ! -f "${HOME}/.bash_profile" ]; then - profile='~/.bashrc' - else - profile='~/.bash_profile' - fi + profile='~/.bashrc' ;; zsh ) profile='~/.zshrc' @@ -100,6 +102,17 @@ function help_() { ;; esac echo + echo "# And the following to ~/.profile:" + echo + case "$shell" in + fish ) + echo 'pyenv init --path | source' + ;; + * ) + echo 'eval "$(pyenv init --path)"' + ;; + esac + echo } >&2 } @@ -107,14 +120,24 @@ function init_dirs() { mkdir -p "${PYENV_ROOT}/"{shims,versions} } +function print_path() { + # Need to use the login shell rather than the current one + case "$shell" in + fish ) + echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" + ;; + * ) + echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' + ;; + esac +} + function print_env() { case "$shell" in fish ) - echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" echo "set -gx PYENV_SHELL $shell" ;; * ) - echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' echo "export PYENV_SHELL=$shell" ;; esac diff --git a/test/init.bats b/test/init.bats index c9fb0a286d..bcb937c1f2 100755 --- a/test/init.bats +++ b/test/init.bats @@ -64,28 +64,28 @@ OUT @test "adds shims to PATH" { export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" - run pyenv-init - bash + run pyenv-init --path bash assert_success assert_line 0 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' } @test "adds shims to PATH (fish)" { export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" - run pyenv-init - fish + run pyenv-init --path fish assert_success assert_line 0 "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } @test "can add shims to PATH more than once" { export PATH="${PYENV_ROOT}/shims:$PATH" - run pyenv-init - bash + run pyenv-init --path bash assert_success assert_line 0 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' } @test "can add shims to PATH more than once (fish)" { export PATH="${PYENV_ROOT}/shims:$PATH" - run pyenv-init - fish + run pyenv-init --path fish assert_success assert_line 0 "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } From 3e3f40fefcdf2060b421a688168f3dd2f03811ef Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 4 May 2021 16:59:56 +0300 Subject: [PATCH 0172/1324] Warn users to add `pyenv init --path` to ~/.profile To facilitate migration --- libexec/pyenv-init | 8 ++++++++ test/init.bats | 7 +++++++ 2 files changed, 15 insertions(+) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 6088584301..22e1da02d9 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -61,6 +61,7 @@ function main() { ;; "print") init_dirs + warn_path print_env print_completion print_shell_function @@ -132,6 +133,13 @@ function print_path() { esac } +function warn_path() { + if ! perl -ls0x3A -e 'while (<>) { chomp; ($_ eq $d) && exit 0; } exit 1' -- -d="${PYENV_ROOT}/shims" <<<"$PATH" ; then + echo 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' + echo 'echo '\''Run `pyenv init` to see the necessary changes to make to your configuration.'\' + fi +} + function print_env() { case "$shell" in fish ) diff --git a/test/init.bats b/test/init.bats index bcb937c1f2..121c3b62eb 100755 --- a/test/init.bats +++ b/test/init.bats @@ -90,6 +90,13 @@ OUT assert_line 0 "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } +@test "prints a warning if shims not in PATH" { + export PATH="$(perl -0x3A -ls -e 'while (<>) { chomp; ($_ ne $d) && print; }' -- -d="${PYENV_ROOT}/shims" <<<"$PATH")" + run pyenv-init - + assert_success + assert_line 0 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' +} + @test "outputs sh-compatible syntax" { run pyenv-init - bash assert_success From cf17d4a548e83a64eb0ade47993ca11297846367 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 May 2021 15:02:19 +0300 Subject: [PATCH 0173/1324] Delete pyston-0.5.1 --- .../share/python-build/pyston-0.5.1 | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 plugins/python-build/share/python-build/pyston-0.5.1 diff --git a/plugins/python-build/share/python-build/pyston-0.5.1 b/plugins/python-build/share/python-build/pyston-0.5.1 deleted file mode 100644 index cdb6b77e54..0000000000 --- a/plugins/python-build/share/python-build/pyston-0.5.1 +++ /dev/null @@ -1,23 +0,0 @@ -case "$(pyston_architecture 2>/dev/null || true)" in -"linux64" ) - install_package "pyston-0.5.1-linux64" "https://github.com/dropbox/pyston/releases/download/v0.5.1/pyston-0.5.1-linux64.tar.gz#4b0d2ad2c19f6393b79adbb9312649d38cb8cb3daf0c8fdf8631465c7761bb79" "pyston" verify_py27 - # disabling ensurepip avoids having installation aborted because of a coredump - # pyston targets python 2.7.7 and does not have ensurepip, when attempting to - # run https://bootstrap.pypa.io/get-pip.py it dumps core, see - # https://github.com/dropbox/pyston/issues/1373 - # activate the virtualenv so that we're using the correct pip and site-packages location - # ( source "${PREFIX_PATH}/bin/activate" ) - # FIXME: if this fails it should not break the installation - # ( cd "${PREFIX_PATH}/bin" && ./pip install https://github.com/dropbox/pyston/releases/download/v0.5.1/Cython-0.24-pyston.tar.gz && ./pip install git+git://github.com/numpy/numpy@v1.11.0 ) - # deactivate the virtualenv - # ( deactivate ) - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": A Pyston 0.5.1 binary is not available for $(pyston_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac From 4464fda5afec0671dcb6900c2bb97a80534ed021 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 May 2021 15:02:36 +0300 Subject: [PATCH 0174/1324] Delete pyston-0.6.0 --- .../share/python-build/pyston-0.6.0 | 23 ------------------- 1 file changed, 23 deletions(-) delete mode 100644 plugins/python-build/share/python-build/pyston-0.6.0 diff --git a/plugins/python-build/share/python-build/pyston-0.6.0 b/plugins/python-build/share/python-build/pyston-0.6.0 deleted file mode 100644 index 5eb2b3aa83..0000000000 --- a/plugins/python-build/share/python-build/pyston-0.6.0 +++ /dev/null @@ -1,23 +0,0 @@ -case "$(pyston_architecture 2>/dev/null || true)" in -"linux64" ) - install_package "pyston-0.6.0-linux64" "https://github.com/dropbox/pyston/releases/download/v0.6/pyston-0.6.0-linux64.tar.gz#c31240a66cd3ed566ef88a8818a960d925fbf60ab17db722224794346b827f9f" "pyston" verify_py27 - # disabling ensurepip avoids having installation aborted because of a coredump - # pyston targets python 2.7.7 and does not have ensurepip, when attempting to - # run https://bootstrap.pypa.io/get-pip.py it dumps core, see - # https://github.com/dropbox/pyston/issues/1373 - # activate the virtualenv so that we're using the correct pip and site-packages location - # ( source "${PREFIX_PATH}/bin/activate" ) - # FIXME: if this fails it should not break the installation - # ( cd "${PREFIX_PATH}/bin" && ./pip install https://github.com/dropbox/pyston/releases/download/v0.6/Cython-0.24-pyston.tar.gz && ./pip install git+git://github.com/numpy/numpy@v1.11.0 ) - # deactivate the virtualenv - # ( deactivate ) - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": A Pyston 0.6.0 binary is not available for $(pyston_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac From 92f7510b4bc8051dcab49b46098444f8da37fc10 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 May 2021 15:02:55 +0300 Subject: [PATCH 0175/1324] Delete pyston-0.6.1 --- .../share/python-build/pyston-0.6.1 | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 plugins/python-build/share/python-build/pyston-0.6.1 diff --git a/plugins/python-build/share/python-build/pyston-0.6.1 b/plugins/python-build/share/python-build/pyston-0.6.1 deleted file mode 100644 index e6f7153e79..0000000000 --- a/plugins/python-build/share/python-build/pyston-0.6.1 +++ /dev/null @@ -1,30 +0,0 @@ -echo -colorize 1 "WARNING" -echo ": Pyston only runs on x86_64 platforms, and only has been tested on Ubuntu" -echo "(copied from the Pyston README at https://github.com/dropbox/pyston), so" -echo "your mileage may vary with other Linux distributions" -echo - -case "$(pyston_architecture 2>/dev/null || true)" in -"linux64" ) - install_package "pyston-0.6.1-linux64" "https://github.com/dropbox/pyston/releases/download/v0.6.1/pyston-0.6.1-linux64.tar.gz#b09516d8e421cb004ef39d832bae600face4ecf80d9791469fb2c026bcf1faae" "pyston" verify_py27 - # disabling ensurepip avoids having installation aborted because of a coredump - # pyston targets python 2.7.7 and does not have ensurepip, when attempting to - # run https://bootstrap.pypa.io/get-pip.py it dumps core, see - # https://github.com/dropbox/pyston/issues/1373 - # activate the virtualenv so that we're using the correct pip and site-packages location - # ( source "${PREFIX_PATH}/bin/activate" ) - # FIXME: if this fails it should not break the installation - # ( cd "${PREFIX_PATH}/bin" && ./pip install https://github.com/dropbox/pyston/releases/download/v0.6/Cython-0.24-pyston.tar.gz && ./pip install git+git://github.com/numpy/numpy@v1.11.0 ) - # deactivate the virtualenv - # ( deactivate ) - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": A Pyston 0.6.1 binary is not available for $(pyston_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac From 58b09b7461a7a859474b911dbe617889d3bbcf9a Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 May 2021 15:04:20 +0300 Subject: [PATCH 0176/1324] Create pyston-2.2 --- .../share/python-build/pyston-2.2 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/pyston-2.2 diff --git a/plugins/python-build/share/python-build/pyston-2.2 b/plugins/python-build/share/python-build/pyston-2.2 new file mode 100644 index 0000000000..2826330fd0 --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.2 @@ -0,0 +1,19 @@ +echo +colorize 1 "WARNING" +echo ": Pyston only runs on x86_64 platforms, and only has been tested on Ubuntu" +echo "so, your mileage may vary with other Linux distributions." +echo + +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston 2.2 binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 328fd42c3a2fbf14ae46dae2021a087fe27ba7e2 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 May 2021 15:06:06 +0300 Subject: [PATCH 0177/1324] support for pyston 2.2 --- plugins/python-build/bin/python-build | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f5417b6c1d..ec14dec953 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -851,12 +851,21 @@ build_package_jython_builder() { } build_package_pyston() { - mkdir -p "${PREFIX_PATH}/" - cp -fR . "${PREFIX_PATH}/" - chmod +x "${PREFIX_PATH}/"pyston - # FIXME ugly hack below adapted from - # https://github.com/dropbox/pyston/blob/master/docker/pyston/Dockerfile - ( cd "${PREFIX_PATH}/" && ./pyston virtualenv/virtualenv.py . ) + # currently supported version 2.2 and upper + build_package_copy + mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib" + local bin + shopt -s nullglob + for bin in "bin/"*; do + if [ -f "${bin}" ] && [ -x "${bin}" ] && [ ! -L "${bin}" ]; then + case "${bin##*/}" in + "pyston"* ) + ( cd "${PREFIX_PATH}/bin" && ln -fs "${bin##*/}" "python" ) + ;; + esac + fi + done + shopt -u nullglob } build_package_ironpython() { From a59430c7c40ca06935431b0a06e2886dae65febc Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 7 May 2021 02:57:58 +0300 Subject: [PATCH 0178/1324] Bump OpenSSL to 1.1.1x for all Pythons that support MacOS 11 To support building for Apple ARM64 which was introduced in MacOS 11 OpenSSL added support for Apple ARM in 1.1.1 (https://github.com/openssl/openssl/commit/61168b5b8dde03f3b77ddf5e4b1b81c338c01746). Python added support for MacOS 11 in 3.7.8+, 3.8.4+, 3.9.0+ (https://github.com/python/cpython/pull/21113 and backports). --- plugins/python-build/share/python-build/3.10-dev | 2 +- plugins/python-build/share/python-build/3.11-dev | 2 +- plugins/python-build/share/python-build/3.7-dev | 2 +- plugins/python-build/share/python-build/3.7.10 | 2 +- plugins/python-build/share/python-build/3.7.8 | 2 +- plugins/python-build/share/python-build/3.7.9 | 2 +- plugins/python-build/share/python-build/3.8-dev | 2 +- plugins/python-build/share/python-build/3.8.4 | 2 +- plugins/python-build/share/python-build/3.8.5 | 2 +- plugins/python-build/share/python-build/3.8.6 | 2 +- plugins/python-build/share/python-build/3.8.7 | 2 +- plugins/python-build/share/python-build/3.9-dev | 2 +- plugins/python-build/share/python-build/3.9.0 | 2 +- plugins/python-build/share/python-build/3.9.1 | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index 27cb27976d..f02c4cbad2 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.10-dev" "https://github.com/python/cpython" 3.10 standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.11-dev b/plugins/python-build/share/python-build/3.11-dev index d869ec05f7..0a9015a3f3 100644 --- a/plugins/python-build/share/python-build/3.11-dev +++ b/plugins/python-build/share/python-build/3.11-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.11-dev" "https://github.com/python/cpython" main standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.7-dev b/plugins/python-build/share/python-build/3.7-dev index 285c62d1f0..359c8c00db 100644 --- a/plugins/python-build/share/python-build/3.7-dev +++ b/plugins/python-build/share/python-build/3.7-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.7-dev" "https://github.com/python/cpython" "3.7" standard verify_py37 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.7.10 b/plugins/python-build/share/python-build/3.7.10 index 8f789cf2e3..657b4d5d02 100644 --- a/plugins/python-build/share/python-build/3.7.10 +++ b/plugins/python-build/share/python-build/3.7.10 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz#f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.7.8 b/plugins/python-build/share/python-build/3.7.8 index b554b23f0b..0e98508a6e 100644 --- a/plugins/python-build/share/python-build/3.7.8 +++ b/plugins/python-build/share/python-build/3.7.8 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" 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-3.7.8" "https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tar.xz#43a543404b363f0037f89df8478f19db2dbc0d6f3ffee310bc2997fa71854a63" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.7.9 b/plugins/python-build/share/python-build/3.7.9 index 3b35af290a..91cfa35d1c 100644 --- a/plugins/python-build/share/python-build/3.7.9 +++ b/plugins/python-build/share/python-build/3.7.9 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz#91923007b05005b5f9bd46f3b9172248aea5abc1543e8a636d59e629c3331b01" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8-dev b/plugins/python-build/share/python-build/3.8-dev index 5c52a61251..14c5795ad6 100644 --- a/plugins/python-build/share/python-build/3.8-dev +++ b/plugins/python-build/share/python-build/3.8-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.8-dev" "https://github.com/python/cpython" "3.8" standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.4 b/plugins/python-build/share/python-build/3.8.4 index 3efa310510..fa49dd7639 100644 --- a/plugins/python-build/share/python-build/3.8.4 +++ b/plugins/python-build/share/python-build/3.8.4 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.4" "https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tar.xz#5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.5 b/plugins/python-build/share/python-build/3.8.5 index a6f6e102ff..9d2c6009c6 100644 --- a/plugins/python-build/share/python-build/3.8.5 +++ b/plugins/python-build/share/python-build/3.8.5 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.5" "https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz#e3003ed57db17e617acb382b0cade29a248c6026b1bd8aad1f976e9af66a83b0" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.6 b/plugins/python-build/share/python-build/3.8.6 index 3c01bafaf2..ee9d9d1c8e 100644 --- a/plugins/python-build/share/python-build/3.8.6 +++ b/plugins/python-build/share/python-build/3.8.6 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz#a9e0b79d27aa056eb9cce8d63a427b5f9bab1465dee3f942dcfdb25a82f4ab8a" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.7 b/plugins/python-build/share/python-build/3.8.7 index d1dc96dd7d..9225a961ea 100644 --- a/plugins/python-build/share/python-build/3.8.7 +++ b/plugins/python-build/share/python-build/3.8.7 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tar.xz#ddcc1df16bb5b87aa42ec5d20a5b902f2d088caa269b28e01590f97a798ec50a" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9-dev b/plugins/python-build/share/python-build/3.9-dev index 40a963dc64..9019194d39 100644 --- a/plugins/python-build/share/python-build/3.9-dev +++ b/plugins/python-build/share/python-build/3.9-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.9-dev" "https://github.com/python/cpython" 3.9 standard verify_py39 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.0 b/plugins/python-build/share/python-build/3.9.0 index 64762dd03b..b928e7b935 100644 --- a/plugins/python-build/share/python-build/3.9.0 +++ b/plugins/python-build/share/python-build/3.9.0 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz#9c73e63c99855709b9be0b3cc9e5b072cb60f37311e8c4e50f15576a0bf82854" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 index fcab5efbfb..d2a1161677 100644 --- a/plugins/python-build/share/python-build/3.9.1 +++ b/plugins/python-build/share/python-build/3.9.1 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip From 73e41c250ec38535106cf520c676417eaeac026f Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 7 May 2021 09:09:28 +0300 Subject: [PATCH 0179/1324] Delete 3.10.0a7 --- plugins/python-build/share/python-build/3.10.0a7 | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.10.0a7 diff --git a/plugins/python-build/share/python-build/3.10.0a7 b/plugins/python-build/share/python-build/3.10.0a7 deleted file mode 100644 index e73e8790ae..0000000000 --- a/plugins/python-build/share/python-build/3.10.0a7 +++ /dev/null @@ -1,10 +0,0 @@ -#require_gcc -prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tar.xz#513199724498513e7098c46bf6442192f5ffef32478d92499704aeeff3516db2" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip -else - install_package "Python-3.10.0a7" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0a7.tgz#8a13ee8033d32085e743e965f72e5ba631c82c8ad4d75d5ff68731a74c5c742b" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip -fi From aab562c696ee7c5cd31a2821a290baaa8fcde7f3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 7 May 2021 16:21:17 +0300 Subject: [PATCH 0180/1324] Add a warning about needing to restart the entire login session E.g. for a GUI session, ~/.profile is executed by the GUI login "shell" at its startup so one needs to fully log out and log back in. Before that, the change would only be seen by shells explicitly started as login shells. --- libexec/pyenv-init | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 22e1da02d9..0f06c706ba 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -114,6 +114,9 @@ function help_() { ;; esac echo + echo '# Make sure to restart your entire logon session' + echo '# for changes to ~/.profile to take effect.' + echo } >&2 } From a52e79856e8725caf7e7b0a2fbf07ac720b4d00c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 7 May 2021 19:05:02 +0300 Subject: [PATCH 0181/1324] Create no-response.yml --- .github/no-response.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .github/no-response.yml diff --git a/.github/no-response.yml b/.github/no-response.yml new file mode 100644 index 0000000000..05a92bbbbc --- /dev/null +++ b/.github/no-response.yml @@ -0,0 +1,13 @@ +# Configuration for probot-no-response - https://github.com/probot/no-response + +# Number of days of inactivity before an Issue is closed for lack of response +daysUntilClose: 30 +# Label requiring a response +responseRequiredLabel: discussion +# Comment to post when closing an Issue for lack of response. Set to `false` to disable +closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. From 35795148fb63fd27aad8cf79cd38ba715f74d18d Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 7 May 2021 19:38:57 +0300 Subject: [PATCH 0182/1324] Update no-response.yml --- .github/no-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/no-response.yml b/.github/no-response.yml index 05a92bbbbc..3f677a3e32 100644 --- a/.github/no-response.yml +++ b/.github/no-response.yml @@ -3,7 +3,7 @@ # Number of days of inactivity before an Issue is closed for lack of response daysUntilClose: 30 # Label requiring a response -responseRequiredLabel: discussion +responseRequiredLabel: need-feedback # Comment to post when closing an Issue for lack of response. Set to `false` to disable closeComment: > This issue has been automatically closed because there has been no response From 37f6349b0190c020dbef9ff6ad37d225e57f02a5 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 7 May 2021 20:34:00 +0300 Subject: [PATCH 0183/1324] Make test independent of umask Only test the permission bit that we're setting --- plugins/python-build/test/installer.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/test/installer.bats b/plugins/python-build/test/installer.bats index ebb158d61e..dc04819ad7 100644 --- a/plugins/python-build/test/installer.bats +++ b/plugins/python-build/test/installer.bats @@ -57,5 +57,5 @@ OUT assert [ -e share/bananas/docs ] run ls -ld bin - assert_equal "r-x" "${output:4:3}" + assert_equal "-" "${output:5:1}" } From 8bff74dbd4c678ff621a31c95125476b6579dd39 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 8 May 2021 01:55:30 +0300 Subject: [PATCH 0184/1324] Drop inferring version to install from `pyenv local` This behavior is only triggered when the version is provided as an empty string, is undocumented and breaks if multiple local versions are specified (rightly so since it's unclear which of them to install). --- plugins/python-build/bin/pyenv-install | 5 ----- 1 file changed, 5 deletions(-) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index ce6966ef85..ece78b3a07 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -115,12 +115,7 @@ done unset VERSION_NAME -# The first argument contains the definition to install. If the -# argument is missing, try to install whatever local app-specific -# version is specified by pyenv. Show usage instructions if a local -# version is not specified. DEFINITION="${ARGUMENTS[0]}" -[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)" [ -n "$DEFINITION" ] || usage 1 >&2 # Define `before_install` and `after_install` functions that allow From 891dc31c922267479ca680bfb7185b3a415180d8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 8 May 2021 19:47:03 +0300 Subject: [PATCH 0185/1324] Report cache filename at download In certain cases, a user wants to know the cached filename to add the file themselves, see https://github.com/pyenv/pyenv/issues/1743 . Since we report both a filename and a URL anyway, there's no reason to report a wrong one. --- plugins/python-build/bin/python-build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index ec14dec953..8596d8afe3 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -417,8 +417,8 @@ fetch_tarball() { fi if ! reuse_existing_tarball "$package_filename" "$checksum"; then - local tarball_filename="$(basename "$package_url")" - echo "Downloading ${tarball_filename}..." >&2 + # Report the cached file name -- sometimes, it's useful to know (#1743) + echo "Downloading ${package_filename}..." >&2 http head "$mirror_url" && download_tarball "$mirror_url" "$package_filename" "$checksum" || download_tarball "$package_url" "$package_filename" "$checksum" From 13deda8875abc2767c54865b019a137a0d8f2423 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 9 May 2021 23:54:27 +0300 Subject: [PATCH 0186/1324] Place full shell configuration instructions into `pyenv init` including initial PATH and PYENV_ROOT entries. The migration hint proved to be unclear to users without them. --- libexec/pyenv-init | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 0f06c706ba..b492954733 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -91,7 +91,21 @@ function help_() { ;; esac - { echo "# Load pyenv automatically by appending" + { echo "# Add pyenv executable to PATH by adding" + echo "# the following to ~/.profile:" + echo + case "$shell" in + fish ) + echo 'set -Ux PYENV_ROOT $HOME/.pyenv' + echo 'set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths' + ;; + * ) + echo 'export PYENV_ROOT="$HOME/.pyenv"' + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' + ;; + esac + echo + echo "# Load pyenv automatically by appending" echo "# the following to ${profile}:" echo case "$shell" in @@ -103,7 +117,7 @@ function help_() { ;; esac echo - echo "# And the following to ~/.profile:" + echo "# and the following to ~/.profile:" echo case "$shell" in fish ) From b4511f078766de4c014a469d9ba9a48b26a0948f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 10 May 2021 03:19:38 +0300 Subject: [PATCH 0187/1324] Remove test for the feature --- plugins/python-build/test/pyenv.bats | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 8ed632078d..76c822a400 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -23,17 +23,6 @@ stub_python_build() { unstub pyenv-rehash } -@test "install pyenv local version by default" { - stub_python_build 'echo python-build "$1"' - stub pyenv-local 'echo 3.4.2' - - run pyenv-install - assert_success "python-build 3.4.2" - - unstub python-build - unstub pyenv-local -} - @test "list available versions" { stub_python_build \ "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" From da9392fd09f03f5ba459af8ae2c8b89e3bca5704 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 10 May 2021 04:39:45 +0300 Subject: [PATCH 0188/1324] Add a hint for cases when ~/.profile sources ~/.rc Our ~/.rc logic must run after the ~/.profile one --- libexec/pyenv-init | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index b492954733..f8f46a7295 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -128,6 +128,10 @@ function help_() { ;; esac echo + echo '# If your ~/.profile sources '"${profile}"',' + echo '# the lines should be inserted before the part' + echo '# that does that.' + echo echo '# Make sure to restart your entire logon session' echo '# for changes to ~/.profile to take effect.' echo From 0d2fb35ceef8b5174295b84b794f3478e2401adf Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Tue, 11 May 2021 21:35:15 +0200 Subject: [PATCH 0189/1324] Fix fish installation instructions (#1916) --- README.md | 15 ++++++++-- libexec/pyenv-init | 73 +++++++++++++++++++++++----------------------- 2 files changed, 49 insertions(+), 39 deletions(-) diff --git a/README.md b/README.md index b821d60249..1389250930 100644 --- a/README.md +++ b/README.md @@ -216,12 +216,20 @@ easy to fork and contribute any changes back upstream. ~~~ - For **Fish shell**: + + Execute this interactively: ~~~ fish set -Ux PYENV_ROOT $HOME/.pyenv - set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths - pyenv init --path | source + set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths ~~~ + And add this to `~/.config/fish/config.fish`: + ~~~ fish + status is-login; and pyenv init --path | source + ~~~ + + If fish is not your login shell, also follow the bash/zsh instructions to add to ~/.profile. + - **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy` too. 3. **Add `pyenv init` to your shell** to enable shims and autocompletion. @@ -239,8 +247,9 @@ easy to fork and contribute any changes back upstream. ~~~ - For **Fish shell**: + Add this to `~/.config/fish/config.fish`: ~~~ fish - echo -e '\n\n# pyenv init\nif command -v pyenv 1>/dev/null 2>&1\n pyenv init - | source\nend' >> ~/.config/fish/config.fish + pyenv init - | source ~~~ **General warning**: There are some systems where the `BASH_ENV` variable is configured diff --git a/libexec/pyenv-init b/libexec/pyenv-init index f8f46a7295..f43de04035 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -83,58 +83,59 @@ function help_() { ksh ) profile='~/.profile' ;; - fish ) - profile='~/.config/fish/config.fish' - ;; * ) profile='your profile' ;; esac - { echo "# Add pyenv executable to PATH by adding" - echo "# the following to ~/.profile:" - echo + { case "$shell" in fish ) + echo "# Add pyenv executable to PATH by running" + echo "# the following interactively:" + echo echo 'set -Ux PYENV_ROOT $HOME/.pyenv' - echo 'set -Ux fish_user_paths $PYENV_ROOT/bin $fish_user_paths' - ;; - * ) + echo 'set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths' + echo + echo "# Load pyenv automatically by appending" + echo "# the following to ~/.config/fish/config.fish:" + echo + echo 'status is-login; and pyenv init --path | source' + echo 'pyenv init - | source' + echo + echo "# If fish is not your login shell," + echo "# add the following to ~/.profile:" + echo echo 'export PYENV_ROOT="$HOME/.pyenv"' echo 'export PATH="$PYENV_ROOT/bin:$PATH"' - ;; - esac - echo - echo "# Load pyenv automatically by appending" - echo "# the following to ${profile}:" - echo - case "$shell" in - fish ) - echo 'pyenv init - | source' + echo 'eval "$(pyenv init --path)"' + echo ;; * ) + echo "# Add pyenv executable to PATH by adding" + echo "# the following to ~/.profile:" + echo + echo 'export PYENV_ROOT="$HOME/.pyenv"' + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' + echo + echo "# Load pyenv automatically by appending" + echo "# the following to ${profile}:" + echo echo 'eval "$(pyenv init -)"' - ;; - esac - echo - echo "# and the following to ~/.profile:" - echo - case "$shell" in - fish ) - echo 'pyenv init --path | source' - ;; - * ) + echo + echo "# and the following to ~/.profile:" + echo echo 'eval "$(pyenv init --path)"' + echo + echo '# If your ~/.profile sources '"${profile}"',' + echo '# the lines should be inserted before the part' + echo '# that does that.' + echo + echo '# Make sure to restart your entire logon session' + echo '# for changes to ~/.profile to take effect.' + echo ;; esac - echo - echo '# If your ~/.profile sources '"${profile}"',' - echo '# the lines should be inserted before the part' - echo '# that does that.' - echo - echo '# Make sure to restart your entire logon session' - echo '# for changes to ~/.profile to take effect.' - echo } >&2 } From a7f3e3a5be14352c2b81f0ec515f547cb7804e71 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 11 May 2021 22:36:58 +0300 Subject: [PATCH 0190/1324] Use magic keyword for linking issues to PRs --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index a2b4ca0f17..820ee62e89 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -7,7 +7,7 @@ Make sure you have checked all steps below. * We occasionally import the changes from rbenv. In general, you can expect changes made in rbenv will be imported to pyenv too, eventually. * Generally speaking, we prefer not to make changes in the core in order to keep compatibility with rbenv. * [ ] My PR addresses the following pyenv issue (if any) - - https://github.com/pyenv/pyenv/issues/XXXX + - Closes https://github.com/pyenv/pyenv/issues/XXXX ### Description - [ ] Here are some details about my PR From 0d07cda96995abef9dbebb2d1576f2ea40d82338 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 13 May 2021 22:57:14 +0300 Subject: [PATCH 0191/1324] Update install instructions for Bash and Zsh (#1920) * Update install instructions for Bash and Zsh * Synchronize README.md with `pyenv init` * Add a ~/.bash_profile note * Concatenate shims activation into installation for brevity (Pyenv can't be used meaningfully without shims anyway) Otherwise, we'd need to duplicate all the ~/.profile shenanigans in both sections * Update based on feedback * Proofread --- README.md | 245 +++++++++++++++++++++++++++------------------ libexec/pyenv-init | 52 +++++++--- 2 files changed, 184 insertions(+), 113 deletions(-) diff --git a/README.md b/README.md index 1389250930..534be6f58c 100644 --- a/README.md +++ b/README.md @@ -153,7 +153,7 @@ For example, you might have these versions installed: * `$(pyenv root)/versions/3.4.2/` * `$(pyenv root)/versions/pypy-2.4.0/` -As far as pyenv is concerned, version names are simply the directories in +As far as Pyenv is concerned, version names are simply directories under `$(pyenv root)/versions`. ### Managing Virtual Environments @@ -174,95 +174,137 @@ For pyenv to install python correctly you should [**install the Python build dep ### Homebrew on macOS - 1. Consider installing with [Homebrew](https://brew.sh) + 1. Consider installing with [Homebrew](https://brew.sh): ```sh brew update brew install pyenv ``` - 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #3 ("Add `pyenv init` to your shell to enable shims and autocompletion"). + 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #2 ("Configure your shell's environment for Pyenv"). -If you're on Windows, consider using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork. (`pyenv` does not work on windows outside the Windows Subsystem for Linux) +If you're on Windows, consider using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork. (Pyenv does not work in Windows outside the Windows Subsystem for Linux.) ### The automatic installer -Visit my other project: +Visit our other project: https://github.com/pyenv/pyenv-installer ### Basic GitHub Checkout -This will get you going with the latest version of pyenv and make it +This will get you going with the latest version of Pyenv and make it easy to fork and contribute any changes back upstream. -1. **Check out pyenv where you want it installed.** - A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else). +1. **Check out Pyenv where you want it installed.** + A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else): git clone https://github.com/pyenv/pyenv.git ~/.pyenv - Optionally, try to compile dynamic bash extension to speed up pyenv. Don't - worry if it fails; pyenv will still work normally: + Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't + worry if it fails; Pyenv will still work normally: cd ~/.pyenv && src/configure && make -C src -2. **Define environment variable `PYENV_ROOT`** to point to the path where - pyenv repo is cloned and add `$PYENV_ROOT/bin` to your `$PATH` for access - to the `pyenv` command-line utility. - - - For **bash**/**Zsh**: - ~~~ bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init --path)"' >> ~/.profile - ~~~ - - - For **Fish shell**: - - Execute this interactively: - ~~~ fish - set -Ux PYENV_ROOT $HOME/.pyenv - set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths - ~~~ - - And add this to `~/.config/fish/config.fish`: - ~~~ fish - status is-login; and pyenv init --path | source - ~~~ - - If fish is not your login shell, also follow the bash/zsh instructions to add to ~/.profile. - - - **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy` too. - -3. **Add `pyenv init` to your shell** to enable shims and autocompletion. - Please make sure `eval "$(pyenv init -)"` is placed toward the end of the shell - configuration file since it manipulates `PATH` during the initialization. - - - For **bash**: - ~~~ bash - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.bashrc - ~~~ - - - For **Zsh**: - ~~~ zsh - echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc - ~~~ - - - For **Fish shell**: - Add this to `~/.config/fish/config.fish`: - ~~~ fish - pyenv init - | source - ~~~ - - **General warning**: There are some systems where the `BASH_ENV` variable is configured - to point to `.bashrc`. On such systems you should almost certainly put the above mentioned line - `eval "$(pyenv init -)"` into `.bash_profile`, and **not** into `.bashrc`. Otherwise you - may observe strange behaviour, such as `pyenv` getting into an infinite loop. - See [#264](https://github.com/pyenv/pyenv/issues/264) for details. - -4. **Restart your shell so the path changes take effect.** - You can now begin using pyenv. - ```sh - exec "$SHELL" - ``` +2. **Configure your shell's environment for Pyenv** + + **Note:** The below instructions for specific shells are designed for common shell setups. + If you have an uncommon setup and they don't work for you, + use the guidance text and the [Advanced Configuration](#advanced-configuration) + section below to figure out what you need to do in your specific case. + + 1. **Adjust the session-wide environment for your account.** Define + the `PYENV_ROOT` environment variable to point to the path where + you cloned the Pyenv repo, add the `pyenv` command-line utility to your `PATH`, + run the output of `pyenv init --path` to enable shims. + + These commands need to be added into your shell startup files in such a way + that _they are executed only once per session, by its login shell._ + This typically means they need to be added into a per-user shell-specific + `~/.*profile` file, _and_ into `~/.profile`, too, so that they are also + run by GUI managers (which typically act as a `sh` login shell). + + **MacOS note:** If you installed Pyenv with Homebrew, you don't need + to add the `PYENV_ROOT=` and `PATH=` lines. + You also don't need to add commands into `~/.profile` if your shell doesn't use it. + + - For **bash**: + + ~~~ bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init --path)"' >> ~/.profile + ~~~ + + - **If your `~/.profile` sources `~/.bashrc` (Debian, Ubuntu, Mint):** + + Put these lines into `~/.profile` _before_ the part that sources `~/.bashrc`: + ~~~bash + export PYENV_ROOT="$HOME/.pyenv" + export PATH="$PYENV_ROOT/bin:$PATH" + eval "$(pyenv init --path)" + ~~~ + + **Note:** If you have `~/.bash_profile`, make sure that it too executes the above-added commands, + e.g. by copying them there or by `source`'ing `~/.profile`. + + - For **Zsh**: + + Same as for Bash above, but add the commands into both `~/.profile` + and `~/.zprofile`. + + - For **Fish shell**: + + Execute this interactively: + ~~~ fish + set -Ux PYENV_ROOT $HOME/.pyenv + set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths + ~~~ + + And add this to `~/.config/fish/config.fish`: + ~~~ fish + status is-login; and pyenv init --path | source + ~~~ + + If Fish is not your login shell, also follow the Bash/Zsh instructions to add to `~/.profile`. + + **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. + + 2. **Add `pyenv` into your shell** by running the output of `pyenv init -` + to enable autocompletion and all subcommands. + + This command needs to run at startup of any interactive shell instance. + In an interactive login shell, it needs to run _after_ the commands + from the previous step. + + - For **bash**: + ~~~ bash + echo 'eval "$(pyenv init -)"' >> ~/.bashrc + ~~~ + + - **If your `/etc/profile` sources `~/.bashrc` (SUSE):** + + ~~~bash + echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; done' >> ~/.bashrc + ~~~ + + - For **Zsh**: + ~~~ zsh + echo 'eval "$(pyenv init -)"' >> ~/.zshrc + ~~~ + + - For **Fish shell**: + Add this to `~/.config/fish/config.fish`: + ~~~ fish + pyenv init - | source + ~~~ + + **General warning**: There are some systems where the `BASH_ENV` variable is configured + to point to `.bashrc`. On such systems you should almost certainly put the above-mentioned line + `eval "$(pyenv init -)"` into `.bash_profile`, and **not** into `.bashrc`. Otherwise you + may observe strange behaviour, such as `pyenv` getting into an infinite loop. + See [#264](https://github.com/pyenv/pyenv/issues/264) for details. + +4. **Restart your login session for the changes to take effect.** + E.g. if you're in a GUI session, you need to fully log out and log back in. 5. [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version. @@ -271,26 +313,26 @@ easy to fork and contribute any changes back upstream. ```sh pyenv install 2.7.8 ``` - **NOTE:** If you need to pass configure option to build, please use + **NOTE:** If you need to pass a `configure` option to a build, please use the ```CONFIGURE_OPTS``` environment variable. - **NOTE:** If you want to use proxy to download, please use `http_proxy` and `https_proxy` - environment variable. + **NOTE:** If you want to use proxy to download, please set the `http_proxy` and `https_proxy` + environment variables. - **NOTE:** If you are having trouble installing a python version, + **NOTE:** If you are having trouble installing a Python version, please visit the wiki page about - [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems) + [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). #### Upgrading -If you've installed pyenv using homebrew, upgrade using: +If you've installed Pyenv using Homebrew, upgrade using: ```sh brew upgrade pyenv ``` -If you've installed pyenv using the instructions above, you can -upgrade your installation at any time using git. +If you've installed Pyenv using the instructions above, you can +upgrade your installation at any time using Git. To upgrade to the latest development version of pyenv, use `git pull`: @@ -299,7 +341,7 @@ cd $(pyenv root) git pull ``` -To upgrade to a specific release of pyenv, check out the corresponding tag: +To upgrade to a specific release of Pyenv, check out the corresponding tag: ```sh cd $(pyenv root) @@ -313,24 +355,29 @@ git checkout v0.1.0 The simplicity of pyenv makes it easy to temporarily disable it, or uninstall from the system. -1. To **disable** pyenv managing your Python versions, simply remove the - `pyenv init` line from your shell startup configuration. This will - remove pyenv shims directory from PATH, and future invocations like - `python` will execute the system Python version, as before pyenv. +1. To **disable** Pyenv managing your Python versions, simply remove the + `pyenv init` invocations from your shell startup configuration. This will + remove Pyenv shims directory from `PATH`, and future invocations like + `python` will execute the system Python version, as it was before Pyenv. - `pyenv` will still be accessible on the command line, but your Python - apps won't be affected by version switching. + `pyenv` will still be accessible on the command line, but your Python + apps won't be affected by version switching. -2. To completely **uninstall** pyenv, perform step (1) and then remove +2. To completely **uninstall** Pyenv, remove _all_ configuration lines for it + from your shell startup configuration, and then remove its root directory. This will **delete all Python versions** that were installed under `` $(pyenv root)/versions/ `` directory: - ```sh - rm -rf $(pyenv root) - ``` - If you've installed pyenv using a package manager, as a final step - perform the pyenv package removal. For instance, for Homebrew: + + ```sh + rm -rf $(pyenv root) + ``` + + If you've installed Pyenv using a package manager, as a final step, + perform the Pyenv package removal. For instance, for Homebrew: - brew uninstall pyenv + ``` + brew uninstall pyenv + ``` ### Advanced Configuration @@ -338,8 +385,11 @@ Skip this section unless you must know what every line in your shell profile is doing. `pyenv init` is the only command that crosses the line of loading -extra commands into your shell. Coming from rvm, some of you might be -opposed to this idea. Here's what `pyenv init` actually does: +extra commands into your shell. Coming from RVM, some of you might be +opposed to this idea. Here's what `pyenv init` actually does. +Step 1 is done by `eval "$(pyenv init --path)"`, the others are done by +`eval "$(pyenv init -)"`. + 1. **Sets up your shims path.** This is the only requirement for pyenv to function properly. You can do this by hand by prepending @@ -361,12 +411,13 @@ opposed to this idea. Here's what `pyenv init` actually does: for some reason you need `pyenv` to be a real script rather than a shell function, you can safely skip it. -To see exactly what happens under the hood for yourself, run `pyenv init -`. +To see exactly what happens under the hood for yourself, run `pyenv init -` +or `pyenv init --path`. If you don't want to use `pyenv init` and shims, you can still benefit -from pyenv's ability to install Python versions for you. Just run -`pyenv install` and you will find versions installed in -`$(pyenv root)/versions`, which you can manually execute or symlink +from pyenv's ability to install Python versions for you. Just run +`pyenv install` and you will find versions installed in +`$(pyenv root)/versions`, which you can manually execute or symlink as required. ### Uninstalling Python Versions diff --git a/libexec/pyenv-init b/libexec/pyenv-init index f43de04035..187d92ad74 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -75,20 +75,29 @@ function main() { function help_() { case "$shell" in bash ) - profile='~/.bashrc' + profile='~/.bash_profile' + rc='~/.bashrc' ;; zsh ) - profile='~/.zshrc' + profile='~/.zprofile' + rc='~/.zshrc' ;; ksh ) profile='~/.profile' + rc='~/.profile' ;; * ) - profile='your profile' + profile='your shell'\''s login startup file' + rc='your shell'\''s interactive startup file' ;; esac { + echo + echo '# (The below instructions are intended for common' + echo '# shell setups. See the README for more guidance' + echo '# if they don'\''t apply and/or don'\''t work for you.)' + echo case "$shell" in fish ) echo "# Add pyenv executable to PATH by running" @@ -112,27 +121,38 @@ function help_() { echo ;; * ) - echo "# Add pyenv executable to PATH by adding" - echo "# the following to ~/.profile:" + echo '# Add pyenv executable to PATH and' + echo '# enable shims by adding the following' + case "$shell" in + bash|ksh ) + echo '# to ~/.profile:' + ;; + * ) + echo '# to ~/.profile and '"${profile}"':' + ;; + esac echo echo 'export PYENV_ROOT="$HOME/.pyenv"' echo 'export PATH="$PYENV_ROOT/bin:$PATH"' + echo 'eval "$(pyenv init --path)"' echo - echo "# Load pyenv automatically by appending" - echo "# the following to ${profile}:" + if [[ $shell == "bash" ]]; then + echo '# If your ~/.profile sources '"${rc}"',' + echo '# the lines need to be inserted before the part' + echo '# that does that.' + echo + echo '# If you have '"${profile}"', make sure that it' + echo '# also executes the above lines -- e.g. by' + echo '# copying them there or by sourcing ~/.profile' + echo + fi + echo "# Load pyenv into the shell by adding" + echo "# the following to ${rc}:" echo echo 'eval "$(pyenv init -)"' echo - echo "# and the following to ~/.profile:" - echo - echo 'eval "$(pyenv init --path)"' - echo - echo '# If your ~/.profile sources '"${profile}"',' - echo '# the lines should be inserted before the part' - echo '# that does that.' - echo echo '# Make sure to restart your entire logon session' - echo '# for changes to ~/.profile to take effect.' + echo '# for changes to profile files to take effect.' echo ;; esac From e0d109c227ed753b73224aa79363b846790c0fc5 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 May 2021 23:05:07 +0300 Subject: [PATCH 0192/1324] Include a Bash automated install option --- README.md | 15 +++++++++++++++ libexec/pyenv-init | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 534be6f58c..05a296e534 100644 --- a/README.md +++ b/README.md @@ -243,6 +243,21 @@ easy to fork and contribute any changes back upstream. eval "$(pyenv init --path)" ~~~ + + Alternatively, for an automated installation, you can run the following: + ~~~ bash + echo -e 'if shopt -q login_shell; then' \ + '\n export PYENV_ROOT="$HOME/.pyenv"' \ + '\n export PATH="$PYENV_ROOT/bin:$PATH"' \ + '\n eval "$(pyenv init --path)"' \ + '\nfi' >> ~/.bashrc + echo -e 'if [ -z "$BASH_VERSION" ]; then'\ + '\n export PYENV_ROOT="$HOME/.pyenv"'\ + '\n export PATH="$PYENV_ROOT/bin:$PATH"'\ + '\n eval "$(pyenv init --path)"'\ + '\nfi' >>~/.profile + ~~~ + **Note:** If you have `~/.bash_profile`, make sure that it too executes the above-added commands, e.g. by copying them there or by `source`'ing `~/.profile`. diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 187d92ad74..544cd49a10 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -139,7 +139,7 @@ function help_() { if [[ $shell == "bash" ]]; then echo '# If your ~/.profile sources '"${rc}"',' echo '# the lines need to be inserted before the part' - echo '# that does that.' + echo '# that does that. See the README for another option.' echo echo '# If you have '"${profile}"', make sure that it' echo '# also executes the above lines -- e.g. by' From 13ae1461ff4dd7f22c5cd5b7e44fb80e5e870ee7 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 16 May 2021 20:52:24 +0300 Subject: [PATCH 0193/1324] Create miniforge3-4.10.1-1 --- .../share/python-build/miniforge3-4.10.1-1 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.1-1 diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.1-1 b/plugins/python-build/share/python-build/miniforge3-4.10.1-1 new file mode 100644 index 0000000000..396692b798 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.1-1-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-1/Miniforge3-4.10.1-1-Linux-ppc64le.sh#37743c08b9394c6345d538f3952a1640" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.1-1-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-1/Miniforge3-4.10.1-1-Linux-x86_64.sh#e1f2f1f0fe54d3aab5585238e5517ac5" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Miniforge3-4.10.1-1-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-1/Miniforge3-4.10.1-1-Linux-aarch64.sh#64ec2e626c1c71332a73081fe482d08e" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.1-1-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-1/Miniforge3-4.10.1-1-MacOSX-arm64.sh#888fac13d06ae4c4a79eaa9c6ab79473" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.1-1-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-1/Miniforge3-4.10.1-1-MacOSX-x86_64.sh#792fa7d76d0fa02304ec0b4fa2786352" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From d9b9c4588d5e7e08f55676bf7f072eb461e6ebfd Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 16 May 2021 21:01:13 +0300 Subject: [PATCH 0194/1324] Create anaconda3-2021.05 --- .../share/python-build/anaconda3-2021.05 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2021.05 diff --git a/plugins/python-build/share/python-build/anaconda3-2021.05 b/plugins/python-build/share/python-build/anaconda3-2021.05 new file mode 100644 index 0000000000..c2b65a0244 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2021.05 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Anaconda3-2021.05-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2021.05-Linux-ppc64le.sh#097064807a9adae3f91fc4c5852cd90df2b77fc96505929bb25bf558f1eef76f" "anaconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2021.05-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.05-Linux-x86_64.sh#2751ab3d678ff0277ae80f9e8a74f218cfc70fe9a9cdc7bb1c137d7e47e33d53" "anaconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2021.05-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.05-MacOSX-x86_64.sh#ec11e325c792a6f49dbdbe5e641991d0a29788689176d7e54da97def9532c762" "anaconda" verify_py38 + ;; +* ) + { 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 From fdbcdd38f15b8cdfb0c45ca5b0edb71e3201b4b4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 17 May 2021 00:46:21 +0300 Subject: [PATCH 0195/1324] Add a version-neutral verify fn for rolling-release scripts E.g. "*-latest" May need splitting into project-specific ones if there emerge projects with different check needed Closes https://github.com/pyenv/pyenv/issues/1559 --- README.md | 5 ++++- plugins/python-build/bin/python-build | 7 +++++++ plugins/python-build/share/python-build/miniconda3-latest | 6 +++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 05a296e534..ca98f84d47 100644 --- a/README.md +++ b/README.md @@ -223,7 +223,7 @@ easy to fork and contribute any changes back upstream. run by GUI managers (which typically act as a `sh` login shell). **MacOS note:** If you installed Pyenv with Homebrew, you don't need - to add the `PYENV_ROOT=` and `PATH=` lines. + to add the `PYENV_ROOT=` and `PATH=` lines. You also don't need to add commands into `~/.profile` if your shell doesn't use it. - For **bash**: @@ -320,6 +320,9 @@ easy to fork and contribute any changes back upstream. 4. **Restart your login session for the changes to take effect.** E.g. if you're in a GUI session, you need to fully log out and log back in. + + In MacOS, restarting terminal windows is enough (because MacOS runs shells + in them as login shells by default). 5. [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version. diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 42b13e8498..cc7f51d60e 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1762,6 +1762,13 @@ build_package_verify_py311() { build_package_verify_py310 "$1" "${2:-3.11}" } +# Post-install check for Python 3.x rolling release scripts +# XXX: Will need splitting into project-specific ones if there emerge +# multiple rolling-release scripts with different checks needed +build_package_verify_py3_latest() { + build_package_verify_py311 "$1" "3" +} + # Copy Tools/gdb/libpython.py to pythonX.Y-gdb.py (#1190) build_package_copy_python_gdb() { if [ -e "$BUILD_PATH/$1/Tools/gdb/libpython.py" ]; then diff --git a/plugins/python-build/share/python-build/miniconda3-latest b/plugins/python-build/share/python-build/miniconda3-latest index 4bf0705cdb..cd85681a12 100644 --- a/plugins/python-build/share/python-build/miniconda3-latest +++ b/plugins/python-build/share/python-build/miniconda3-latest @@ -1,12 +1,12 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86" ) - install_script "Miniconda3-latest-Linux-x86" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86.sh" "miniconda" verify_py36 + install_script "Miniconda3-latest-Linux-x86" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86.sh" "miniconda" verify_py3_latest ;; "Linux-x86_64" ) - install_script "Miniconda3-latest-Linux-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" "miniconda" verify_py36 + install_script "Miniconda3-latest-Linux-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" "miniconda" verify_py3_latest ;; "MacOSX-x86_64" ) - install_script "Miniconda3-latest-MacOSX-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" "miniconda" verify_py36 + install_script "Miniconda3-latest-MacOSX-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" "miniconda" verify_py3_latest ;; * ) { echo From ddf952ab2de0305e5fa6877a4644463b7109ff52 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 17 May 2021 10:40:35 +0300 Subject: [PATCH 0196/1324] Allow for cases where user might've aliased some programs The $(type -p | head -1) construct expects to always get a path, so need to ignore such aliases with -P Closes https://github.com/pyenv/pyenv/issues/1662 --- libexec/pyenv | 2 +- libexec/pyenv-help | 2 +- libexec/pyenv-hooks | 2 +- libexec/pyenv-versions | 2 +- plugins/python-build/bin/pyenv-install | 2 +- plugins/python-build/bin/python-build | 4 ++-- plugins/python-build/test/pyenv_ext.bats | 2 +- plugins/python-build/test/test_helper.bash | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index 93d8866fff..5c4d71a50d 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -29,7 +29,7 @@ if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev else [ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin" - READLINK=$(type -p greadlink readlink | head -1) + READLINK=$(type -P greadlink readlink | head -1) [ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?" resolve_link() { diff --git a/libexec/pyenv-help b/libexec/pyenv-help index c7ff6124ce..919625766d 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -45,7 +45,7 @@ extract_initial_comment_block() { collect_documentation() { # shellcheck disable=SC2016 - $(type -p gawk awk | head -1) ' + $(type -P gawk awk | head -1) ' /^Summary:/ { summary = substr($0, 10) next diff --git a/libexec/pyenv-hooks b/libexec/pyenv-hooks index 2c1620f3b4..1b8c528d8b 100755 --- a/libexec/pyenv-hooks +++ b/libexec/pyenv-hooks @@ -26,7 +26,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi -READLINK=$(type -p greadlink readlink | head -1) +READLINK=$(type -P greadlink readlink | head -1) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index c317dc11ab..273eb20a81 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -33,7 +33,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th exit 1 fi - READLINK=$(type -p greadlink readlink | head -1) + READLINK=$(type -P greadlink readlink | head -1) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index ce6966ef85..07d5555f31 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -59,7 +59,7 @@ usage() { definitions() { local query="$1" - python-build --definitions | $(type -ap ggrep grep | head -1) -F "$query" || true + python-build --definitions | $(type -P ggrep grep | head -1) -F "$query" || true } indent() { diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index cc7f51d60e..f1ae369b41 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -58,7 +58,7 @@ lib "$1" resolve_link() { - $(type -p greadlink readlink | head -1) "$1" + $(type -P greadlink readlink | head -1) "$1" } abs_dirname() { @@ -1494,7 +1494,7 @@ build_package_verify_openssl() { RbConfig::CONFIG.fetch("configure_args").shellsplit.each { |arg| $stderr.puts " #{arg}" } exit 1 end - ' "$(basename "$(type -p yum apt-get | head -1)")" >&4 2>&1 + ' "$(basename "$(type -P yum apt-get | head -1)")" >&4 2>&1 } use_homebrew_zlib() { diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index e51490032f..55c44bc8da 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -89,7 +89,7 @@ install_tmp_fixture() { } resolve_link() { - $(type -p greadlink readlink | head -1) "$1" + $(type -P greadlink readlink | head -1) "$1" } run_inline_definition_with_name() { diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index a9c775df4e..c7494f6443 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -130,7 +130,7 @@ assert_output_contains() { echo "assert_output_contains needs an argument" >&2 return 1 fi - echo "$output" | $(type -p ggrep grep | head -1) -F "$expected" >/dev/null || { + echo "$output" | $(type -P ggrep grep | head -1) -F "$expected" >/dev/null || { { echo "expected output to contain $expected" echo "actual: $output" } | flunk From e5db32499c3264f138342408a3b1889c643f3a20 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 19 May 2021 05:28:03 +0300 Subject: [PATCH 0197/1324] ldflags_dirs is not needed for Python and causes failures Ensuring that all dirs in LDFLAGS exist is only needed for Ruby due to its `configure` requirements. If some LDFLAGS entries point to a nonexisting path to which the user doesn't have permission. this causes a build failure. --- plugins/python-build/bin/python-build | 15 --------------- plugins/python-build/share/python-build/2.1.3 | 2 +- plugins/python-build/share/python-build/2.2.3 | 2 +- plugins/python-build/share/python-build/2.3.7 | 2 +- plugins/python-build/share/python-build/2.4.0 | 2 +- plugins/python-build/share/python-build/2.4.1 | 2 +- plugins/python-build/share/python-build/2.4.2 | 2 +- plugins/python-build/share/python-build/2.4.3 | 2 +- plugins/python-build/share/python-build/2.4.4 | 2 +- plugins/python-build/share/python-build/2.4.5 | 2 +- plugins/python-build/share/python-build/2.4.6 | 2 +- plugins/python-build/share/python-build/2.5.0 | 2 +- plugins/python-build/share/python-build/2.5.1 | 2 +- plugins/python-build/share/python-build/2.5.2 | 2 +- plugins/python-build/share/python-build/2.5.3 | 2 +- plugins/python-build/share/python-build/2.5.4 | 2 +- plugins/python-build/share/python-build/2.5.5 | 2 +- plugins/python-build/share/python-build/2.5.6 | 2 +- plugins/python-build/share/python-build/2.6.6 | 2 +- plugins/python-build/share/python-build/2.6.7 | 2 +- plugins/python-build/share/python-build/2.6.8 | 2 +- plugins/python-build/share/python-build/2.6.9 | 2 +- plugins/python-build/share/python-build/2.7.0 | 2 +- plugins/python-build/share/python-build/2.7.1 | 2 +- plugins/python-build/share/python-build/2.7.10 | 4 ++-- plugins/python-build/share/python-build/2.7.11 | 4 ++-- plugins/python-build/share/python-build/2.7.12 | 4 ++-- plugins/python-build/share/python-build/2.7.13 | 4 ++-- plugins/python-build/share/python-build/2.7.14 | 4 ++-- plugins/python-build/share/python-build/2.7.15 | 4 ++-- plugins/python-build/share/python-build/2.7.16 | 4 ++-- plugins/python-build/share/python-build/2.7.17 | 4 ++-- plugins/python-build/share/python-build/2.7.18 | 4 ++-- plugins/python-build/share/python-build/2.7.2 | 2 +- plugins/python-build/share/python-build/2.7.3 | 2 +- plugins/python-build/share/python-build/2.7.4 | 2 +- plugins/python-build/share/python-build/2.7.5 | 2 +- plugins/python-build/share/python-build/2.7.6 | 2 +- plugins/python-build/share/python-build/2.7.7 | 4 ++-- plugins/python-build/share/python-build/2.7.8 | 4 ++-- plugins/python-build/share/python-build/2.7.9 | 4 ++-- plugins/python-build/share/python-build/3.0.1 | 2 +- plugins/python-build/share/python-build/3.1.0 | 2 +- plugins/python-build/share/python-build/3.1.1 | 2 +- plugins/python-build/share/python-build/3.1.2 | 2 +- plugins/python-build/share/python-build/3.1.3 | 2 +- plugins/python-build/share/python-build/3.1.4 | 2 +- plugins/python-build/share/python-build/3.1.5 | 2 +- plugins/python-build/share/python-build/3.10.0b1 | 4 ++-- plugins/python-build/share/python-build/3.2.0 | 2 +- plugins/python-build/share/python-build/3.2.1 | 2 +- plugins/python-build/share/python-build/3.2.2 | 2 +- plugins/python-build/share/python-build/3.2.3 | 2 +- plugins/python-build/share/python-build/3.2.4 | 2 +- plugins/python-build/share/python-build/3.2.5 | 2 +- plugins/python-build/share/python-build/3.2.6 | 4 ++-- plugins/python-build/share/python-build/3.3.0 | 2 +- plugins/python-build/share/python-build/3.3.1 | 2 +- plugins/python-build/share/python-build/3.3.2 | 2 +- plugins/python-build/share/python-build/3.3.3 | 2 +- plugins/python-build/share/python-build/3.3.4 | 2 +- plugins/python-build/share/python-build/3.3.5 | 2 +- plugins/python-build/share/python-build/3.3.6 | 4 ++-- plugins/python-build/share/python-build/3.3.7 | 4 ++-- plugins/python-build/share/python-build/3.4.0 | 4 ++-- plugins/python-build/share/python-build/3.4.1 | 4 ++-- plugins/python-build/share/python-build/3.4.10 | 2 +- plugins/python-build/share/python-build/3.4.2 | 4 ++-- plugins/python-build/share/python-build/3.4.3 | 4 ++-- plugins/python-build/share/python-build/3.4.4 | 4 ++-- plugins/python-build/share/python-build/3.4.5 | 4 ++-- plugins/python-build/share/python-build/3.4.6 | 4 ++-- plugins/python-build/share/python-build/3.4.7 | 4 ++-- plugins/python-build/share/python-build/3.4.8 | 4 ++-- plugins/python-build/share/python-build/3.4.9 | 4 ++-- plugins/python-build/share/python-build/3.5.0 | 4 ++-- plugins/python-build/share/python-build/3.5.1 | 4 ++-- plugins/python-build/share/python-build/3.5.10 | 4 ++-- plugins/python-build/share/python-build/3.5.2 | 4 ++-- plugins/python-build/share/python-build/3.5.3 | 4 ++-- plugins/python-build/share/python-build/3.5.4 | 4 ++-- plugins/python-build/share/python-build/3.5.5 | 4 ++-- plugins/python-build/share/python-build/3.5.6 | 4 ++-- plugins/python-build/share/python-build/3.5.7 | 4 ++-- plugins/python-build/share/python-build/3.5.8 | 4 ++-- plugins/python-build/share/python-build/3.5.9 | 4 ++-- plugins/python-build/share/python-build/3.6.0 | 4 ++-- plugins/python-build/share/python-build/3.6.1 | 4 ++-- plugins/python-build/share/python-build/3.6.10 | 4 ++-- plugins/python-build/share/python-build/3.6.11 | 4 ++-- plugins/python-build/share/python-build/3.6.12 | 4 ++-- plugins/python-build/share/python-build/3.6.13 | 4 ++-- plugins/python-build/share/python-build/3.6.2 | 4 ++-- plugins/python-build/share/python-build/3.6.3 | 4 ++-- plugins/python-build/share/python-build/3.6.4 | 4 ++-- plugins/python-build/share/python-build/3.6.5 | 4 ++-- plugins/python-build/share/python-build/3.6.6 | 4 ++-- plugins/python-build/share/python-build/3.6.7 | 4 ++-- plugins/python-build/share/python-build/3.6.8 | 4 ++-- plugins/python-build/share/python-build/3.6.9 | 4 ++-- plugins/python-build/share/python-build/3.7.0 | 4 ++-- plugins/python-build/share/python-build/3.7.1 | 4 ++-- plugins/python-build/share/python-build/3.7.10 | 4 ++-- plugins/python-build/share/python-build/3.7.2 | 4 ++-- plugins/python-build/share/python-build/3.7.3 | 4 ++-- plugins/python-build/share/python-build/3.7.4 | 4 ++-- plugins/python-build/share/python-build/3.7.5 | 4 ++-- plugins/python-build/share/python-build/3.7.6 | 4 ++-- plugins/python-build/share/python-build/3.7.7 | 4 ++-- plugins/python-build/share/python-build/3.7.8 | 4 ++-- plugins/python-build/share/python-build/3.7.9 | 4 ++-- plugins/python-build/share/python-build/3.8.0 | 4 ++-- plugins/python-build/share/python-build/3.8.1 | 4 ++-- plugins/python-build/share/python-build/3.8.10 | 4 ++-- plugins/python-build/share/python-build/3.8.2 | 4 ++-- plugins/python-build/share/python-build/3.8.3 | 4 ++-- plugins/python-build/share/python-build/3.8.4 | 4 ++-- plugins/python-build/share/python-build/3.8.5 | 4 ++-- plugins/python-build/share/python-build/3.8.6 | 4 ++-- plugins/python-build/share/python-build/3.8.7 | 4 ++-- plugins/python-build/share/python-build/3.8.8 | 4 ++-- plugins/python-build/share/python-build/3.8.9 | 4 ++-- plugins/python-build/share/python-build/3.9.0 | 4 ++-- plugins/python-build/share/python-build/3.9.1 | 4 ++-- plugins/python-build/share/python-build/3.9.2 | 4 ++-- plugins/python-build/share/python-build/3.9.3 | 4 ++-- plugins/python-build/share/python-build/3.9.4 | 4 ++-- plugins/python-build/share/python-build/3.9.5 | 4 ++-- .../share/python-build/stackless-2.7.10 | 2 +- .../share/python-build/stackless-2.7.11 | 2 +- .../share/python-build/stackless-2.7.12 | 2 +- .../share/python-build/stackless-2.7.14 | 2 +- .../share/python-build/stackless-2.7.2 | 2 +- .../share/python-build/stackless-2.7.3 | 2 +- .../share/python-build/stackless-2.7.4 | 2 +- .../share/python-build/stackless-2.7.5 | 2 +- .../share/python-build/stackless-2.7.6 | 2 +- .../share/python-build/stackless-2.7.7 | 2 +- .../share/python-build/stackless-2.7.8 | 2 +- .../share/python-build/stackless-2.7.9 | 2 +- .../share/python-build/stackless-3.2.2 | 2 +- .../share/python-build/stackless-3.2.5 | 2 +- .../share/python-build/stackless-3.3.5 | 2 +- .../share/python-build/stackless-3.3.7 | 2 +- .../share/python-build/stackless-3.4.2 | 2 +- .../share/python-build/stackless-3.4.7 | 2 +- .../share/python-build/stackless-3.5.4 | 2 +- .../share/python-build/stackless-3.7.5 | 2 +- 148 files changed, 226 insertions(+), 241 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f1ae369b41..f158e464b5 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1516,21 +1516,6 @@ use_xcode_sdk_zlib() { fi } -# Ensure that directories listed in LDFLAGS exist -build_package_ldflags_dirs() { - local arg dir - set - $LDFLAGS - while [ $# -gt 0 ]; do - dir="" - case "$1" in - -L ) dir="$2" ;; - -L* ) dir="${1#-L}" ;; - esac - [ -z "$dir" ] || mkdir -p "$dir" - shift 1 - done -} - build_package_enable_shared() { package_option python configure --enable-shared } diff --git a/plugins/python-build/share/python-build/2.1.3 b/plugins/python-build/share/python-build/2.1.3 index 0e79798772..c965118c8b 100644 --- a/plugins/python-build/share/python-build/2.1.3 +++ b/plugins/python-build/share/python-build/2.1.3 @@ -1,5 +1,5 @@ require_gcc install_package "readline-6.2" "https://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" mac_readline --if has_broken_mac_readline -install_package "Python-2.1.3" "https://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz#1bcb5bb587948bc38f36db60e15c376009c56c66570e563a08a82bf7f227afb9" ldflags_dirs standard verify_py21 +install_package "Python-2.1.3" "https://www.python.org/ftp/python/2.1.3/Python-2.1.3.tgz#1bcb5bb587948bc38f36db60e15c376009c56c66570e563a08a82bf7f227afb9" standard verify_py21 #install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python #install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.2.3 b/plugins/python-build/share/python-build/2.2.3 index c3ab5fdaa3..cd7cf839f9 100644 --- a/plugins/python-build/share/python-build/2.2.3 +++ b/plugins/python-build/share/python-build/2.2.3 @@ -1,5 +1,5 @@ require_gcc install_package "readline-6.2" "https://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" mac_readline --if has_broken_mac_readline -install_package "Python-2.2.3" "https://www.python.org/ftp/python/2.2.3/Python-2.2.3.tgz#a8f92e6b89d47359fff0d1fbfe47f104afc77fd1cd5143e7332758b7bc100188" ldflags_dirs standard verify_py22 +install_package "Python-2.2.3" "https://www.python.org/ftp/python/2.2.3/Python-2.2.3.tgz#a8f92e6b89d47359fff0d1fbfe47f104afc77fd1cd5143e7332758b7bc100188" standard verify_py22 #install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python #install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.3.7 b/plugins/python-build/share/python-build/2.3.7 index 5bba01899f..dd53186602 100644 --- a/plugins/python-build/share/python-build/2.3.7 +++ b/plugins/python-build/share/python-build/2.3.7 @@ -1,5 +1,5 @@ require_gcc install_package "readline-6.2" "https://ftpmirror.gnu.org/readline/readline-6.2.tar.gz#79a696070a058c233c72dd6ac697021cc64abd5ed51e59db867d66d196a89381" mac_readline --if has_broken_mac_readline -install_package "Python-2.3.7" "https://www.python.org/ftp/python/2.3.7/Python-2.3.7.tgz#969a9891dce9f50b13e54f9890acaf2be66715a5895bf9b11111f320c205b90e" ldflags_dirs standard verify_py23 +install_package "Python-2.3.7" "https://www.python.org/ftp/python/2.3.7/Python-2.3.7.tgz#969a9891dce9f50b13e54f9890acaf2be66715a5895bf9b11111f320c205b90e" standard verify_py23 #install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python #install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.0 b/plugins/python-build/share/python-build/2.4.0 index 2cc46263a6..563c8cb475 100644 --- a/plugins/python-build/share/python-build/2.4.0 +++ b/plugins/python-build/share/python-build/2.4.0 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4" "https://www.python.org/ftp/python/2.4/Python-2.4.tgz#ff746de0fae8691c082414b42a2bb172da8797e6e8ff66c9a39d2e452f7034e9" ldflags_dirs standard verify_py24 +install_package "Python-2.4" "https://www.python.org/ftp/python/2.4/Python-2.4.tgz#ff746de0fae8691c082414b42a2bb172da8797e6e8ff66c9a39d2e452f7034e9" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.1 b/plugins/python-build/share/python-build/2.4.1 index e3c2fee07e..60c202d607 100644 --- a/plugins/python-build/share/python-build/2.4.1 +++ b/plugins/python-build/share/python-build/2.4.1 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4.1" "https://www.python.org/ftp/python/2.4.1/Python-2.4.1.tgz#f449c3b167389324c525ad99d02376c518ac11e163dbbbc13bc88a5c7101fd00" ldflags_dirs standard verify_py24 +install_package "Python-2.4.1" "https://www.python.org/ftp/python/2.4.1/Python-2.4.1.tgz#f449c3b167389324c525ad99d02376c518ac11e163dbbbc13bc88a5c7101fd00" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.2 b/plugins/python-build/share/python-build/2.4.2 index bbbd744cee..7c0fe6cc23 100644 --- a/plugins/python-build/share/python-build/2.4.2 +++ b/plugins/python-build/share/python-build/2.4.2 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4.2" "https://www.python.org/ftp/python/2.4.2/Python-2.4.2.tgz#2653e1846e87fd9b3ee287fefc965c80c54646548b4913a22265b0dd54493adf" ldflags_dirs standard verify_py24 +install_package "Python-2.4.2" "https://www.python.org/ftp/python/2.4.2/Python-2.4.2.tgz#2653e1846e87fd9b3ee287fefc965c80c54646548b4913a22265b0dd54493adf" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.3 b/plugins/python-build/share/python-build/2.4.3 index ef842d4f29..59651b1db4 100644 --- a/plugins/python-build/share/python-build/2.4.3 +++ b/plugins/python-build/share/python-build/2.4.3 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4.3" "https://www.python.org/ftp/python/2.4.3/Python-2.4.3.tgz#985a413932f5e31e6280b37da6b285a3a0b2748c6786643989ed9b23de97e2d5" ldflags_dirs standard verify_py24 +install_package "Python-2.4.3" "https://www.python.org/ftp/python/2.4.3/Python-2.4.3.tgz#985a413932f5e31e6280b37da6b285a3a0b2748c6786643989ed9b23de97e2d5" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.4 b/plugins/python-build/share/python-build/2.4.4 index 90e6951b48..bfec07076c 100644 --- a/plugins/python-build/share/python-build/2.4.4 +++ b/plugins/python-build/share/python-build/2.4.4 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4.4" "https://www.python.org/ftp/python/2.4.4/Python-2.4.4.tgz#92be6e20cbc3111d9dd0c016d72ef7914c23b879dc52df7ba28df97afbf12e2e" ldflags_dirs standard verify_py24 +install_package "Python-2.4.4" "https://www.python.org/ftp/python/2.4.4/Python-2.4.4.tgz#92be6e20cbc3111d9dd0c016d72ef7914c23b879dc52df7ba28df97afbf12e2e" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.5 b/plugins/python-build/share/python-build/2.4.5 index 728e83edc9..15c25723f6 100644 --- a/plugins/python-build/share/python-build/2.4.5 +++ b/plugins/python-build/share/python-build/2.4.5 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4.5" "https://www.python.org/ftp/python/2.4.5/Python-2.4.5.tgz#6ae6f67a388a7f70ed3a20eebab5aae995ee433089d1f1724095c62f4b7389a1" ldflags_dirs standard verify_py24 +install_package "Python-2.4.5" "https://www.python.org/ftp/python/2.4.5/Python-2.4.5.tgz#6ae6f67a388a7f70ed3a20eebab5aae995ee433089d1f1724095c62f4b7389a1" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.4.6 b/plugins/python-build/share/python-build/2.4.6 index ec6b4e2f68..534559a6cd 100644 --- a/plugins/python-build/share/python-build/2.4.6 +++ b/plugins/python-build/share/python-build/2.4.6 @@ -1,5 +1,5 @@ require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.4.6" "https://www.python.org/ftp/python/2.4.6/Python-2.4.6.tgz#b03f269e826927f05c966cf4f4414f3c93ee2314960859e7f8375e24e82f8b02" ldflags_dirs standard verify_py24 +install_package "Python-2.4.6" "https://www.python.org/ftp/python/2.4.6/Python-2.4.6.tgz#b03f269e826927f05c966cf4f4414f3c93ee2314960859e7f8375e24e82f8b02" standard verify_py24 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.1" "https://pypi.python.org/packages/source/p/pip/pip-1.1.tar.gz#993804bb947d18508acee02141281c77d27677f8c14eaa64d6287a1c53ef01c8" python diff --git a/plugins/python-build/share/python-build/2.5.0 b/plugins/python-build/share/python-build/2.5.0 index d4af474e3b..f2eea6339f 100644 --- a/plugins/python-build/share/python-build/2.5.0 +++ b/plugins/python-build/share/python-build/2.5.0 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5" "https://www.python.org/ftp/python/2.5/Python-2.5.tgz#d7bbf42e36003c6065cd19f3e67d283521858515ee923220f654131cebe1d8f2" ldflags_dirs standard verify_py25 +install_package "Python-2.5" "https://www.python.org/ftp/python/2.5/Python-2.5.tgz#d7bbf42e36003c6065cd19f3e67d283521858515ee923220f654131cebe1d8f2" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.5.1 b/plugins/python-build/share/python-build/2.5.1 index 6e4b186e50..d62586bda6 100644 --- a/plugins/python-build/share/python-build/2.5.1 +++ b/plugins/python-build/share/python-build/2.5.1 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5.1" "https://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#1f5caee846049ca30d996f9403eefdb996295c4af664867e35dcc5eb36e4e7e8" ldflags_dirs standard verify_py25 +install_package "Python-2.5.1" "https://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#1f5caee846049ca30d996f9403eefdb996295c4af664867e35dcc5eb36e4e7e8" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.5.2 b/plugins/python-build/share/python-build/2.5.2 index 5b400e03fa..bff195383e 100644 --- a/plugins/python-build/share/python-build/2.5.2 +++ b/plugins/python-build/share/python-build/2.5.2 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5.2" "https://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#834afe8a88adaf623b05ac5dd6700dd5bb5d0d5553fc74ad529359a3496e4ae3" ldflags_dirs standard verify_py25 +install_package "Python-2.5.2" "https://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#834afe8a88adaf623b05ac5dd6700dd5bb5d0d5553fc74ad529359a3496e4ae3" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.5.3 b/plugins/python-build/share/python-build/2.5.3 index 5d47a49de4..1e34475815 100644 --- a/plugins/python-build/share/python-build/2.5.3 +++ b/plugins/python-build/share/python-build/2.5.3 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5.3" "https://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#c3fee607d20a77dfb72ea2e627eb4d95d25c735603435abde62c57015a0445bd" ldflags_dirs standard verify_py25 +install_package "Python-2.5.3" "https://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#c3fee607d20a77dfb72ea2e627eb4d95d25c735603435abde62c57015a0445bd" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.5.4 b/plugins/python-build/share/python-build/2.5.4 index fd8353661f..b976863e89 100644 --- a/plugins/python-build/share/python-build/2.5.4 +++ b/plugins/python-build/share/python-build/2.5.4 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5.4" "https://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#3d3b205611ee503a38a9433d5645a571668420bb219242c7f51af85f05664da6" ldflags_dirs standard verify_py25 +install_package "Python-2.5.4" "https://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#3d3b205611ee503a38a9433d5645a571668420bb219242c7f51af85f05664da6" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.5.5 b/plugins/python-build/share/python-build/2.5.5 index af0d6c460c..1c9d65c71b 100644 --- a/plugins/python-build/share/python-build/2.5.5 +++ b/plugins/python-build/share/python-build/2.5.5 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5.5" "https://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#03be1019c4fe93daeb53ba9e4294bf22a8ed4cb854cbd57e24e16f6bf63e2392" ldflags_dirs standard verify_py25 +install_package "Python-2.5.5" "https://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#03be1019c4fe93daeb53ba9e4294bf22a8ed4cb854cbd57e24e16f6bf63e2392" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.5.6 b/plugins/python-build/share/python-build/2.5.6 index 7e3f56b7e0..e49ae2771b 100644 --- a/plugins/python-build/share/python-build/2.5.6 +++ b/plugins/python-build/share/python-build/2.5.6 @@ -1,5 +1,5 @@ #require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline -install_package "Python-2.5.6" "https://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#c2e4377597241b1065677d23327c04d0f41945d370c61a491cc88be367234c5d" ldflags_dirs standard verify_py25 +install_package "Python-2.5.6" "https://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#c2e4377597241b1065677d23327c04d0f41945d370c61a491cc88be367234c5d" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python install_package "pip-1.3.1" "https://pypi.python.org/packages/source/p/pip/pip-1.3.1.tar.gz#145eaa5d1ea1b062663da1f3a97780d7edea4c63c68a37c463b1deedf7bb4957" python diff --git a/plugins/python-build/share/python-build/2.6.6 b/plugins/python-build/share/python-build/2.6.6 index 1f7d685984..4c5f7980f9 100644 --- a/plugins/python-build/share/python-build/2.6.6 +++ b/plugins/python-build/share/python-build/2.6.6 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.6" "https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#372f66db46d773214e4619df1794a26449158f626138d4d2141a64c2f017fae1" ldflags_dirs standard verify_py26 ensurepip +install_package "Python-2.6.6" "https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#372f66db46d773214e4619df1794a26449158f626138d4d2141a64c2f017fae1" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.7 b/plugins/python-build/share/python-build/2.6.7 index 31171ab347..8e329b8c2a 100644 --- a/plugins/python-build/share/python-build/2.6.7 +++ b/plugins/python-build/share/python-build/2.6.7 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.7" "https://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#a8093eace4cfd3e06b05f0deb5d765e3c6cec65908048640a8cadd7a948b3826" ldflags_dirs standard verify_py26 ensurepip +install_package "Python-2.6.7" "https://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#a8093eace4cfd3e06b05f0deb5d765e3c6cec65908048640a8cadd7a948b3826" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.8 b/plugins/python-build/share/python-build/2.6.8 index a29f750ba0..3954e847c7 100644 --- a/plugins/python-build/share/python-build/2.6.8 +++ b/plugins/python-build/share/python-build/2.6.8 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.8" "https://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#5bf02a75ffa2fcaa5a3cabb8201998519b045541975622316888ea468d9512f7" ldflags_dirs standard verify_py26 ensurepip +install_package "Python-2.6.8" "https://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#5bf02a75ffa2fcaa5a3cabb8201998519b045541975622316888ea468d9512f7" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.9 b/plugins/python-build/share/python-build/2.6.9 index 951758719b..338e2acd94 100644 --- a/plugins/python-build/share/python-build/2.6.9 +++ b/plugins/python-build/share/python-build/2.6.9 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.9" "https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" ldflags_dirs standard verify_py26 ensurepip +install_package "Python-2.6.9" "https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.7.0 b/plugins/python-build/share/python-build/2.7.0 index 62d47c8915..adf5dffe57 100644 --- a/plugins/python-build/share/python-build/2.7.0 +++ b/plugins/python-build/share/python-build/2.7.0 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7" "https://www.python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7" "https://www.python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.1 b/plugins/python-build/share/python-build/2.7.1 index c2b76a4a76..582e44b9db 100644 --- a/plugins/python-build/share/python-build/2.7.1 +++ b/plugins/python-build/share/python-build/2.7.1 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.1" "https://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7.1" "https://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.10 b/plugins/python-build/share/python-build/2.7.10 index dbfa6761f9..ba6e71d009 100644 --- a/plugins/python-build/share/python-build/2.7.10 +++ b/plugins/python-build/share/python-build/2.7.10 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz#1cd3730781b91caf0fa1c4d472dc29274186480161a150294c42ce9b5c5effc0" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tar.xz#1cd3730781b91caf0fa1c4d472dc29274186480161a150294c42ce9b5c5effc0" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz#eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.10" "https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz#eda8ce6eec03e74991abb5384170e7c65fcd7522e409b8e83d7e6372add0f12a" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.11 b/plugins/python-build/share/python-build/2.7.11 index 7583627ad1..7a97ce9da6 100644 --- a/plugins/python-build/share/python-build/2.7.11 +++ b/plugins/python-build/share/python-build/2.7.11 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz#962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tar.xz#962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz#82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.11" "https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz#82929b96fd6afc8da838b149107078c02fa1744b7e60999a8babbc0d3fa86fc6" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.12 b/plugins/python-build/share/python-build/2.7.12 index fac72ba7d0..d85fd3c679 100644 --- a/plugins/python-build/share/python-build/2.7.12 +++ b/plugins/python-build/share/python-build/2.7.12 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.12" "https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz#d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.12" "https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz#d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.12" "https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz#3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.12" "https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz#3cb522d17463dfa69a155ab18cffa399b358c966c0363d6c8b5b3bf1384da4b6" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.13 b/plugins/python-build/share/python-build/2.7.13 index b423bea25c..cf62dcd19e 100644 --- a/plugins/python-build/share/python-build/2.7.13 +++ b/plugins/python-build/share/python-build/2.7.13 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.13" "https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz#35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.13" "https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tar.xz#35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.13" "https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz#a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.13" "https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz#a4f05a0720ce0fd92626f0278b6b433eee9a6173ddf2bced7957dfb599a5ece1" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.14 b/plugins/python-build/share/python-build/2.7.14 index 12e20fdcaa..4fa97dd52a 100644 --- a/plugins/python-build/share/python-build/2.7.14 +++ b/plugins/python-build/share/python-build/2.7.14 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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.14" "https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz#71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.14" "https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tar.xz#71ffb26e09e78650e424929b2b457b9c912ac216576e6bd9e7d204ed03296a66" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.14" "https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz#304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.14" "https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz#304c9b202ea6fbd0a4a8e0ad3733715fbd4749f2204a9173a58ec53c32ea73e8" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.15 b/plugins/python-build/share/python-build/2.7.15 index 1e8ac06f4c..b1751f4043 100644 --- a/plugins/python-build/share/python-build/2.7.15 +++ b/plugins/python-build/share/python-build/2.7.15 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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.15" "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz#22d9b1ac5b26135ad2b8c2901a9413537e08749a753356ee913c84dbd2df5574" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.15" "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tar.xz#22d9b1ac5b26135ad2b8c2901a9413537e08749a753356ee913c84dbd2df5574" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.15" "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz#18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.15" "https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz#18617d1f15a380a919d517630a9cd85ce17ea602f9bbdc58ddc672df4b0239db" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.16 b/plugins/python-build/share/python-build/2.7.16 index dfd6766552..e3938de350 100644 --- a/plugins/python-build/share/python-build/2.7.16 +++ b/plugins/python-build/share/python-build/2.7.16 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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.16" "https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tar.xz#f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.16" "https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tar.xz#f222ef602647eecb6853681156d32de4450a2c39f4de93bd5b20235f2e660ed7" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.16" "https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz#01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.16" "https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz#01da813a3600876f03f46db11cc5c408175e99f03af2ba942ef324389a83bad5" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.17 b/plugins/python-build/share/python-build/2.7.17 index 6168573a5d..85d8c5dd5a 100644 --- a/plugins/python-build/share/python-build/2.7.17 +++ b/plugins/python-build/share/python-build/2.7.17 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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.17" "https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tar.xz#4d43f033cdbd0aa7b7023c81b0e986fd11e653b5248dac9144d508f11812ba41" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.17" "https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tar.xz#4d43f033cdbd0aa7b7023c81b0e986fd11e653b5248dac9144d508f11812ba41" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.17" "https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tgz#f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.17" "https://www.python.org/ftp/python/2.7.17/Python-2.7.17.tgz#f22059d09cdf9625e0a7284d24a13062044f5bf59d93a7f3382190dfa94cecde" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.18 b/plugins/python-build/share/python-build/2.7.18 index 13430a91f9..40703c7453 100644 --- a/plugins/python-build/share/python-build/2.7.18 +++ b/plugins/python-build/share/python-build/2.7.18 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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" ldflags_dirs 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 else - install_package "Python-2.7.18" "https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz#da3080e3b488f648a3d7a4560ddee895284c3380b11d6de75edb986526b9a814" ldflags_dirs 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 fi diff --git a/plugins/python-build/share/python-build/2.7.2 b/plugins/python-build/share/python-build/2.7.2 index 0275491ce4..910fc4b2e4 100644 --- a/plugins/python-build/share/python-build/2.7.2 +++ b/plugins/python-build/share/python-build/2.7.2 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.2" "https://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#1d54b7096c17902c3f40ffce7e5b84e0072d0144024184fff184a84d563abbb3" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7.2" "https://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#1d54b7096c17902c3f40ffce7e5b84e0072d0144024184fff184a84d563abbb3" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.3 b/plugins/python-build/share/python-build/2.7.3 index d18b6addeb..9a3dd65751 100644 --- a/plugins/python-build/share/python-build/2.7.3 +++ b/plugins/python-build/share/python-build/2.7.3 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.3" "https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#d4c20f2b5faf95999fd5fecb3f7d32071b0820516224a6d2b72932ab47a1cb8e" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7.3" "https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#d4c20f2b5faf95999fd5fecb3f7d32071b0820516224a6d2b72932ab47a1cb8e" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.4 b/plugins/python-build/share/python-build/2.7.4 index b5878633f2..2dddb648f5 100644 --- a/plugins/python-build/share/python-build/2.7.4 +++ b/plugins/python-build/share/python-build/2.7.4 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.4" "https://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz#98c5eb9c8e65effcc0122112ba17a0bce880aa23ecb560af56b55eb55632b81a" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7.4" "https://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz#98c5eb9c8e65effcc0122112ba17a0bce880aa23ecb560af56b55eb55632b81a" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.5 b/plugins/python-build/share/python-build/2.7.5 index 4956be2686..dc0f3be45e 100644 --- a/plugins/python-build/share/python-build/2.7.5 +++ b/plugins/python-build/share/python-build/2.7.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.5" "https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#8e1b5fa87b91835afb376a9c0d319d41feca07ffebc0288d97ab08d64f48afbf" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7.5" "https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#8e1b5fa87b91835afb376a9c0d319d41feca07ffebc0288d97ab08d64f48afbf" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.6 b/plugins/python-build/share/python-build/2.7.6 index 345eba0b31..03d3a6f01b 100644 --- a/plugins/python-build/share/python-build/2.7.6 +++ b/plugins/python-build/share/python-build/2.7.6 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.6" "https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz#99c6860b70977befa1590029fae092ddb18db1d69ae67e8b9385b66ed104ba58" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip +install_package "Python-2.7.6" "https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz#99c6860b70977befa1590029fae092ddb18db1d69ae67e8b9385b66ed104ba58" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.7 b/plugins/python-build/share/python-build/2.7.7 index f863a47dee..10a829423d 100644 --- a/plugins/python-build/share/python-build/2.7.7 +++ b/plugins/python-build/share/python-build/2.7.7 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.7" "https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tar.xz#2983e3cd089b30c50e2b2234f07c2ac4fb8a5df230ab8f2e1133a1d8b208da78" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.7" "https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tar.xz#2983e3cd089b30c50e2b2234f07c2ac4fb8a5df230ab8f2e1133a1d8b208da78" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.7" "https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz#7f49c0a6705ad89d925181e27d0aaa025ee4731ce0de64776c722216c3e66c42" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.7" "https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz#7f49c0a6705ad89d925181e27d0aaa025ee4731ce0de64776c722216c3e66c42" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.8 b/plugins/python-build/share/python-build/2.7.8 index 44847172fe..183c443ee3 100644 --- a/plugins/python-build/share/python-build/2.7.8 +++ b/plugins/python-build/share/python-build/2.7.8 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.8" "https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz#edde10a0cb7d14e2735e682882d5b287028d1485c456758154c19573db68075a" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.8" "https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tar.xz#edde10a0cb7d14e2735e682882d5b287028d1485c456758154c19573db68075a" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.8" "https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz#74d70b914da4487aa1d97222b29e9554d042f825f26cb2b93abd20fdda56b557" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.8" "https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz#74d70b914da4487aa1d97222b29e9554d042f825f26cb2b93abd20fdda56b557" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/2.7.9 b/plugins/python-build/share/python-build/2.7.9 index 1df09c72e8..404b9971e3 100644 --- a/plugins/python-build/share/python-build/2.7.9 +++ b/plugins/python-build/share/python-build/2.7.9 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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.9" "https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz#90d27e14ea7e03570026850e2e50ba71ad20b7eb31035aada1cf3def8f8d4916" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.9" "https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tar.xz#90d27e14ea7e03570026850e2e50ba71ad20b7eb31035aada1cf3def8f8d4916" standard verify_py27 copy_python_gdb ensurepip else - install_package "Python-2.7.9" "https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz#c8bba33e66ac3201dabdc556f0ea7cfe6ac11946ec32d357c4c6f9b018c12c5b" ldflags_dirs standard verify_py27 copy_python_gdb ensurepip + install_package "Python-2.7.9" "https://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz#c8bba33e66ac3201dabdc556f0ea7cfe6ac11946ec32d357c4c6f9b018c12c5b" standard verify_py27 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.0.1 b/plugins/python-build/share/python-build/3.0.1 index 8d08f28a14..c34bc83f3b 100644 --- a/plugins/python-build/share/python-build/3.0.1 +++ b/plugins/python-build/share/python-build/3.0.1 @@ -1,7 +1,7 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.0.1" "https://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#7d5f2feae9035f1d3d9e6bb7f092dbf374d6bb4b25abd0d2d11f13bba1cb04de" ldflags_dirs standard verify_py30 +install_package "Python-3.0.1" "https://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#7d5f2feae9035f1d3d9e6bb7f092dbf374d6bb4b25abd0d2d11f13bba1cb04de" standard verify_py30 if [[ "Darwin" == "$(uname -s)" ]]; then # https://github.com/pyenv/pyenv/issues/456 { echo diff --git a/plugins/python-build/share/python-build/3.1.0 b/plugins/python-build/share/python-build/3.1.0 index 646d99e2ec..2f62dfb644 100644 --- a/plugins/python-build/share/python-build/3.1.0 +++ b/plugins/python-build/share/python-build/3.1.0 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1" "https://www.python.org/ftp/python/3.1/Python-3.1.tgz#99a034cf574ea3c26412b0a0728126d7fd6ea9593d099d807a25d216ed031e6a" ldflags_dirs standard verify_py31 +install_package "Python-3.1" "https://www.python.org/ftp/python/3.1/Python-3.1.tgz#99a034cf574ea3c26412b0a0728126d7fd6ea9593d099d807a25d216ed031e6a" standard verify_py31 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python diff --git a/plugins/python-build/share/python-build/3.1.1 b/plugins/python-build/share/python-build/3.1.1 index 3cd8d01391..46b5ee4dc4 100644 --- a/plugins/python-build/share/python-build/3.1.1 +++ b/plugins/python-build/share/python-build/3.1.1 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.1" "https://www.python.org/ftp/python/3.1.1/Python-3.1.1.tgz#5d85d7bff11c4db44920af99f64f4227c816f897f6bfa9dd8a2611165ca5f0a1" ldflags_dirs standard verify_py31 +install_package "Python-3.1.1" "https://www.python.org/ftp/python/3.1.1/Python-3.1.1.tgz#5d85d7bff11c4db44920af99f64f4227c816f897f6bfa9dd8a2611165ca5f0a1" standard verify_py31 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python diff --git a/plugins/python-build/share/python-build/3.1.2 b/plugins/python-build/share/python-build/3.1.2 index 93cb70bd97..7ab7fa4579 100644 --- a/plugins/python-build/share/python-build/3.1.2 +++ b/plugins/python-build/share/python-build/3.1.2 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.2" "https://www.python.org/ftp/python/3.1.2/Python-3.1.2.tgz#dffbc0561a161a4a576c6059e6990a9859a0be16ba9b5736eabe4abbb2700d1c" ldflags_dirs standard verify_py31 +install_package "Python-3.1.2" "https://www.python.org/ftp/python/3.1.2/Python-3.1.2.tgz#dffbc0561a161a4a576c6059e6990a9859a0be16ba9b5736eabe4abbb2700d1c" standard verify_py31 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python diff --git a/plugins/python-build/share/python-build/3.1.3 b/plugins/python-build/share/python-build/3.1.3 index 5994e6b0d0..7b3e8abf94 100644 --- a/plugins/python-build/share/python-build/3.1.3 +++ b/plugins/python-build/share/python-build/3.1.3 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.3" "https://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#6311823aeda8be6a7a2b67caaeff48abce6626c9940ba7ed81f9c978666a36bd" ldflags_dirs standard verify_py31 +install_package "Python-3.1.3" "https://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#6311823aeda8be6a7a2b67caaeff48abce6626c9940ba7ed81f9c978666a36bd" standard verify_py31 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python diff --git a/plugins/python-build/share/python-build/3.1.4 b/plugins/python-build/share/python-build/3.1.4 index 45918a79c0..34496027f0 100644 --- a/plugins/python-build/share/python-build/3.1.4 +++ b/plugins/python-build/share/python-build/3.1.4 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.4" "https://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fadc05ea6d05360cff189944a85ecd2180bbc308784d168b350450e70bbdd846" ldflags_dirs standard verify_py31 +install_package "Python-3.1.4" "https://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fadc05ea6d05360cff189944a85ecd2180bbc308784d168b350450e70bbdd846" standard verify_py31 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python diff --git a/plugins/python-build/share/python-build/3.1.5 b/plugins/python-build/share/python-build/3.1.5 index 047b8523c3..013f22b1d8 100644 --- a/plugins/python-build/share/python-build/3.1.5 +++ b/plugins/python-build/share/python-build/3.1.5 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.5" "https://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#d12dae6d06f52ef6bf1271db4d5b4d14b5dd39813e324314e72b648ef1bc0103" ldflags_dirs standard verify_py31 +install_package "Python-3.1.5" "https://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#d12dae6d06f52ef6bf1271db4d5b4d14b5dd39813e324314e72b648ef1bc0103" standard verify_py31 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-1.5.6" "https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#b1a4ae66baf21b7eb05a5e4f37c50c2706fa28ea1f8780ce8efe14dcd9f1726c" python diff --git a/plugins/python-build/share/python-build/3.10.0b1 b/plugins/python-build/share/python-build/3.10.0b1 index 1b1a0a38f2..9c4eab2735 100644 --- a/plugins/python-build/share/python-build/3.10.0b1 +++ b/plugins/python-build/share/python-build/3.10.0b1 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tar.xz#a30c55b26a91f4c76392ba2b2e87c2d591fdb2b36f7b58d39fe90bd400fef1a3" ldflags_dirs standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tar.xz#a30c55b26a91f4c76392ba2b2e87c2d591fdb2b36f7b58d39fe90bd400fef1a3" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tgz#a44c4726948689fe22f3edf30f11bf361d4536b38738ca955747eb5860c2dc93" ldflags_dirs standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tgz#a44c4726948689fe22f3edf30f11bf361d4536b38738ca955747eb5860c2dc93" standard verify_py310 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.2.0 b/plugins/python-build/share/python-build/3.2.0 index 3a90592ae8..6daa00e2e3 100644 --- a/plugins/python-build/share/python-build/3.2.0 +++ b/plugins/python-build/share/python-build/3.2.0 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2" "https://www.python.org/ftp/python/3.2/Python-3.2.tgz#27b35bfcbbf01de9564c0265d72b58ba3ff3d56df0615765372f2aa09dc20da9" ldflags_dirs standard verify_py32 +install_package "Python-3.2" "https://www.python.org/ftp/python/3.2/Python-3.2.tgz#27b35bfcbbf01de9564c0265d72b58ba3ff3d56df0615765372f2aa09dc20da9" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.2.1 b/plugins/python-build/share/python-build/3.2.1 index a8a10f1892..44d27f1f05 100644 --- a/plugins/python-build/share/python-build/3.2.1 +++ b/plugins/python-build/share/python-build/3.2.1 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.1" "https://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#7cff29d984696d9fe8c7bea54da5b9ad36acef33ff5cf0d3e37e4d12fb21c572" ldflags_dirs standard verify_py32 +install_package "Python-3.2.1" "https://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#7cff29d984696d9fe8c7bea54da5b9ad36acef33ff5cf0d3e37e4d12fb21c572" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.2.2 b/plugins/python-build/share/python-build/3.2.2 index 7c02f4e7be..fe6fce6f90 100644 --- a/plugins/python-build/share/python-build/3.2.2 +++ b/plugins/python-build/share/python-build/3.2.2 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.2" "https://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#acc6a13cb4fed0b7e86716324a8437e326645b8076177eede5a0cad99ec0313c" ldflags_dirs standard verify_py32 +install_package "Python-3.2.2" "https://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#acc6a13cb4fed0b7e86716324a8437e326645b8076177eede5a0cad99ec0313c" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.2.3 b/plugins/python-build/share/python-build/3.2.3 index e25e6c7803..ffda24bfb7 100644 --- a/plugins/python-build/share/python-build/3.2.3 +++ b/plugins/python-build/share/python-build/3.2.3 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.3" "https://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#74c33e165edef7532cef95fd9a325a06878b5bfc8a5d038161573f283eaf9809" ldflags_dirs standard verify_py32 +install_package "Python-3.2.3" "https://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#74c33e165edef7532cef95fd9a325a06878b5bfc8a5d038161573f283eaf9809" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.2.4 b/plugins/python-build/share/python-build/3.2.4 index 48e3b5cd3c..567602d338 100644 --- a/plugins/python-build/share/python-build/3.2.4 +++ b/plugins/python-build/share/python-build/3.2.4 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.4" "https://www.python.org/ftp/python/3.2.4/Python-3.2.4.tgz#71c3139908ccc1c544ba1e331a3c22b3f1c09f562438a054fd6f4e2628de8b9a" ldflags_dirs standard verify_py32 +install_package "Python-3.2.4" "https://www.python.org/ftp/python/3.2.4/Python-3.2.4.tgz#71c3139908ccc1c544ba1e331a3c22b3f1c09f562438a054fd6f4e2628de8b9a" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.2.5 b/plugins/python-build/share/python-build/3.2.5 index 338a5a7fac..ceb9811c36 100644 --- a/plugins/python-build/share/python-build/3.2.5 +++ b/plugins/python-build/share/python-build/3.2.5 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.5" "https://www.python.org/ftp/python/3.2.5/Python-3.2.5.tgz#5eae0ab92a0bb9e3a1bf9c7cd046bc3de58996b049bd894d095978b6b085099f" ldflags_dirs standard verify_py32 +install_package "Python-3.2.5" "https://www.python.org/ftp/python/3.2.5/Python-3.2.5.tgz#5eae0ab92a0bb9e3a1bf9c7cd046bc3de58996b049bd894d095978b6b085099f" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.2.6 b/plugins/python-build/share/python-build/3.2.6 index fbefd10f60..695c7976e1 100644 --- a/plugins/python-build/share/python-build/3.2.6 +++ b/plugins/python-build/share/python-build/3.2.6 @@ -2,9 +2,9 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.2.6" "https://www.python.org/ftp/python/3.2.6/Python-3.2.6.tar.xz#1d12b501819fd26afafbf8459be1aa279b56f032b4c15412de0a713ce0de7bdc" ldflags_dirs standard verify_py32 + install_package "Python-3.2.6" "https://www.python.org/ftp/python/3.2.6/Python-3.2.6.tar.xz#1d12b501819fd26afafbf8459be1aa279b56f032b4c15412de0a713ce0de7bdc" standard verify_py32 else - install_package "Python-3.2.6" "https://www.python.org/ftp/python/3.2.6/Python-3.2.6.tgz#fc1e41296e29d476f696303acae293ae7a2310f0f9d0d637905e722a3f16163e" ldflags_dirs standard verify_py32 + install_package "Python-3.2.6" "https://www.python.org/ftp/python/3.2.6/Python-3.2.6.tgz#fc1e41296e29d476f696303acae293ae7a2310f0f9d0d637905e722a3f16163e" standard verify_py32 fi install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/3.3.0 b/plugins/python-build/share/python-build/3.3.0 index 3d8c4fb8c1..92e623e6cf 100644 --- a/plugins/python-build/share/python-build/3.3.0 +++ b/plugins/python-build/share/python-build/3.3.0 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.0" "https://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz#cfe531eaace2503e13a74addc7f4a89482e99f8b8fca51b469ae5c83f450604e" ldflags_dirs standard verify_py33 ensurepip +install_package "Python-3.3.0" "https://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz#cfe531eaace2503e13a74addc7f4a89482e99f8b8fca51b469ae5c83f450604e" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.1 b/plugins/python-build/share/python-build/3.3.1 index 9fd8e0af9e..76c2ea9cf3 100644 --- a/plugins/python-build/share/python-build/3.3.1 +++ b/plugins/python-build/share/python-build/3.3.1 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.1" "https://www.python.org/ftp/python/3.3.1/Python-3.3.1.tgz#671dc3632f311e63c6733703aa0a1ad90c99277ddc8299d39e487718a50319bd" ldflags_dirs standard verify_py33 ensurepip +install_package "Python-3.3.1" "https://www.python.org/ftp/python/3.3.1/Python-3.3.1.tgz#671dc3632f311e63c6733703aa0a1ad90c99277ddc8299d39e487718a50319bd" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.2 b/plugins/python-build/share/python-build/3.3.2 index da883d281e..0760cae16e 100644 --- a/plugins/python-build/share/python-build/3.3.2 +++ b/plugins/python-build/share/python-build/3.3.2 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.2" "https://www.python.org/ftp/python/3.3.2/Python-3.3.2.tgz#de664fca3b8e0ab20fb42bfed1a36e26f116f1853e88ada12dbc938761036172" ldflags_dirs standard verify_py33 ensurepip +install_package "Python-3.3.2" "https://www.python.org/ftp/python/3.3.2/Python-3.3.2.tgz#de664fca3b8e0ab20fb42bfed1a36e26f116f1853e88ada12dbc938761036172" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.3 b/plugins/python-build/share/python-build/3.3.3 index 2be51b0751..cde48bdf43 100644 --- a/plugins/python-build/share/python-build/3.3.3 +++ b/plugins/python-build/share/python-build/3.3.3 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.3" "https://www.python.org/ftp/python/3.3.3/Python-3.3.3.tgz#30b60839bfe0ae8a2dba11e909328459bb8ee4a258afe7494b06b2ceda080efc" ldflags_dirs standard verify_py33 ensurepip +install_package "Python-3.3.3" "https://www.python.org/ftp/python/3.3.3/Python-3.3.3.tgz#30b60839bfe0ae8a2dba11e909328459bb8ee4a258afe7494b06b2ceda080efc" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.4 b/plugins/python-build/share/python-build/3.3.4 index 4cb8c036a4..8f1c60c513 100644 --- a/plugins/python-build/share/python-build/3.3.4 +++ b/plugins/python-build/share/python-build/3.3.4 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.4" "https://www.python.org/ftp/python/3.3.4/Python-3.3.4.tgz#ea055db9dd004a6ecd7690abc9734573763686dd768122316bae2dfd026412af" ldflags_dirs standard verify_py33 ensurepip +install_package "Python-3.3.4" "https://www.python.org/ftp/python/3.3.4/Python-3.3.4.tgz#ea055db9dd004a6ecd7690abc9734573763686dd768122316bae2dfd026412af" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.5 b/plugins/python-build/share/python-build/3.3.5 index b313ecfcfe..d38f9c731a 100644 --- a/plugins/python-build/share/python-build/3.3.5 +++ b/plugins/python-build/share/python-build/3.3.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.5" "https://www.python.org/ftp/python/3.3.5/Python-3.3.5.tgz#916bc57dd8524dc27429bebae7b39d6942742cf9699b875b2b496a3d960c7168" ldflags_dirs standard verify_py33 ensurepip +install_package "Python-3.3.5" "https://www.python.org/ftp/python/3.3.5/Python-3.3.5.tgz#916bc57dd8524dc27429bebae7b39d6942742cf9699b875b2b496a3d960c7168" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.6 b/plugins/python-build/share/python-build/3.3.6 index 91a513880c..395693bbac 100644 --- a/plugins/python-build/share/python-build/3.3.6 +++ b/plugins/python-build/share/python-build/3.3.6 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.3.6" "https://www.python.org/ftp/python/3.3.6/Python-3.3.6.tar.xz#5226e4bf7a530c3ff2bcde0c94e0e09e59a8bcde0114fe0268bc925bdabb5d3f" ldflags_dirs standard verify_py33 ensurepip + install_package "Python-3.3.6" "https://www.python.org/ftp/python/3.3.6/Python-3.3.6.tar.xz#5226e4bf7a530c3ff2bcde0c94e0e09e59a8bcde0114fe0268bc925bdabb5d3f" standard verify_py33 ensurepip else - install_package "Python-3.3.6" "https://www.python.org/ftp/python/3.3.6/Python-3.3.6.tgz#0a58ad1f1def4ecc90b18b0c410a3a0e1a48cf7692c75d1f83d0af080e5d2034" ldflags_dirs standard verify_py33 ensurepip + install_package "Python-3.3.6" "https://www.python.org/ftp/python/3.3.6/Python-3.3.6.tgz#0a58ad1f1def4ecc90b18b0c410a3a0e1a48cf7692c75d1f83d0af080e5d2034" standard verify_py33 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.3.7 b/plugins/python-build/share/python-build/3.3.7 index 1cea4dbc17..833efe58db 100644 --- a/plugins/python-build/share/python-build/3.3.7 +++ b/plugins/python-build/share/python-build/3.3.7 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.3.7" "https://www.python.org/ftp/python/3.3.7/Python-3.3.7.tar.xz#85f60c327501c36bc18c33370c14d472801e6af2f901dafbba056f61685429fe" ldflags_dirs standard verify_py33 ensurepip + install_package "Python-3.3.7" "https://www.python.org/ftp/python/3.3.7/Python-3.3.7.tar.xz#85f60c327501c36bc18c33370c14d472801e6af2f901dafbba056f61685429fe" standard verify_py33 ensurepip else - install_package "Python-3.3.7" "https://www.python.org/ftp/python/3.3.7/Python-3.3.7.tgz#992461a9598e85a45323512d4e60fa6c1d5aaef0956bf9db98733cc5aa9b05e1" ldflags_dirs standard verify_py33 ensurepip + install_package "Python-3.3.7" "https://www.python.org/ftp/python/3.3.7/Python-3.3.7.tgz#992461a9598e85a45323512d4e60fa6c1d5aaef0956bf9db98733cc5aa9b05e1" standard verify_py33 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.0 b/plugins/python-build/share/python-build/3.4.0 index b1072dc948..6941b9828e 100644 --- a/plugins/python-build/share/python-build/3.4.0 +++ b/plugins/python-build/share/python-build/3.4.0 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.0" "https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tar.xz#f13686c0a2d45e7146759e9d5d1cbd8097a0606483c0cf7730e1e13f58b14cbe" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.0" "https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tar.xz#f13686c0a2d45e7146759e9d5d1cbd8097a0606483c0cf7730e1e13f58b14cbe" standard verify_py34 ensurepip else - install_package "Python-3.4.0" "https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tgz#d2c83ea0217769a73e8b1ee33ffbca814903f8568e30f8d13e68e3d1f743449c" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.0" "https://www.python.org/ftp/python/3.4.0/Python-3.4.0.tgz#d2c83ea0217769a73e8b1ee33ffbca814903f8568e30f8d13e68e3d1f743449c" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.1 b/plugins/python-build/share/python-build/3.4.1 index 13ecaba836..a0a788e872 100644 --- a/plugins/python-build/share/python-build/3.4.1 +++ b/plugins/python-build/share/python-build/3.4.1 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.1" "https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tar.xz#c595a163104399041fcbe1c5c04db4c1da94f917b82ce89e8944c8edff7aedc4" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.1" "https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tar.xz#c595a163104399041fcbe1c5c04db4c1da94f917b82ce89e8944c8edff7aedc4" standard verify_py34 ensurepip else - install_package "Python-3.4.1" "https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz#8d007e3ef80b128a292be101201e75dec5480e5632e994771e7c231d17720b66" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.1" "https://www.python.org/ftp/python/3.4.1/Python-3.4.1.tgz#8d007e3ef80b128a292be101201e75dec5480e5632e994771e7c231d17720b66" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.10 b/plugins/python-build/share/python-build/3.4.10 index 89039a3bf4..00c680f7cc 100644 --- a/plugins/python-build/share/python-build/3.4.10 +++ b/plugins/python-build/share/python-build/3.4.10 @@ -4,4 +4,4 @@ install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0. has_tar_xz_support \ && src="https://www.python.org/ftp/python/3.4.10/Python-3.4.10.tar.xz#d46a8f6fe91679e199c671b1b0a30aaf172d2acb5bcab25beb35f16c3d195b4e" \ || src="https://www.python.org/ftp/python/3.4.10/Python-3.4.10.tgz#217757699249ab432571b381386d441e12b433100ab5f908051fcb7cced2539d" -install_package "Python-3.4.10" "$src" ldflags_dirs standard verify_py34 ensurepip +install_package "Python-3.4.10" "$src" standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/3.4.2 b/plugins/python-build/share/python-build/3.4.2 index f3b6f416ad..a768abcab3 100644 --- a/plugins/python-build/share/python-build/3.4.2 +++ b/plugins/python-build/share/python-build/3.4.2 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.2" "https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tar.xz#1c6d9682d145c056537e477bbfa060ce727f9edd38df1827e0f970dcf04b2def" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.2" "https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tar.xz#1c6d9682d145c056537e477bbfa060ce727f9edd38df1827e0f970dcf04b2def" standard verify_py34 ensurepip else - install_package "Python-3.4.2" "https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz#44a3c1ef1c7ca3e4fd25242af80ed72da941203cb4ed1a8c1b724d9078965dd8" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.2" "https://www.python.org/ftp/python/3.4.2/Python-3.4.2.tgz#44a3c1ef1c7ca3e4fd25242af80ed72da941203cb4ed1a8c1b724d9078965dd8" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.3 b/plugins/python-build/share/python-build/3.4.3 index dcb297562d..176700e3c1 100644 --- a/plugins/python-build/share/python-build/3.4.3 +++ b/plugins/python-build/share/python-build/3.4.3 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.3" "https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz#b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.3" "https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz#b5b3963533768d5fc325a4d7a6bd6f666726002d696f1d399ec06b043ea996b8" standard verify_py34 ensurepip else - install_package "Python-3.4.3" "https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz#8b743f56e9e50bf0923b9e9c45dd927c071d7aa56cd46569d8818add8cf01147" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.3" "https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz#8b743f56e9e50bf0923b9e9c45dd927c071d7aa56cd46569d8818add8cf01147" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.4 b/plugins/python-build/share/python-build/3.4.4 index b245556e96..9a617b7386 100644 --- a/plugins/python-build/share/python-build/3.4.4 +++ b/plugins/python-build/share/python-build/3.4.4 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.4" "https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz#a797d3820155ec6cb654a652b9acfb11792d4e7d568eef1f9199009e042b6ba2" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.4" "https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tar.xz#a797d3820155ec6cb654a652b9acfb11792d4e7d568eef1f9199009e042b6ba2" standard verify_py34 ensurepip else - install_package "Python-3.4.4" "https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz#bc93e944025816ec360712b4c42d8d5f729eaed2b26585e9bc8844f93f0c382e" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.4" "https://www.python.org/ftp/python/3.4.4/Python-3.4.4.tgz#bc93e944025816ec360712b4c42d8d5f729eaed2b26585e9bc8844f93f0c382e" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.5 b/plugins/python-build/share/python-build/3.4.5 index 111b85743d..e03bee4a74 100644 --- a/plugins/python-build/share/python-build/3.4.5 +++ b/plugins/python-build/share/python-build/3.4.5 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.5" "https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tar.xz#ee64b1c8a47461009abf25252332d29a4e587cb4f0c1c96aa793a3732e9d898a" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.5" "https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tar.xz#ee64b1c8a47461009abf25252332d29a4e587cb4f0c1c96aa793a3732e9d898a" standard verify_py34 ensurepip else - install_package "Python-3.4.5" "https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tgz#997aca4dd8692f3c954658a3db11c1d0862bcbf8eadd6a164746eb33d317c034" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.5" "https://www.python.org/ftp/python/3.4.5/Python-3.4.5.tgz#997aca4dd8692f3c954658a3db11c1d0862bcbf8eadd6a164746eb33d317c034" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.6 b/plugins/python-build/share/python-build/3.4.6 index 8efa067dac..edc980601c 100644 --- a/plugins/python-build/share/python-build/3.4.6 +++ b/plugins/python-build/share/python-build/3.4.6 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.6" "https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tar.xz#f13428bbe6aa9e3b9b6499502dc488c26096349ed7a21f7a0c1db90911115f40" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.6" "https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tar.xz#f13428bbe6aa9e3b9b6499502dc488c26096349ed7a21f7a0c1db90911115f40" standard verify_py34 ensurepip else - install_package "Python-3.4.6" "https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tgz#fe59daced99549d1d452727c050ae486169e9716a890cffb0d468b376d916b48" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.6" "https://www.python.org/ftp/python/3.4.6/Python-3.4.6.tgz#fe59daced99549d1d452727c050ae486169e9716a890cffb0d468b376d916b48" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.7 b/plugins/python-build/share/python-build/3.4.7 index f8402e4e38..66f60b28aa 100644 --- a/plugins/python-build/share/python-build/3.4.7 +++ b/plugins/python-build/share/python-build/3.4.7 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.7" "https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tar.xz#8714cf2b56dd36922dec8fa184d4936e1001c22fb439798cb73dda069e129d1b" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.7" "https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tar.xz#8714cf2b56dd36922dec8fa184d4936e1001c22fb439798cb73dda069e129d1b" standard verify_py34 ensurepip else - install_package "Python-3.4.7" "https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tgz#1614734847fd07e2a1ab1c65ae841db2433f8b845f49b34b7b5cabcb1c3f491f" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.7" "https://www.python.org/ftp/python/3.4.7/Python-3.4.7.tgz#1614734847fd07e2a1ab1c65ae841db2433f8b845f49b34b7b5cabcb1c3f491f" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.8 b/plugins/python-build/share/python-build/3.4.8 index 26144db463..180f9246fd 100644 --- a/plugins/python-build/share/python-build/3.4.8 +++ b/plugins/python-build/share/python-build/3.4.8 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.8" "https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tar.xz#29a472fa902c7b2add152f5e1e82e0885a8d360645689c1db5d1949a7e8ac3ea" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.8" "https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tar.xz#29a472fa902c7b2add152f5e1e82e0885a8d360645689c1db5d1949a7e8ac3ea" standard verify_py34 ensurepip else - install_package "Python-3.4.8" "https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tgz#8b1a1ce043e132082d29a5d09f2841f193c77b631282a82f98895a5dbaba1639" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.8" "https://www.python.org/ftp/python/3.4.8/Python-3.4.8.tgz#8b1a1ce043e132082d29a5d09f2841f193c77b631282a82f98895a5dbaba1639" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.4.9 b/plugins/python-build/share/python-build/3.4.9 index a59602a28d..d9d56b98e8 100644 --- a/plugins/python-build/share/python-build/3.4.9 +++ b/plugins/python-build/share/python-build/3.4.9 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.4.9" "https://www.python.org/ftp/python/3.4.9/Python-3.4.9.tar.xz#59629676ba2b01a798f5211d8f63c26ee52f1d5133cf37583e0bf1bad50c2bd9" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.9" "https://www.python.org/ftp/python/3.4.9/Python-3.4.9.tar.xz#59629676ba2b01a798f5211d8f63c26ee52f1d5133cf37583e0bf1bad50c2bd9" standard verify_py34 ensurepip else - install_package "Python-3.4.9" "https://www.python.org/ftp/python/3.4.9/Python-3.4.9.tgz#e02e565372750a6678efe35ddecbe5ccd5330a8a2e8bbe38d3060713492e3dab" ldflags_dirs standard verify_py34 ensurepip + install_package "Python-3.4.9" "https://www.python.org/ftp/python/3.4.9/Python-3.4.9.tgz#e02e565372750a6678efe35ddecbe5ccd5330a8a2e8bbe38d3060713492e3dab" standard verify_py34 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.0 b/plugins/python-build/share/python-build/3.5.0 index 89b470fdd7..3091d79342 100644 --- a/plugins/python-build/share/python-build/3.5.0 +++ b/plugins/python-build/share/python-build/3.5.0 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.5.0" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz#d6d7aa1634a5eeeca6ed4fca266982a04f84bd8f3945a9179e20b24ad2e2be91" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.0" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz#d6d7aa1634a5eeeca6ed4fca266982a04f84bd8f3945a9179e20b24ad2e2be91" standard verify_py35 copy_python_gdb ensurepip else - 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 copy_python_gdb ensurepip + install_package "Python-3.5.0" "https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tgz#584e3d5a02692ca52fce505e68ecd77248a6f2c99adf9db144a39087336b0fe0" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.1 b/plugins/python-build/share/python-build/3.5.1 index 918351765c..2ba893774c 100644 --- a/plugins/python-build/share/python-build/3.5.1 +++ b/plugins/python-build/share/python-build/3.5.1 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.5.1" "https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz#c6d57c0c366d9060ab6c0cdf889ebf3d92711d466cc0119c441dbf2746f725c9" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.1" "https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tar.xz#c6d57c0c366d9060ab6c0cdf889ebf3d92711d466cc0119c441dbf2746f725c9" standard verify_py35 copy_python_gdb ensurepip else - install_package "Python-3.5.1" "https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz#687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.1" "https://www.python.org/ftp/python/3.5.1/Python-3.5.1.tgz#687e067d9f391da645423c7eda8205bae9d35edc0c76ef5218dcbe4cc770d0d7" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.10 b/plugins/python-build/share/python-build/3.5.10 index c4d7363e33..1e6d9c3e06 100644 --- a/plugins/python-build/share/python-build/3.5.10 +++ b/plugins/python-build/share/python-build/3.5.10 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.10" "https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tar.xz#0f0fa8685c1dc1f1dacb0b4e7779796b90aef99dc1fa4967a71b9da7b57d4a28" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.10" "https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tar.xz#0f0fa8685c1dc1f1dacb0b4e7779796b90aef99dc1fa4967a71b9da7b57d4a28" standard verify_py35 ensurepip else - install_package "Python-3.5.10" "https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tgz#3496a0daf51913718a6f10e3eda51fa43634cb6151cb096f312d48bdbeff7d3a" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.10" "https://www.python.org/ftp/python/3.5.10/Python-3.5.10.tgz#3496a0daf51913718a6f10e3eda51fa43634cb6151cb096f312d48bdbeff7d3a" standard verify_py35 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.2 b/plugins/python-build/share/python-build/3.5.2 index bf17f8ecbf..23133f22cb 100644 --- a/plugins/python-build/share/python-build/3.5.2 +++ b/plugins/python-build/share/python-build/3.5.2 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.5.2" "https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz#0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.2" "https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz#0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40" standard verify_py35 copy_python_gdb ensurepip else - install_package "Python-3.5.2" "https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz#1524b840e42cf3b909e8f8df67c1724012c7dc7f9d076d4feef2d3eff031e8a0" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.2" "https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz#1524b840e42cf3b909e8f8df67c1724012c7dc7f9d076d4feef2d3eff031e8a0" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.3 b/plugins/python-build/share/python-build/3.5.3 index d393e9c761..54b6a25058 100644 --- a/plugins/python-build/share/python-build/3.5.3 +++ b/plugins/python-build/share/python-build/3.5.3 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.3" "https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tar.xz#eefe2ad6575855423ab630f5b51a8ef6e5556f774584c06beab4926f930ddbb0" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.3" "https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tar.xz#eefe2ad6575855423ab630f5b51a8ef6e5556f774584c06beab4926f930ddbb0" standard verify_py35 copy_python_gdb ensurepip else - install_package "Python-3.5.3" "https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz#d8890b84d773cd7059e597dbefa510340de8336ec9b9e9032bf030f19291565a" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.3" "https://www.python.org/ftp/python/3.5.3/Python-3.5.3.tgz#d8890b84d773cd7059e597dbefa510340de8336ec9b9e9032bf030f19291565a" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.4 b/plugins/python-build/share/python-build/3.5.4 index 097d446d8f..17d43a2305 100644 --- a/plugins/python-build/share/python-build/3.5.4 +++ b/plugins/python-build/share/python-build/3.5.4 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.4" "https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz#94d93bfabb3b109f8a10365a325f920f9ec98c6e2380bf228f9700a14054c84c" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.4" "https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tar.xz#94d93bfabb3b109f8a10365a325f920f9ec98c6e2380bf228f9700a14054c84c" standard verify_py35 copy_python_gdb ensurepip else - install_package "Python-3.5.4" "https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz#6ed87a8b6c758cc3299a8b433e8a9a9122054ad5bc8aad43299cff3a53d8ca44" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.4" "https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz#6ed87a8b6c758cc3299a8b433e8a9a9122054ad5bc8aad43299cff3a53d8ca44" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.5 b/plugins/python-build/share/python-build/3.5.5 index 8e81c5023e..481c421af4 100644 --- a/plugins/python-build/share/python-build/3.5.5 +++ b/plugins/python-build/share/python-build/3.5.5 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.5" "https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tar.xz#063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.5" "https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tar.xz#063d2c3b0402d6191b90731e0f735c64830e7522348aeb7ed382a83165d45009" standard verify_py35 copy_python_gdb ensurepip else - install_package "Python-3.5.5" "https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz#2f988db33913dcef17552fd1447b41afb89dbc26e3cdfc068ea6c62013a3a2a5" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.5" "https://www.python.org/ftp/python/3.5.5/Python-3.5.5.tgz#2f988db33913dcef17552fd1447b41afb89dbc26e3cdfc068ea6c62013a3a2a5" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.6 b/plugins/python-build/share/python-build/3.5.6 index 9c4cd3e9d6..0a9acaf5c5 100644 --- a/plugins/python-build/share/python-build/3.5.6 +++ b/plugins/python-build/share/python-build/3.5.6 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.6" "https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tar.xz#f55cde04f521f273c7cba08912921cc5642cfc15ca7b22d5829f0aff4371155f" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.6" "https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tar.xz#f55cde04f521f273c7cba08912921cc5642cfc15ca7b22d5829f0aff4371155f" standard verify_py35 copy_python_gdb ensurepip else - install_package "Python-3.5.6" "https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz#30d2ff093988e74283e1abfee823292c6b59590796b9827e95ba4940b27d26f8" ldflags_dirs standard verify_py35 copy_python_gdb ensurepip + install_package "Python-3.5.6" "https://www.python.org/ftp/python/3.5.6/Python-3.5.6.tgz#30d2ff093988e74283e1abfee823292c6b59590796b9827e95ba4940b27d26f8" standard verify_py35 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.7 b/plugins/python-build/share/python-build/3.5.7 index d8b9cb3ad3..9204cf7c32 100644 --- a/plugins/python-build/share/python-build/3.5.7 +++ b/plugins/python-build/share/python-build/3.5.7 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.7" "https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tar.xz#285892899bf4d5737fd08482aa6171c6b2564a45b9102dfacfb72826aebdc7dc" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.7" "https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tar.xz#285892899bf4d5737fd08482aa6171c6b2564a45b9102dfacfb72826aebdc7dc" standard verify_py35 ensurepip else - install_package "Python-3.5.7" "https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tgz#542d94920a2a06a471a73b51614805ad65366af98145b0369bc374cf248b521b" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.7" "https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tgz#542d94920a2a06a471a73b51614805ad65366af98145b0369bc374cf248b521b" standard verify_py35 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.8 b/plugins/python-build/share/python-build/3.5.8 index e763ebb0d2..c03879a680 100644 --- a/plugins/python-build/share/python-build/3.5.8 +++ b/plugins/python-build/share/python-build/3.5.8 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.8" "https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tar.xz#55a345c78ee3afbc2e60678442aad7bcc384ddea5bb95f8d66edc4868d4847d4" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.8" "https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tar.xz#55a345c78ee3afbc2e60678442aad7bcc384ddea5bb95f8d66edc4868d4847d4" standard verify_py35 ensurepip else - install_package "Python-3.5.8" "https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tgz#18c88dfd260147bc7247e6356010e5d4916dfbfc480f6434917f88e61228177a" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.8" "https://www.python.org/ftp/python/3.5.8/Python-3.5.8.tgz#18c88dfd260147bc7247e6356010e5d4916dfbfc480f6434917f88e61228177a" standard verify_py35 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.5.9 b/plugins/python-build/share/python-build/3.5.9 index a8af4be511..4edf7f4d35 100644 --- a/plugins/python-build/share/python-build/3.5.9 +++ b/plugins/python-build/share/python-build/3.5.9 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.5.9" "https://www.python.org/ftp/python/3.5.9/Python-3.5.9.tar.xz#c24a37c63a67f53bdd09c5f287b5cff8e8b98f857bf348c577d454d3f74db049" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.9" "https://www.python.org/ftp/python/3.5.9/Python-3.5.9.tar.xz#c24a37c63a67f53bdd09c5f287b5cff8e8b98f857bf348c577d454d3f74db049" standard verify_py35 ensurepip else - install_package "Python-3.5.9" "https://www.python.org/ftp/python/3.5.9/Python-3.5.9.tgz#67a1d4fc6e4540d6a092cadc488e533afa961b3c9becc74dc3d6b55cb56e0cc1" ldflags_dirs standard verify_py35 ensurepip + install_package "Python-3.5.9" "https://www.python.org/ftp/python/3.5.9/Python-3.5.9.tgz#67a1d4fc6e4540d6a092cadc488e533afa961b3c9becc74dc3d6b55cb56e0cc1" standard verify_py35 ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.0 b/plugins/python-build/share/python-build/3.6.0 index 1bb76ec4e2..560d277f85 100644 --- a/plugins/python-build/share/python-build/3.6.0 +++ b/plugins/python-build/share/python-build/3.6.0 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.0" "https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz#b0c5f904f685e32d9232f7bdcbece9819a892929063b6e385414ad2dd6a23622" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.0" "https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz#b0c5f904f685e32d9232f7bdcbece9819a892929063b6e385414ad2dd6a23622" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.0" "https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz#aa472515800d25a3739833f76ca3735d9f4b2fe77c3cb21f69275e0cce30cb2b" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.0" "https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz#aa472515800d25a3739833f76ca3735d9f4b2fe77c3cb21f69275e0cce30cb2b" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.1 b/plugins/python-build/share/python-build/3.6.1 index f7c62205ec..0ce3023858 100644 --- a/plugins/python-build/share/python-build/3.6.1 +++ b/plugins/python-build/share/python-build/3.6.1 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.1" "https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz#a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.1" "https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz#a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.1" "https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz#aa50b0143df7c89ce91be020fe41382613a817354b33acdc6641b44f8ced3828" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.1" "https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz#aa50b0143df7c89ce91be020fe41382613a817354b33acdc6641b44f8ced3828" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.10 b/plugins/python-build/share/python-build/3.6.10 index 24891d9edf..9292eded4d 100644 --- a/plugins/python-build/share/python-build/3.6.10 +++ b/plugins/python-build/share/python-build/3.6.10 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tar.xz#0a833c398ac8cd7c5538f7232d8531afef943c60495c504484f308dac3af40de" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tar.xz#0a833c398ac8cd7c5538f7232d8531afef943c60495c504484f308dac3af40de" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz#7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz#7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.11 b/plugins/python-build/share/python-build/3.6.11 index 27f1e0f009..4744e4579e 100644 --- a/plugins/python-build/share/python-build/3.6.11 +++ b/plugins/python-build/share/python-build/3.6.11 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tar.xz#741ebdcbc4e3937a5ff23517dd455ebf7d543ea9fef6f5cf6f46e575d6c4fda4" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tar.xz#741ebdcbc4e3937a5ff23517dd455ebf7d543ea9fef6f5cf6f46e575d6c4fda4" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tgz#96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tgz#96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.12 b/plugins/python-build/share/python-build/3.6.12 index 4ecea345b1..5cdea86bde 100644 --- a/plugins/python-build/share/python-build/3.6.12 +++ b/plugins/python-build/share/python-build/3.6.12 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz#70953a9b5d6891d92e65d184c3512126a15814bee15e1eff2ddcce04334e9a99" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz#70953a9b5d6891d92e65d184c3512126a15814bee15e1eff2ddcce04334e9a99" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tgz#12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tgz#12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.13 b/plugins/python-build/share/python-build/3.6.13 index 6da4952f0a..8e6b85cd4c 100644 --- a/plugins/python-build/share/python-build/3.6.13 +++ b/plugins/python-build/share/python-build/3.6.13 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tar.xz#a47a43a53abb42286a2c11965343ff56711b9e64e8d11bf2c6701a4fb8ce1a0f" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tar.xz#a47a43a53abb42286a2c11965343ff56711b9e64e8d11bf2c6701a4fb8ce1a0f" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tgz#614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tgz#614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.2 b/plugins/python-build/share/python-build/3.6.2 index 3767c68499..870d84656f 100644 --- a/plugins/python-build/share/python-build/3.6.2 +++ b/plugins/python-build/share/python-build/3.6.2 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.2" "https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz#9229773be41ed144370f47f0f626a1579931f5a390f1e8e3853174d52edd64a9" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.2" "https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tar.xz#9229773be41ed144370f47f0f626a1579931f5a390f1e8e3853174d52edd64a9" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.2" "https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz#7919489310a5f17f7acbab64d731e46dca0702874840dadce8bd4b2b3b8e7a82" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.2" "https://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz#7919489310a5f17f7acbab64d731e46dca0702874840dadce8bd4b2b3b8e7a82" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.3 b/plugins/python-build/share/python-build/3.6.3 index 242dd7c6a6..23b97ac533 100644 --- a/plugins/python-build/share/python-build/3.6.3 +++ b/plugins/python-build/share/python-build/3.6.3 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.3" "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz#cda7d967c9a4bfa52337cdf551bcc5cff026b6ac50a8834e568ce4a794ca81da" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.3" "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz#cda7d967c9a4bfa52337cdf551bcc5cff026b6ac50a8834e568ce4a794ca81da" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.3" "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz#ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.3" "https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz#ab6193af1921b30f587b302fe385268510e80187ca83ca82d2bfe7ab544c6f91" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.4 b/plugins/python-build/share/python-build/3.6.4 index 0370be8d99..2d7331e4b6 100644 --- a/plugins/python-build/share/python-build/3.6.4 +++ b/plugins/python-build/share/python-build/3.6.4 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.4" "https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz#159b932bf56aeaa76fd66e7420522d8c8853d486b8567c459b84fe2ed13bcaba" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.4" "https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tar.xz#159b932bf56aeaa76fd66e7420522d8c8853d486b8567c459b84fe2ed13bcaba" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.4" "https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz#7dc453e1a93c083388eb1a23a256862407f8234a96dc4fae0fc7682020227486" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.4" "https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz#7dc453e1a93c083388eb1a23a256862407f8234a96dc4fae0fc7682020227486" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.5 b/plugins/python-build/share/python-build/3.6.5 index 2f7d08b101..11be52dae6 100644 --- a/plugins/python-build/share/python-build/3.6.5 +++ b/plugins/python-build/share/python-build/3.6.5 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.5" "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz#f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.5" "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz#f434053ba1b5c8a5cc597e966ead3c5143012af827fd3f0697d21450bb8d87a6" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.5" "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz#53a3e17d77cd15c5230192b6a8c1e031c07cd9f34a2f089a731c6f6bd343d5c6" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.5" "https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz#53a3e17d77cd15c5230192b6a8c1e031c07cd9f34a2f089a731c6f6bd343d5c6" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.6 b/plugins/python-build/share/python-build/3.6.6 index 75204f964d..6e68fb163e 100644 --- a/plugins/python-build/share/python-build/3.6.6 +++ b/plugins/python-build/share/python-build/3.6.6 @@ -2,7 +2,7 @@ install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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-3.6.6" "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz#d79bc15d456e73a3173a2938f18a17e5149c850ebdedf84a78067f501ee6e16f" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.6" "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tar.xz#d79bc15d456e73a3173a2938f18a17e5149c850ebdedf84a78067f501ee6e16f" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.6" "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz#7d56dadf6c7d92a238702389e80cfe66fbfae73e584189ed6f89c75bbf3eda58" ldflags_dirs standard verify_py36 copy_python_gdb ensurepip + install_package "Python-3.6.6" "https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz#7d56dadf6c7d92a238702389e80cfe66fbfae73e584189ed6f89c75bbf3eda58" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.7 b/plugins/python-build/share/python-build/3.6.7 index 55e6c63956..82f173b509 100644 --- a/plugins/python-build/share/python-build/3.6.7 +++ b/plugins/python-build/share/python-build/3.6.7 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz#81fd1401a9d66533b0a3e9e3f4ea1c7c6702d57d5b90d659f971e6f1b745f77d" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz#81fd1401a9d66533b0a3e9e3f4ea1c7c6702d57d5b90d659f971e6f1b745f77d" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz#b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz#b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.8 b/plugins/python-build/share/python-build/3.6.8 index 3700a296a9..c838a75dad 100644 --- a/plugins/python-build/share/python-build/3.6.8 +++ b/plugins/python-build/share/python-build/3.6.8 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz#35446241e995773b1bed7d196f4b624dadcadc8429f26282e756b2fb8a351193" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz#35446241e995773b1bed7d196f4b624dadcadc8429f26282e756b2fb8a351193" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz#7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz#7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.9 b/plugins/python-build/share/python-build/3.6.9 index 1d07f4f772..4f3333fc60 100644 --- a/plugins/python-build/share/python-build/3.6.9 +++ b/plugins/python-build/share/python-build/3.6.9 @@ -3,7 +3,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz#5e2f5f554e3f8f7f0296f7e73d8600c4e9acbaee6b2555b83206edf5153870da" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz#5e2f5f554e3f8f7f0296f7e73d8600c4e9acbaee6b2555b83206edf5153870da" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz#47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz#47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.0 b/plugins/python-build/share/python-build/3.7.0 index 2fa05b8b6d..079960a413 100644 --- a/plugins/python-build/share/python-build/3.7.0 +++ b/plugins/python-build/share/python-build/3.7.0 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.0" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz#0382996d1ee6aafe59763426cf0139ffebe36984474d0ec4126dd1c40a8b3549" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.0" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz#0382996d1ee6aafe59763426cf0139ffebe36984474d0ec4126dd1c40a8b3549" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.0" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz#85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.0" "https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz#85bb9feb6863e04fb1700b018d9d42d1caac178559ffa453d7e6a436e259fd0d" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.1 b/plugins/python-build/share/python-build/3.7.1 index cc84139fdf..abfc4b38bb 100644 --- a/plugins/python-build/share/python-build/3.7.1 +++ b/plugins/python-build/share/python-build/3.7.1 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.1" "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz#fa7e2b8e8c9402f192ad56dc4f814089d1c4466c97d780f5e5acc02c04243d6d" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.1" "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz#fa7e2b8e8c9402f192ad56dc4f814089d1c4466c97d780f5e5acc02c04243d6d" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.1" "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz#36c1b81ac29d0f8341f727ef40864d99d8206897be96be73dc34d4739c9c9f06" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.1" "https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz#36c1b81ac29d0f8341f727ef40864d99d8206897be96be73dc34d4739c9c9f06" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.10 b/plugins/python-build/share/python-build/3.7.10 index 657b4d5d02..29408a40ab 100644 --- a/plugins/python-build/share/python-build/3.7.10 +++ b/plugins/python-build/share/python-build/3.7.10 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz#f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz#f8d82e7572c86ec9d55c8627aae5040124fd2203af400c383c821b980306ee6b" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tgz#c9649ad84dc3a434c8637df6963100b2e5608697f9ba56d82e3809e4148e0975" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.10" "https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tgz#c9649ad84dc3a434c8637df6963100b2e5608697f9ba56d82e3809e4148e0975" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.2 b/plugins/python-build/share/python-build/3.7.2 index f29599b0d6..7b18ceb354 100644 --- a/plugins/python-build/share/python-build/3.7.2 +++ b/plugins/python-build/share/python-build/3.7.2 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.2" "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz#d83fe8ce51b1bb48bbcf0550fd265b9a75cdfdfa93f916f9e700aef8444bf1bb" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.2" "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tar.xz#d83fe8ce51b1bb48bbcf0550fd265b9a75cdfdfa93f916f9e700aef8444bf1bb" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.2" "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz#f09d83c773b9cc72421abba2c317e4e6e05d919f9bcf34468e192b6a6c8e328d" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.2" "https://www.python.org/ftp/python/3.7.2/Python-3.7.2.tgz#f09d83c773b9cc72421abba2c317e4e6e05d919f9bcf34468e192b6a6c8e328d" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.3 b/plugins/python-build/share/python-build/3.7.3 index b8b0ee1205..926b137d82 100644 --- a/plugins/python-build/share/python-build/3.7.3 +++ b/plugins/python-build/share/python-build/3.7.3 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.3" "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz#da60b54064d4cfcd9c26576f6df2690e62085123826cff2e667e72a91952d318" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.3" "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tar.xz#da60b54064d4cfcd9c26576f6df2690e62085123826cff2e667e72a91952d318" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.3" "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz#d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.3" "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz#d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.4 b/plugins/python-build/share/python-build/3.7.4 index 3bde3c41b6..945db463fd 100644 --- a/plugins/python-build/share/python-build/3.7.4 +++ b/plugins/python-build/share/python-build/3.7.4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.4" "https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz#fb799134b868199930b75f26678f18932214042639cd52b16da7fd134cd9b13f" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.4" "https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz#fb799134b868199930b75f26678f18932214042639cd52b16da7fd134cd9b13f" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.4" "https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz#d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.4" "https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tgz#d63e63e14e6d29e17490abbe6f7d17afb3db182dbd801229f14e55f4157c4ba3" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.5 b/plugins/python-build/share/python-build/3.7.5 index 55e109b906..5578958f4e 100644 --- a/plugins/python-build/share/python-build/3.7.5 +++ b/plugins/python-build/share/python-build/3.7.5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.5" "https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz#e85a76ea9f3d6c485ec1780fca4e500725a4a7bbc63c78ebc44170de9b619d94" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.5" "https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tar.xz#e85a76ea9f3d6c485ec1780fca4e500725a4a7bbc63c78ebc44170de9b619d94" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.5" "https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz#8ecc681ea0600bbfb366f2b173f727b205bb825d93d2f0b286bc4e58d37693da" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.5" "https://www.python.org/ftp/python/3.7.5/Python-3.7.5.tgz#8ecc681ea0600bbfb366f2b173f727b205bb825d93d2f0b286bc4e58d37693da" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.6 b/plugins/python-build/share/python-build/3.7.6 index c61153864f..8547492014 100644 --- a/plugins/python-build/share/python-build/3.7.6 +++ b/plugins/python-build/share/python-build/3.7.6 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.6" "https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz#55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.6" "https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz#55a2cce72049f0794e9a11a84862e9039af9183603b78bc60d89539f82cf533f" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.6" "https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz#aeee681c235ad336af116f08ab6563361a0c81c537072c1b309d6e4050aa2114" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.6" "https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tgz#aeee681c235ad336af116f08ab6563361a0c81c537072c1b309d6e4050aa2114" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.7 b/plugins/python-build/share/python-build/3.7.7 index 111358f0fc..d7b45c3449 100644 --- a/plugins/python-build/share/python-build/3.7.7 +++ b/plugins/python-build/share/python-build/3.7.7 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.7.7" "https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz#06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.7" "https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tar.xz#06a0a9f1bf0d8cd1e4121194d666c4e28ddae4dd54346de6c343206599f02136" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.7" "https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz#8c8be91cd2648a1a0c251f04ea0bb4c2a5570feb9c45eaaa2241c785585b475a" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.7" "https://www.python.org/ftp/python/3.7.7/Python-3.7.7.tgz#8c8be91cd2648a1a0c251f04ea0bb4c2a5570feb9c45eaaa2241c785585b475a" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.8 b/plugins/python-build/share/python-build/3.7.8 index 0e98508a6e..ee7c23371e 100644 --- a/plugins/python-build/share/python-build/3.7.8 +++ b/plugins/python-build/share/python-build/3.7.8 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" 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-3.7.8" "https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tar.xz#43a543404b363f0037f89df8478f19db2dbc0d6f3ffee310bc2997fa71854a63" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.8" "https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tar.xz#43a543404b363f0037f89df8478f19db2dbc0d6f3ffee310bc2997fa71854a63" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.8" "https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz#0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.8" "https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tgz#0e25835614dc221e3ecea5831b38fa90788b5389b99b675a751414c858789ab0" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.7.9 b/plugins/python-build/share/python-build/3.7.9 index 91cfa35d1c..69b209e589 100644 --- a/plugins/python-build/share/python-build/3.7.9 +++ b/plugins/python-build/share/python-build/3.7.9 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz#91923007b05005b5f9bd46f3b9172248aea5abc1543e8a636d59e629c3331b01" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz#91923007b05005b5f9bd46f3b9172248aea5abc1543e8a636d59e629c3331b01" standard verify_py37 copy_python_gdb ensurepip else - install_package "Python-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz#39b018bc7d8a165e59aa827d9ae45c45901739b0bbb13721e4f973f3521c166a" ldflags_dirs standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.7.9" "https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tgz#39b018bc7d8a165e59aa827d9ae45c45901739b0bbb13721e4f973f3521c166a" standard verify_py37 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.0 b/plugins/python-build/share/python-build/3.8.0 index 6a2a4c3d52..de89be5a41 100644 --- a/plugins/python-build/share/python-build/3.8.0 +++ b/plugins/python-build/share/python-build/3.8.0 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.0" "https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz#b356244e13fb5491da890b35b13b2118c3122977c2cd825e3eb6e7d462030d84" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.0" "https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tar.xz#b356244e13fb5491da890b35b13b2118c3122977c2cd825e3eb6e7d462030d84" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.0" "https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz#f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.0" "https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz#f1069ad3cae8e7ec467aa98a6565a62a48ef196cb8f1455a245a08db5e1792df" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.1 b/plugins/python-build/share/python-build/3.8.1 index f1ab9c6982..b5b43ab33d 100644 --- a/plugins/python-build/share/python-build/3.8.1 +++ b/plugins/python-build/share/python-build/3.8.1 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.1" "https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz#75894117f6db7051c1b34f37410168844bbb357c139a8a10a352e9bf8be594e8" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.1" "https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz#75894117f6db7051c1b34f37410168844bbb357c139a8a10a352e9bf8be594e8" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.1" "https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz#c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.1" "https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tgz#c7cfa39a43b994621b245e029769e9126caa2a93571cee2e743b213cceac35fb" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.10 b/plugins/python-build/share/python-build/3.8.10 index c2d6f94266..c2d72b9d88 100644 --- a/plugins/python-build/share/python-build/3.8.10 +++ b/plugins/python-build/share/python-build/3.8.10 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.2 b/plugins/python-build/share/python-build/3.8.2 index 27178b6509..ee597b43d7 100644 --- a/plugins/python-build/share/python-build/3.8.2 +++ b/plugins/python-build/share/python-build/3.8.2 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.2" "https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz#2646e7dc233362f59714c6193017bb2d6f7b38d6ab4a0cb5fbac5c36c4d845df" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.2" "https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz#2646e7dc233362f59714c6193017bb2d6f7b38d6ab4a0cb5fbac5c36c4d845df" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.2" "https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz#e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.2" "https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz#e634a7a74776c2b89516b2e013dda1728c89c8149b9863b8cea21946daf9d561" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.3 b/plugins/python-build/share/python-build/3.8.3 index daa01adfae..97048e456c 100644 --- a/plugins/python-build/share/python-build/3.8.3 +++ b/plugins/python-build/share/python-build/3.8.3 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.8.3" "https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tar.xz#dfab5ec723c218082fe3d5d7ae17ecbdebffa9a1aea4d64aa3a2ecdd2e795864" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.3" "https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tar.xz#dfab5ec723c218082fe3d5d7ae17ecbdebffa9a1aea4d64aa3a2ecdd2e795864" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.3" "https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz#6af6d4d2e010f9655518d0fc6738c7ff7069f10a4d2fbd55509e467f092a8b90" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.3" "https://www.python.org/ftp/python/3.8.3/Python-3.8.3.tgz#6af6d4d2e010f9655518d0fc6738c7ff7069f10a4d2fbd55509e467f092a8b90" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.4 b/plugins/python-build/share/python-build/3.8.4 index fa49dd7639..3e91b60230 100644 --- a/plugins/python-build/share/python-build/3.8.4 +++ b/plugins/python-build/share/python-build/3.8.4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.4" "https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tar.xz#5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.4" "https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tar.xz#5f41968a95afe9bc12192d7e6861aab31e80a46c46fa59d3d837def6a4cd4d37" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.4" "https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tgz#32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.4" "https://www.python.org/ftp/python/3.8.4/Python-3.8.4.tgz#32c4d9817ef11793da4d0d95b3191c4db81d2e45544614e8449255ca9ae3cc18" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.5 b/plugins/python-build/share/python-build/3.8.5 index 9d2c6009c6..a435766fe1 100644 --- a/plugins/python-build/share/python-build/3.8.5 +++ b/plugins/python-build/share/python-build/3.8.5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.5" "https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz#e3003ed57db17e617acb382b0cade29a248c6026b1bd8aad1f976e9af66a83b0" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.5" "https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tar.xz#e3003ed57db17e617acb382b0cade29a248c6026b1bd8aad1f976e9af66a83b0" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.5" "https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz#015115023c382eb6ab83d512762fe3c5502fa0c6c52ffebc4831c4e1a06ffc49" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.5" "https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz#015115023c382eb6ab83d512762fe3c5502fa0c6c52ffebc4831c4e1a06ffc49" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.6 b/plugins/python-build/share/python-build/3.8.6 index ee9d9d1c8e..3940df23c5 100644 --- a/plugins/python-build/share/python-build/3.8.6 +++ b/plugins/python-build/share/python-build/3.8.6 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz#a9e0b79d27aa056eb9cce8d63a427b5f9bab1465dee3f942dcfdb25a82f4ab8a" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tar.xz#a9e0b79d27aa056eb9cce8d63a427b5f9bab1465dee3f942dcfdb25a82f4ab8a" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz#313562ee9986dc369cd678011bdfd9800ef62fbf7b1496228a18f86b36428c21" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.6" "https://www.python.org/ftp/python/3.8.6/Python-3.8.6.tgz#313562ee9986dc369cd678011bdfd9800ef62fbf7b1496228a18f86b36428c21" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.7 b/plugins/python-build/share/python-build/3.8.7 index 9225a961ea..a4449717a8 100644 --- a/plugins/python-build/share/python-build/3.8.7 +++ b/plugins/python-build/share/python-build/3.8.7 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tar.xz#ddcc1df16bb5b87aa42ec5d20a5b902f2d088caa269b28e01590f97a798ec50a" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tar.xz#ddcc1df16bb5b87aa42ec5d20a5b902f2d088caa269b28e01590f97a798ec50a" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz#20e5a04262f0af2eb9c19240d7ec368f385788bba2d8dfba7e74b20bab4d2bac" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.7" "https://www.python.org/ftp/python/3.8.7/Python-3.8.7.tgz#20e5a04262f0af2eb9c19240d7ec368f385788bba2d8dfba7e74b20bab4d2bac" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.8 b/plugins/python-build/share/python-build/3.8.8 index 1bcca49d32..48cbe2cf0d 100644 --- a/plugins/python-build/share/python-build/3.8.8 +++ b/plugins/python-build/share/python-build/3.8.8 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tar.xz#7c664249ff77e443d6ea0e4cf0e587eae918ca3c48d081d1915fe2a1f1bcc5cc" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tar.xz#7c664249ff77e443d6ea0e4cf0e587eae918ca3c48d081d1915fe2a1f1bcc5cc" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz#76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.8" "https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz#76c0763f048e4f9b861d24da76b7dd5c7a3ba7ec086f40caedeea359263276f7" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.9 b/plugins/python-build/share/python-build/3.8.9 index 2ae9beec3b..7dd6eb4429 100644 --- a/plugins/python-build/share/python-build/3.8.9 +++ b/plugins/python-build/share/python-build/3.8.9 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tar.xz#5e391f3ec45da2954419cab0beaefd8be38895ea5ce33577c3ec14940c4b9572" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tar.xz#5e391f3ec45da2954419cab0beaefd8be38895ea5ce33577c3ec14940c4b9572" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz#9779ec1df000bf86914cdd40860b88da56c1e61db59d37784beca14a259ac9e9" ldflags_dirs standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.9" "https://www.python.org/ftp/python/3.8.9/Python-3.8.9.tgz#9779ec1df000bf86914cdd40860b88da56c1e61db59d37784beca14a259ac9e9" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.0 b/plugins/python-build/share/python-build/3.9.0 index b928e7b935..a76b1c8c4d 100644 --- a/plugins/python-build/share/python-build/3.9.0 +++ b/plugins/python-build/share/python-build/3.9.0 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz#9c73e63c99855709b9be0b3cc9e5b072cb60f37311e8c4e50f15576a0bf82854" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tar.xz#9c73e63c99855709b9be0b3cc9e5b072cb60f37311e8c4e50f15576a0bf82854" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz#df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.0" "https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz#df796b2dc8ef085edae2597a41c1c0a63625ebd92487adaef2fed22b567873e8" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 index d2a1161677..ba0a7989e6 100644 --- a/plugins/python-build/share/python-build/3.9.1 +++ b/plugins/python-build/share/python-build/3.9.1 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 index 2c4484092b..3d741d2fa6 100644 --- a/plugins/python-build/share/python-build/3.9.2 +++ b/plugins/python-build/share/python-build/3.9.2 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.3 b/plugins/python-build/share/python-build/3.9.3 index 87e48760f5..f23d77bba1 100644 --- a/plugins/python-build/share/python-build/3.9.3 +++ b/plugins/python-build/share/python-build/3.9.3 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tar.xz#30811039c65e04c14fc698e423947e464f9316e69fb44610bd38446046bb82b5" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tar.xz#30811039c65e04c14fc698e423947e464f9316e69fb44610bd38446046bb82b5" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tgz#3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tgz#3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.4 b/plugins/python-build/share/python-build/3.9.4 index 6cbc6cb0a5..9f164b30be 100644 --- a/plugins/python-build/share/python-build/3.9.4 +++ b/plugins/python-build/share/python-build/3.9.4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 index 9502865ebc..f6390889e1 100644 --- a/plugins/python-build/share/python-build/3.9.5 +++ b/plugins/python-build/share/python-build/3.9.5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" ldflags_dirs standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/stackless-2.7.10 b/plugins/python-build/share/python-build/stackless-2.7.10 index b142c37a4d..80bcc42f0e 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.10 +++ b/plugins/python-build/share/python-build/stackless-2.7.10 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-b6b4c928e880" "http://www.stackless.com/binaries/stackless-2710-export.tar.xz#8af1318f95965138de51e290a509dc3d" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-b6b4c928e880" "http://www.stackless.com/binaries/stackless-2710-export.tar.xz#8af1318f95965138de51e290a509dc3d" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.11 b/plugins/python-build/share/python-build/stackless-2.7.11 index 854ce950ee..20fe0b6fab 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.11 +++ b/plugins/python-build/share/python-build/stackless-2.7.11 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-456e93659e69" "http://www.stackless.com/binaries/stackless-2711-export.tar.xz#d5229693498a4ccc0b3245f7bf8e2b09" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-456e93659e69" "http://www.stackless.com/binaries/stackless-2711-export.tar.xz#d5229693498a4ccc0b3245f7bf8e2b09" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.12 b/plugins/python-build/share/python-build/stackless-2.7.12 index 1160918a4e..0571900899 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.12 +++ b/plugins/python-build/share/python-build/stackless-2.7.12 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-82aaa252fbdc" "http://www.stackless.com/binaries/stackless-2712-export.tar.xz#c610611b39ee374ae36e891c5c739f39" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-82aaa252fbdc" "http://www.stackless.com/binaries/stackless-2712-export.tar.xz#c610611b39ee374ae36e891c5c739f39" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.14 b/plugins/python-build/share/python-build/stackless-2.7.14 index 8fd34c4fd0..09d6a0fc7a 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.14 +++ b/plugins/python-build/share/python-build/stackless-2.7.14 @@ -2,4 +2,4 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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_package "stackless-2.7.14-slp" "https://github.com/stackless-dev/stackless/archive/v2.7.14-slp.tar.gz#e67f60984d034bfd80fef58d26df9d5a1cdecb429c55ac7bc8d932cff6f88ab8" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-2.7.14-slp" "https://github.com/stackless-dev/stackless/archive/v2.7.14-slp.tar.gz#e67f60984d034bfd80fef58d26df9d5a1cdecb429c55ac7bc8d932cff6f88ab8" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.2 b/plugins/python-build/share/python-build/stackless-2.7.2 index 6a8074729e..5f5e4b9397 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.2 +++ b/plugins/python-build/share/python-build/stackless-2.7.2 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-272-export" "http://www.stackless.com/binaries/stackless-272-export.tar.bz2#e2e2706b22839e3e3f45085d0ec8030dd7374d8a65d3297981b7189a7c613197" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-272-export" "http://www.stackless.com/binaries/stackless-272-export.tar.bz2#e2e2706b22839e3e3f45085d0ec8030dd7374d8a65d3297981b7189a7c613197" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.3 b/plugins/python-build/share/python-build/stackless-2.7.3 index 75570e934e..3aefbaa2b7 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.3 +++ b/plugins/python-build/share/python-build/stackless-2.7.3 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-273-export" "http://www.stackless.com/binaries/stackless-273-export.tar.bz2#77bee863bfd16dc4eca7fc078b12db608db7dd6e2481981bb68250118e001dfc" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-273-export" "http://www.stackless.com/binaries/stackless-273-export.tar.bz2#77bee863bfd16dc4eca7fc078b12db608db7dd6e2481981bb68250118e001dfc" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.4 b/plugins/python-build/share/python-build/stackless-2.7.4 index 21f37838db..40e4dae367 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.4 +++ b/plugins/python-build/share/python-build/stackless-2.7.4 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-274-export" "http://www.stackless.com/binaries/stackless-274-export.tar.bz2#ba566b18c66b095b65addbcfc4d814fc84f163c9fcffa1d0678755c581e64f45" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-274-export" "http://www.stackless.com/binaries/stackless-274-export.tar.bz2#ba566b18c66b095b65addbcfc4d814fc84f163c9fcffa1d0678755c581e64f45" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.5 b/plugins/python-build/share/python-build/stackless-2.7.5 index 011caa1a20..c0545e8374 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.5 +++ b/plugins/python-build/share/python-build/stackless-2.7.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-275-export" "http://www.stackless.com/binaries/stackless-275-export.tar.bz2#5a389357762b32c590e1154a86b098cc379c71d10238b458a3e9b4fa4aac60d4" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-275-export" "http://www.stackless.com/binaries/stackless-275-export.tar.bz2#5a389357762b32c590e1154a86b098cc379c71d10238b458a3e9b4fa4aac60d4" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.6 b/plugins/python-build/share/python-build/stackless-2.7.6 index 340354e8e1..25fe114325 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.6 +++ b/plugins/python-build/share/python-build/stackless-2.7.6 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-276-export" "http://www.stackless.com/binaries/stackless-276-export.tar.bz2#1e905deaf74e8922f49b99139aa48e6670e9456c55fec8e60c47501f78c38ff5" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-276-export" "http://www.stackless.com/binaries/stackless-276-export.tar.bz2#1e905deaf74e8922f49b99139aa48e6670e9456c55fec8e60c47501f78c38ff5" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.7 b/plugins/python-build/share/python-build/stackless-2.7.7 index 286b353d0a..60591691c5 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.7 +++ b/plugins/python-build/share/python-build/stackless-2.7.7 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-a182f63395c3" "http://www.stackless.com/binaries/stackless-277-export.tar.bz2#4ac0a1e95bc12d6733d9e7f3c221ec4a" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-a182f63395c3" "http://www.stackless.com/binaries/stackless-277-export.tar.bz2#4ac0a1e95bc12d6733d9e7f3c221ec4a" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.8 b/plugins/python-build/share/python-build/stackless-2.7.8 index 333e02c557..ccf263f6e1 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.8 +++ b/plugins/python-build/share/python-build/stackless-2.7.8 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-ff29dd4f67de" "http://www.stackless.com/binaries/stackless-278-export.tar.bz2#2880f05e599020eb8f2624ce3796592b" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-ff29dd4f67de" "http://www.stackless.com/binaries/stackless-278-export.tar.bz2#2880f05e599020eb8f2624ce3796592b" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.9 b/plugins/python-build/share/python-build/stackless-2.7.9 index 37b329f5c2..4fef85da5d 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.9 +++ b/plugins/python-build/share/python-build/stackless-2.7.9 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-43302de87df4" "http://www.stackless.com/binaries/stackless-279-export.tar.xz#35307558796389aa51d96b0bc83f6f6f" ldflags_dirs standard verify_py27 ensurepip +install_package "stackless-dev-stackless-43302de87df4" "http://www.stackless.com/binaries/stackless-279-export.tar.xz#35307558796389aa51d96b0bc83f6f6f" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.2.2 b/plugins/python-build/share/python-build/stackless-3.2.2 index 6430aca92e..9efa32ffd2 100644 --- a/plugins/python-build/share/python-build/stackless-3.2.2 +++ b/plugins/python-build/share/python-build/stackless-3.2.2 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-322-export" "http://www.stackless.com/binaries/stackless-322-export.tar.bz2#779700f12b451a350fe7af4cd2849842adc7006dc83fe14712dd1a0999277b07" ldflags_dirs standard verify_py32 +install_package "stackless-322-export" "http://www.stackless.com/binaries/stackless-322-export.tar.bz2#779700f12b451a350fe7af4cd2849842adc7006dc83fe14712dd1a0999277b07" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/stackless-3.2.5 b/plugins/python-build/share/python-build/stackless-3.2.5 index 7cb0165474..8077bb1a5f 100644 --- a/plugins/python-build/share/python-build/stackless-3.2.5 +++ b/plugins/python-build/share/python-build/stackless-3.2.5 @@ -1,6 +1,6 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-325-export" "http://www.stackless.com/binaries/stackless-325-export.tar.bz2#b021125e578ddd267d38feee9e1cbdb675f6aab247a2b88f4494abcf23babb05" ldflags_dirs standard verify_py32 +install_package "stackless-325-export" "http://www.stackless.com/binaries/stackless-325-export.tar.bz2#b021125e578ddd267d38feee9e1cbdb675f6aab247a2b88f4494abcf23babb05" standard verify_py32 install_package "setuptools-17.1.1" "https://pypi.python.org/packages/source/s/setuptools/setuptools-17.1.1.tar.gz#5bf42dbf406fd58a41029f53cffff1c90db5de1c5e0e560b5545cf2ec949c431" python install_package "pip-7.1.2" "https://pypi.python.org/packages/source/p/pip/pip-7.1.2.tar.gz#ca047986f0528cfa975a14fb9f7f106271d4e0c3fe1ddced6c1db2e7ae57a477" python diff --git a/plugins/python-build/share/python-build/stackless-3.3.5 b/plugins/python-build/share/python-build/stackless-3.3.5 index 37e90aea86..fe0152d933 100644 --- a/plugins/python-build/share/python-build/stackless-3.3.5 +++ b/plugins/python-build/share/python-build/stackless-3.3.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-c856cc204b1c" "http://www.stackless.com/binaries/stackless-335-export.tar.xz#d839295b932eb10443f2ddfecf2c25e9" ldflags_dirs standard verify_py33 ensurepip +install_package "stackless-dev-stackless-c856cc204b1c" "http://www.stackless.com/binaries/stackless-335-export.tar.xz#d839295b932eb10443f2ddfecf2c25e9" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.3.7 b/plugins/python-build/share/python-build/stackless-3.3.7 index 6cb3d85b98..725bf001d3 100644 --- a/plugins/python-build/share/python-build/stackless-3.3.7 +++ b/plugins/python-build/share/python-build/stackless-3.3.7 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.3.7-slp" "https://github.com/stackless-dev/stackless/archive/v3.3.7-slp.tar.gz#f05b8ff8a0e318aa5880dc995518ab4453894d068a26a171b89e21b98da5a5c1" ldflags_dirs standard verify_py33 ensurepip +install_package "stackless-3.3.7-slp" "https://github.com/stackless-dev/stackless/archive/v3.3.7-slp.tar.gz#f05b8ff8a0e318aa5880dc995518ab4453894d068a26a171b89e21b98da5a5c1" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.4.2 b/plugins/python-build/share/python-build/stackless-3.4.2 index 62de339b11..7f58d95a5d 100644 --- a/plugins/python-build/share/python-build/stackless-3.4.2 +++ b/plugins/python-build/share/python-build/stackless-3.4.2 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-587417070fe4" "http://www.stackless.com/binaries/stackless-342-export.tar.xz#dd6ae57cc8a162690a24f21ce1f0c4d96e096c24e17137783bacc9182b96b6dc" ldflags_dirs standard verify_py34 ensurepip +install_package "stackless-dev-stackless-587417070fe4" "http://www.stackless.com/binaries/stackless-342-export.tar.xz#dd6ae57cc8a162690a24f21ce1f0c4d96e096c24e17137783bacc9182b96b6dc" standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.4.7 b/plugins/python-build/share/python-build/stackless-3.4.7 index f4aedb956b..0cecb2809d 100644 --- a/plugins/python-build/share/python-build/stackless-3.4.7 +++ b/plugins/python-build/share/python-build/stackless-3.4.7 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.4.7-slp" "https://github.com/stackless-dev/stackless/archive/v3.4.7-slp.tar.gz#e41959afcfc9381cbc9ac14c12110e3e748e65ceeec4fe61fb1c34cabcb9e6bf" ldflags_dirs standard verify_py34 ensurepip +install_package "stackless-3.4.7-slp" "https://github.com/stackless-dev/stackless/archive/v3.4.7-slp.tar.gz#e41959afcfc9381cbc9ac14c12110e3e748e65ceeec4fe61fb1c34cabcb9e6bf" standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.5.4 b/plugins/python-build/share/python-build/stackless-3.5.4 index cf7231d8f9..b2106fbf64 100644 --- a/plugins/python-build/share/python-build/stackless-3.5.4 +++ b/plugins/python-build/share/python-build/stackless-3.5.4 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.5.4-slp" "https://github.com/stackless-dev/stackless/archive/v3.5.4-slp.tar.gz#ddb65a8118c754f66875f65c4d5d2a4937d67858ec8c361a6c5b386f5e4d9fce" ldflags_dirs standard verify_py35 ensurepip +install_package "stackless-3.5.4-slp" "https://github.com/stackless-dev/stackless/archive/v3.5.4-slp.tar.gz#ddb65a8118c754f66875f65c4d5d2a4937d67858ec8c361a6c5b386f5e4d9fce" standard verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.7.5 b/plugins/python-build/share/python-build/stackless-3.7.5 index a818698bcd..6a7799e34b 100644 --- a/plugins/python-build/share/python-build/stackless-3.7.5 +++ b/plugins/python-build/share/python-build/stackless-3.7.5 @@ -1,4 +1,4 @@ #require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.7.5-slp" "https://github.com/stackless-dev/stackless/archive/v3.7.5-slp.tar.gz#e2562a8d235adc19be5451c170837f53ef916aec4cd5cd17d9e0ab1f1b875d3f" ldflags_dirs standard verify_py37 ensurepip +install_package "stackless-3.7.5-slp" "https://github.com/stackless-dev/stackless/archive/v3.7.5-slp.tar.gz#e2562a8d235adc19be5451c170837f53ef916aec4cd5cd17d9e0ab1f1b875d3f" standard verify_py37 ensurepip From d010b4110a143883d1502b6649701c97759d7fd4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 19 May 2021 05:47:48 +0300 Subject: [PATCH 0198/1324] adjust tests --- plugins/python-build/test/build.bats | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index ec80968491..b4afbdb7d6 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -561,16 +561,3 @@ OUT run python-build "${TMP}/build-definition" "$INSTALL_ROOT" assert_failure "python-build: TMPDIR=$TMPDIR is set to a non-accessible location" } - -@test "initializes LDFLAGS directories" { - cached_tarball "Python-3.6.2" - - export LDFLAGS="-L ${BATS_TEST_DIRNAME}/what/evs" - run_inline_definition < Date: Wed, 19 May 2021 06:18:45 +0300 Subject: [PATCH 0199/1324] Prevent build from installing MacOS apps globally --- plugins/python-build/bin/python-build | 13 +++++++------ plugins/python-build/test/pyenv_ext.bats | 2 +- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f1ae369b41..b3a861031d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1569,7 +1569,7 @@ build_package_symlink_version_suffix() { mv -f "${PREFIX_PATH}/bin" "${PREFIX_PATH}/bin.orig" fi # Only symlinks are installed in ${PREFIX_PATH}/bin - ln -fs "${PREFIX_PATH}/Python.framework/Versions/Current/bin" "${PREFIX_PATH}/bin" + ln -fs "${PREFIX_PATH}/Library/Frameworks/Python.framework/Versions/Current/bin" "${PREFIX_PATH}/bin" fi # Not create symlinks on `altinstall` (#255) @@ -2031,16 +2031,17 @@ if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then fi create_framework_dirs() { local version="$(echo "$1" | sed -E 's/^[^0-9]*([0-9]+\.[0-9]+).*$/\1/')" - mkdir -p "${PREFIX_PATH}/Python.framework/Versions/${version}" - ( cd "${PREFIX_PATH}/Python.framework/Versions" && ln -fs "${version}" "Current") + mkdir -p "${PREFIX_PATH}/Library/Frameworks/Python.framework/Versions/${version}" + ( cd "${PREFIX_PATH}/Library/Frameworks/Python.framework/Versions" && ln -fs "${version}" "Current") local path for path in include lib share; do - mkdir -p "${PREFIX_PATH}/Python.framework/Versions/Current/${path}" - ln -fs "${PREFIX_PATH}/Python.framework/Versions/Current/${path}" "${PREFIX_PATH}/${path}" + mkdir -p "${PREFIX_PATH}/Library/Frameworks/Python.framework/Versions/Current/${path}" + ln -fs "${PREFIX_PATH}/Library/Frameworks/Python.framework/Versions/Current/${path}" "${PREFIX_PATH}/${path}" done } create_framework_dirs "${DEFINITION_PATH##*/}" - package_option python configure --enable-framework="${PREFIX_PATH}" + # the `/Library/Frameworks` suffix makes CPython build install apps under prefix rather than into /Applications (#1003) + package_option python configure --enable-framework="${PREFIX_PATH}/Library/Frameworks" fi # Build against universal SDK (#219, #220) diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 55c44bc8da..a30e1bb379 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -270,7 +270,7 @@ verify_python python3.4 OUT assert_success assert_output < Date: Wed, 19 May 2021 17:02:03 +0300 Subject: [PATCH 0200/1324] fix test --- plugins/python-build/test/pyenv_ext.bats | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index a30e1bb379..e4453113b8 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -249,15 +249,15 @@ OUT } @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" + mkdir -p "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin" + touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3" + chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3" + touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4" + chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4" + touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3-config" + chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3-config" + touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config" + chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config" # yyuu/pyenv#257 stub uname '-s : echo Darwin' @@ -273,8 +273,8 @@ OUT PYTHON_CONFIGURE_OPTS_ARRAY=(--libdir=${TMP}/install/lib --enable-framework=${TMP}/install/Library/Frameworks) EOS - [ -L "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python" ] - [ -L "${INSTALL_ROOT}/Python.framework/Versions/Current/bin/python-config" ] + [ -L "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python" ] + [ -L "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python-config" ] } @test "enable universalsdk" { From 5cf4eeb5cb7783056f68346c0b94c0e9fa2f9a77 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 20 May 2021 09:44:36 +0300 Subject: [PATCH 0201/1324] Update anaconda3-2021.05 Fixed checksum for macos package --- plugins/python-build/share/python-build/anaconda3-2021.05 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/anaconda3-2021.05 b/plugins/python-build/share/python-build/anaconda3-2021.05 index c2b65a0244..6387d1536f 100644 --- a/plugins/python-build/share/python-build/anaconda3-2021.05 +++ b/plugins/python-build/share/python-build/anaconda3-2021.05 @@ -6,7 +6,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Anaconda3-2021.05-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.05-Linux-x86_64.sh#2751ab3d678ff0277ae80f9e8a74f218cfc70fe9a9cdc7bb1c137d7e47e33d53" "anaconda" verify_py38 ;; "MacOSX-x86_64" ) - install_script "Anaconda3-2021.05-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.05-MacOSX-x86_64.sh#ec11e325c792a6f49dbdbe5e641991d0a29788689176d7e54da97def9532c762" "anaconda" verify_py38 + install_script "Anaconda3-2021.05-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.05-MacOSX-x86_64.sh#0407bee87eeecad521f1e38eb607b0a85babef4c1b47516dc5c090e152eba5d5" "anaconda" verify_py38 ;; * ) { echo From d576ac4c8cb1e952eff6fd272a5a2eea9ad49b75 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 20 May 2021 23:19:25 +0300 Subject: [PATCH 0202/1324] 2.0.0 --- CHANGELOG.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 02606f1247..8fa3054e70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,24 @@ ## Version History +## Release 2.0.0 + +* Support for CPython 3.9.5 has been added. +* Support for CPython 3.8.10 has been added. +* Support for CPython 3.10.0b1 has been added. +* Support for GraalPython 21.1.0 has been added. +* Support for Anaconda 2021.05 has been added. +* Support for Miniforge3 4.10.1-1 has been added. +* CPython 3.10-dev target branch renamed. +* CPython 3.10-dev and 3.11-dev updated. +* Bump OpenSSL to 1.1.1x for all Pythons that support MacOS 11 +* Update generated configuration files before run ./configure +* Full shell configuration instructions placed into `pyenv init` +* Prevent build from installing MacOS apps globally +* ldflags_dirs is not needed for Python and causes failures + +## Breaking changes +* Split startup logic into PATH and everything else (https://github.com/pyenv/pyenv/issues/1649#issuecomment-694388530) + ## 1.2.27 * Add GraalPython 21.1.0 (#1882) From 4ce52bd333cd56be185c73ffdc5c094f343640c5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 20 May 2021 23:20:22 +0300 Subject: [PATCH 0203/1324] 2.0.0-rc1 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 8fb706dcf7..5794ae3c20 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="1.2.27" +version="2.0.0-rc1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d02b929d07182578bc16eb256b6b9a5e4c7a2db8 Mon Sep 17 00:00:00 2001 From: Nathan V <928956+nathan-v@users.noreply.github.com> Date: Fri, 21 May 2021 05:09:05 -0700 Subject: [PATCH 0204/1324] Add Stackless 2.7.16 (#1450) * Added Stackless 2.7.16 Co-authored-by: Nathan Co-authored-by: Ivan Pozdeev --- plugins/python-build/share/python-build/stackless-2.7.16 | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/stackless-2.7.16 diff --git a/plugins/python-build/share/python-build/stackless-2.7.16 b/plugins/python-build/share/python-build/stackless-2.7.16 new file mode 100644 index 0000000000..fd83f93d9e --- /dev/null +++ b/plugins/python-build/share/python-build/stackless-2.7.16 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-43302de87df4" "http://www.stackless.com/binaries/stackless-2716-export.tar.xz#2db64fbd47567a1c0683fba7a54387892d2299915f9848b54c450b5eb95358dc" standard verify_py27 ensurepip From ac4de22265f5948eae8bc0d145ac11c87c65744f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 21 May 2021 19:01:02 +0300 Subject: [PATCH 0205/1324] Add micropython 1.15 (#1939) --- plugins/python-build/share/python-build/micropython-1.15 | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/micropython-1.15 diff --git a/plugins/python-build/share/python-build/micropython-1.15 b/plugins/python-build/share/python-build/micropython-1.15 new file mode 100644 index 0000000000..d17f069afc --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.15 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.15.tar.xz#52d020b3adef6c2bd2b6c8aba672f381c3c99d2b90130ac8d0d7414999cb4e13"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.15.zip#8a0c6b5914a1d1eaf63f4b3c226db5049107f1bc1c6046e4dda8d4c5c4657e97"; } +$install micropython-1.15 "$src" micropython From 20a146ed6ed0b2ba80a6380b651b73ed49ce2b2d Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 23 May 2021 19:45:53 +0300 Subject: [PATCH 0206/1324] Create miniforge3-4.10.1-3 --- .../share/python-build/miniforge3-4.10.1-3 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.1-3 diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.1-3 b/plugins/python-build/share/python-build/miniforge3-4.10.1-3 new file mode 100644 index 0000000000..b4053a4f3e --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.1-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.1-3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-3/Miniforge3-4.10.1-3-Linux-ppc64le.sh#650083e39c5b3910600debfce07a3644b5906621be72d16847d1ca05f4f5b4f8" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.1-3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-3/Miniforge3-4.10.1-3-Linux-x86_64.sh#0ab2d494557ce8dfb4344bd960eb98c92d02f25d174c77029a459b20884e0e26" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Miniforge3-4.10.1-3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-3/Miniforge3-4.10.1-3-Linux-aarch64.sh#8bb5e5885c4b4e9bed0621740a40ceb428c4894b339050227b25690181da2794" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.1-3-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-3/Miniforge3-4.10.1-3-MacOSX-arm64.sh#ea7fd5565debe13f484f15236651da88f0137e99b27c36d9001373f13621e393" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.1-3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-3/Miniforge3-4.10.1-3-MacOSX-x86_64.sh#1b85ece22e2d35565db90dfc9121e15fcd4eb179e948983662157e7a9fad2201" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From c8abcd23f07a41a544b3b7250558123a43ae749a Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 23 May 2021 20:01:19 +0300 Subject: [PATCH 0207/1324] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8fa3054e70..b390826abe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ * Full shell configuration instructions placed into `pyenv init` * Prevent build from installing MacOS apps globally * ldflags_dirs is not needed for Python and causes failures +* Report cache filename at download +* Add micropython 1.15 +* Correct URLs for Stackless builds and add Stackless 2.7.16 ## Breaking changes * Split startup logic into PATH and everything else (https://github.com/pyenv/pyenv/issues/1649#issuecomment-694388530) From 1270ca6b0b953101e350fb8db2105ccb95531246 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 23 May 2021 20:01:43 +0300 Subject: [PATCH 0208/1324] 2.0.0 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5794ae3c20..eeee74dd43 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.0-rc1" +version="2.0.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 84486ceb7075ca920f225853f0a9884d2f919190 Mon Sep 17 00:00:00 2001 From: David Lawson Date: Wed, 26 May 2021 20:21:38 +0100 Subject: [PATCH 0209/1324] Add pypy3.7-7.3.5 --- .../share/python-build/pypy3.7-7.3.5 | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.5 diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.5 b/plugins/python-build/share/python-build/pypy3.7-7.3.5 new file mode 100644 index 0000000000..00289a0bc0 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.5 @@ -0,0 +1,40 @@ +VERSION='7.3.5' +PYVER='3.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#3dd8b565203d372829e53945c599296fa961895130342ea13791b17c84ed06c4" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#9000db3e87b54638e55177e68cbeb30a30fe5d17b6be48a9eb43d65b3ebcfc26" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#85d83093b3ef5b863f641bc4073d057cc98bb821e16aa9361a5ff4898e70e8ee" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#b3a7d3099ad83de7c267bb79ae609d5ce73b01800578ffd91ba7e221b13f80db" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win64" ) + install_zip "pypy${PYVER}-v${VERSION}-win64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win64.zip#072bd22427178dc4e65d961f50281bd2f56e11c4e4d9f16311c703f69f46ae24" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac + From d73ae603c7885a17d5041e3589b922a67c243666 Mon Sep 17 00:00:00 2001 From: David Lawson Date: Wed, 26 May 2021 20:55:17 +0100 Subject: [PATCH 0210/1324] Add pypy3.7-7.3.4-src and pypy3.7-7.3.5-src --- plugins/python-build/share/python-build/pypy3.7-7.3.4-src | 4 ++++ plugins/python-build/share/python-build/pypy3.7-7.3.5-src | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.4-src create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.5-src diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.4-src b/plugins/python-build/share/python-build/pypy3.7-7.3.4-src new file mode 100644 index 0000000000..8afccf5284 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.4-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy3.7-v7.3.4-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.4-src.tar.bz2#74d3c1e79f3fc7d384ffb32d3d2a95c2d5f61b81091eccce12ac76030d96ad08" "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.5-src b/plugins/python-build/share/python-build/pypy3.7-7.3.5-src new file mode 100644 index 0000000000..b48d5d067f --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.5-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy3.7-v7.3.5-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.5-src.tar.bz2#d920fe409a9ecad9d074aa8568ca5f3ed3581be66f66e5d8988b7ec66e6d99a2" "pypy_builder" verify_py37 ensurepip From fa384f134e692e2bf1e416615b87921a264156b9 Mon Sep 17 00:00:00 2001 From: An Long Date: Mon, 31 May 2021 16:46:01 +0800 Subject: [PATCH 0211/1324] install pip with pyston The default pyston build do not have pip installed by default. This change just add `get_pip` function to have pip installed. --- plugins/python-build/share/python-build/pyston-2.2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/pyston-2.2 b/plugins/python-build/share/python-build/pyston-2.2 index 2826330fd0..8ba706ed94 100644 --- a/plugins/python-build/share/python-build/pyston-2.2 +++ b/plugins/python-build/share/python-build/pyston-2.2 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston" verify_py38 + install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston" verify_py38 get_pip ;; * ) { echo From adca14a910b60e943214490e2003729491dd1665 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 1 Jun 2021 02:22:19 +0300 Subject: [PATCH 0212/1324] fix typo --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 8a9d38c7e5..2dbe264d86 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -989,7 +989,7 @@ activepython_architecture() { "Darwin" ) echo "macosx10.9-i386-x86_64" ;; "Linux" ) case "$(uname -m)" in - "i368" | "i486" | "i586" | "i686" | "i786" ) echo "linux-x86" ;; + "i386" | "i486" | "i586" | "i686" | "i786" ) echo "linux-x86" ;; "x86_64" ) echo "linux-x86_64" ;; * ) return 1 ;; esac From 159327ff2572d763e9553987f26b4abf0f7a19f8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 2 Jun 2021 00:04:26 +0300 Subject: [PATCH 0213/1324] Add explicit instructions for Zsh in MacOS Indirect ones with errata have proven to confuse users. Fixes #1947, #1948 --- README.md | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index ca98f84d47..bbfd1044f1 100644 --- a/README.md +++ b/README.md @@ -263,8 +263,24 @@ easy to fork and contribute any changes back upstream. - For **Zsh**: - Same as for Bash above, but add the commands into both `~/.profile` - and `~/.zprofile`. + - **MacOS, if Pyenv is installed with Homebrew:** + + ~~~ zsh + echo 'eval "$(pyenv init --path)"' >> ~/.zprofile + ~~~ + + - **MacOS, if Pyenv is installed with a Git checkout:** + + ~~~ zsh + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile + echo 'eval "$(pyenv init --path)"' >> ~/.zprofile + ~~~ + + - **Other OSes:** + + Same as for Bash above, but add the commands into both `~/.profile` + and `~/.zprofile`. - For **Fish shell**: From cb1390cb492095adb164b84575543825e1779d68 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 2 Jun 2021 00:47:52 +0300 Subject: [PATCH 0214/1324] Fix capitalization --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bbfd1044f1..e0ba860513 100644 --- a/README.md +++ b/README.md @@ -226,7 +226,7 @@ easy to fork and contribute any changes back upstream. to add the `PYENV_ROOT=` and `PATH=` lines. You also don't need to add commands into `~/.profile` if your shell doesn't use it. - - For **bash**: + - For **Bash**: ~~~ bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile From 66333824176df28602e99f324d947710551a282c Mon Sep 17 00:00:00 2001 From: Philip Howard Date: Wed, 2 Jun 2021 22:12:58 +0100 Subject: [PATCH 0215/1324] Fix .bashrc `echo` install syntax error (#1965) Change `done` to `fi` since otherwise Bash emits an unexpected token error: ``` bash: /home/foo/.bashrc: line 120: syntax error near unexpected token `done' bash: /home/foo/.bashrc: line 120: `if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; done' ``` --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0ba860513..0d10e54fd0 100644 --- a/README.md +++ b/README.md @@ -314,7 +314,7 @@ easy to fork and contribute any changes back upstream. - **If your `/etc/profile` sources `~/.bashrc` (SUSE):** ~~~bash - echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; done' >> ~/.bashrc + echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc ~~~ - For **Zsh**: From c878150dacb60e8522f44cc4ed0a70891fa9e2f1 Mon Sep 17 00:00:00 2001 From: Seth Michael Larson Date: Wed, 2 Jun 2021 16:16:20 -0500 Subject: [PATCH 0216/1324] Add 3.10.0b2 (#1966) --- .../python-build/share/python-build/{3.10.0b1 => 3.10.0b2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.10.0b1 => 3.10.0b2} (58%) diff --git a/plugins/python-build/share/python-build/3.10.0b1 b/plugins/python-build/share/python-build/3.10.0b2 similarity index 58% rename from plugins/python-build/share/python-build/3.10.0b1 rename to plugins/python-build/share/python-build/3.10.0b2 index 9c4eab2735..c75f28fee7 100644 --- a/plugins/python-build/share/python-build/3.10.0b1 +++ b/plugins/python-build/share/python-build/3.10.0b2 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tar.xz#a30c55b26a91f4c76392ba2b2e87c2d591fdb2b36f7b58d39fe90bd400fef1a3" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b2.tar.xz#c171663351fadef1759aef1dd5220ff69ccd76affb6d0aa719f90c63509b6aa8" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0b1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b1.tgz#a44c4726948689fe22f3edf30f11bf361d4536b38738ca955747eb5860c2dc93" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b2.tgz#ac678e44e522c0b769398f64fccda917f24a97d310e492d98989377f8865bac1" standard verify_py310 copy_python_gdb ensurepip fi From c95b1f2b951f01a3cd75fc1a661aaba04beb44a0 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 4 Jun 2021 20:32:57 +0300 Subject: [PATCH 0217/1324] Create mambaforge-4.10.1-4 --- .../share/python-build/mambaforge-4.10.1-4 | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.1-4 diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.1-4 b/plugins/python-build/share/python-build/mambaforge-4.10.1-4 new file mode 100644 index 0000000000..6ec49ac6c6 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.1-4 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-x86_64" ) + install_script "Mambaforge-4.10.1-4-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-4/Mambaforge-4.10.1-4-Linux-x86_64.sh#9eb335cb559644a6e462c077ebc129af51b7329817574fb707b994dafdddf2af" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Mambaforge-4.10.1-4-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-4/Mambaforge-4.10.1-4-Linux-aarch64.sh#eb7d10c758afbd59432a8f08294bc3ac053e747e1997ff5d6a1141a276b6d0e5" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.1-4-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-4/Mambaforge-4.10.1-4-MacOSX-arm64.sh#90a75e9fa9fedfe991a9eaf65cae62ef5cdb6a8fda9375654f31b3b6cf99ef06" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.1-4-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-4/Mambaforge-4.10.1-4-MacOSX-x86_64.sh#b8a849f0cf2923940a2fcda47a5f7181fa855dfc5c1b59134ac7e8b3735e0f71" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From d517315d25b4525d208f246e997f87e903ad660b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 6 Jun 2021 16:25:21 +0300 Subject: [PATCH 0218/1324] Update CHANGELOG.md --- CHANGELOG.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b390826abe..5fbb722fc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ ## Version History +## Release 2.0.1 + +* Drop inferring version to install from `pyenv local` (#1907) +* Create mambaforge-4.10.1-4 (#1971) +* Add 3.10.0b2 recipe (#1966) +* Fix .bashrc `echo` install syntax error (#1965) +* Add explicit Zsh instructions for MacOS (#1964) +* Install pip with pyston (#1955) +* Mention log file if an error happened before building, too (#1537) +* Add pypy3.7-7.3.5 (#1950) + ## Release 2.0.0 * Support for CPython 3.9.5 has been added. From f81bffc95e1120efb0e577b5bad9af105587ba42 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 6 Jun 2021 16:25:48 +0300 Subject: [PATCH 0219/1324] 2.0.1 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index eeee74dd43..44d3b78ae2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.0" +version="2.0.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From fadb3f33896991a61348649b350bf9c31b42dd38 Mon Sep 17 00:00:00 2001 From: LukeAI <43993778+LukeAI@users.noreply.github.com> Date: Tue, 8 Jun 2021 16:10:38 +0100 Subject: [PATCH 0220/1324] Fix instructions for Debian/Ubuntu to have shims ahead of ~/.local/bin (#1977) Debian/Ubuntu's stock `~/.bashrc` prepends `~/.local/bin` to `PATH` towards its end if it exists. Executables for per-user modules for system Python are installed into `~/.local/bin` -- so need to prepend `shims` to `PATH` later that that. Co-authored-by: Ivan Pozdeev --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 0d10e54fd0..1b00368a3c 100644 --- a/README.md +++ b/README.md @@ -240,6 +240,10 @@ easy to fork and contribute any changes back upstream. ~~~bash export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" + ~~~ + + And put this line at the _bottom_ of `~/.profile`: + ~~~bash eval "$(pyenv init --path)" ~~~ From 859b260764415fffe338444208b1b8dfe0233327 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 10 Jun 2021 03:51:59 +0300 Subject: [PATCH 0221/1324] Check for shims in path with pure Bash (#1978) Closes https://github.com/pyenv/pyenv/issues/1921 --- libexec/pyenv-init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 544cd49a10..0bb88fa75b 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -176,7 +176,7 @@ function print_path() { } function warn_path() { - if ! perl -ls0x3A -e 'while (<>) { chomp; ($_ eq $d) && exit 0; } exit 1' -- -d="${PYENV_ROOT}/shims" <<<"$PATH" ; then + if ! [[ ":${PATH}:" == *":${PYENV_ROOT}/shims:"* ]] ; then echo 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' echo 'echo '\''Run `pyenv init` to see the necessary changes to make to your configuration.'\' fi From 1706436faeaf1aa439cf4ef5852707c8388f5155 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 10 Jun 2021 03:57:58 +0300 Subject: [PATCH 0222/1324] Use system Python3 for tests (#1979) PEP 394 now doesn't require `python` presence or specify what it is. Tests that invoke it use Py3-specific code. --- test/exec.bats | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/exec.bats b/test/exec.bats index db78a158c7..61b4711d7f 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -79,37 +79,37 @@ OUT } @test "sys.executable with system version (#98)" { - system_python=$(which python) + system_python=$(which python3) PYENV_VERSION="custom" - create_executable "python" "" + create_executable "python3" "" unset PYENV_VERSION pyenv-rehash - run pyenv-exec python -c 'import sys; print(sys.executable)' + run pyenv-exec python3 -c 'import sys; print(sys.executable)' assert_success "${system_python}" } @test 'PATH is not modified with system Python' { # Create a wrapper executable that verifies PATH. PYENV_VERSION="custom" - create_executable "python" '[[ "$PATH" == "${PYENV_TEST_DIR}/root/versions/custom/bin:"* ]] || { echo "unexpected:$PATH"; exit 2;}' + create_executable "python3" '[[ "$PATH" == "${PYENV_TEST_DIR}/root/versions/custom/bin:"* ]] || { echo "unexpected:$PATH"; exit 2;}' unset PYENV_VERSION pyenv-rehash # Path is not modified with system Python. - run pyenv-exec python -c 'import os; print(os.getenv("PATH"))' + run pyenv-exec python3 -c 'import os; print(os.getenv("PATH"))' assert_success "$PATH" # Path is modified with custom Python. - PYENV_VERSION=custom run pyenv-exec python + PYENV_VERSION=custom run pyenv-exec python3 assert_success # Path is modified with custom:system Python. - PYENV_VERSION=custom:system run pyenv-exec python + PYENV_VERSION=custom:system run pyenv-exec python3 assert_success # Path is not modified with system:custom Python. - PYENV_VERSION=system:custom run pyenv-exec python -c 'import os; print(os.getenv("PATH"))' + PYENV_VERSION=system:custom run pyenv-exec python3 -c 'import os; print(os.getenv("PATH"))' assert_success "$PATH" } From e154693dc638d553fc876ac5f8da1b80b5280cad Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 14 Jun 2021 17:08:46 +0300 Subject: [PATCH 0223/1324] Revert "Drop inferring version to install from `pyenv local`" --- plugins/python-build/bin/pyenv-install | 5 +++++ plugins/python-build/test/pyenv.bats | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 1c719e183f..07d5555f31 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -115,7 +115,12 @@ done unset VERSION_NAME +# The first argument contains the definition to install. If the +# argument is missing, try to install whatever local app-specific +# version is specified by pyenv. Show usage instructions if a local +# version is not specified. DEFINITION="${ARGUMENTS[0]}" +[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)" [ -n "$DEFINITION" ] || usage 1 >&2 # Define `before_install` and `after_install` functions that allow diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 76c822a400..8ed632078d 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -23,6 +23,17 @@ stub_python_build() { unstub pyenv-rehash } +@test "install pyenv local version by default" { + stub_python_build 'echo python-build "$1"' + stub pyenv-local 'echo 3.4.2' + + run pyenv-install + assert_success "python-build 3.4.2" + + unstub python-build + unstub pyenv-local +} + @test "list available versions" { stub_python_build \ "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" From 5f751985696ce20b069fdbe8426657df20ee41c3 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sat, 19 Jun 2021 05:41:43 -0700 Subject: [PATCH 0224/1324] Add 3.10.0b3 (#1988) * Add 3.10.0b3 Co-authored-by: Ivan Pozdeev --- .../python-build/share/python-build/{3.10.0b2 => 3.10.0b3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.10.0b2 => 3.10.0b3} (58%) diff --git a/plugins/python-build/share/python-build/3.10.0b2 b/plugins/python-build/share/python-build/3.10.0b3 similarity index 58% rename from plugins/python-build/share/python-build/3.10.0b2 rename to plugins/python-build/share/python-build/3.10.0b3 index c75f28fee7..07c2c73dc9 100644 --- a/plugins/python-build/share/python-build/3.10.0b2 +++ b/plugins/python-build/share/python-build/3.10.0b3 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b2.tar.xz#c171663351fadef1759aef1dd5220ff69ccd76affb6d0aa719f90c63509b6aa8" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b3.tar.xz#2267aed4d01015176bcfe645ac6ca36e05f0c30a76f1f9973863692f6e25cc15" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0b2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b2.tgz#ac678e44e522c0b769398f64fccda917f24a97d310e492d98989377f8865bac1" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b3.tgz#880f407e619aa92c831900a98c0793889c4b40008a0b5623fd829ef76c8d96be" standard verify_py310 copy_python_gdb ensurepip fi From d2bd4c06ef389f88206f0c5c25f973b4d6ce3a9e Mon Sep 17 00:00:00 2001 From: Hugh Rawlinson Date: Sun, 27 Jun 2021 00:22:59 +0200 Subject: [PATCH 0225/1324] Suggest that fish users init in interactive mode ...rather than login mode. I couldn't get rid of the warning that `pyenv init -` no longer sets path until I did this. It looks like setting only on the login shell wasn't enough to hide the warning in other shells I opened. This fits with [how rbenv does the same thing](https://github.com/rbenv/rbenv/blob/master/libexec/rbenv-init#L74). I'm way out of my depth here, so someone who knows about shell types should definitely review this. --- libexec/pyenv-init | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 0bb88fa75b..08c4f8e223 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -109,7 +109,7 @@ function help_() { echo "# Load pyenv automatically by appending" echo "# the following to ~/.config/fish/config.fish:" echo - echo 'status is-login; and pyenv init --path | source' + echo 'status is-interactive; and pyenv init --path | source' echo 'pyenv init - | source' echo echo "# If fish is not your login shell," From 637fd914dc8f66358bdde38efbdeb13e3a64d2b3 Mon Sep 17 00:00:00 2001 From: Hugh Rawlinson Date: Sun, 27 Jun 2021 00:25:22 +0200 Subject: [PATCH 0226/1324] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1b00368a3c..214fe04561 100644 --- a/README.md +++ b/README.md @@ -296,7 +296,7 @@ easy to fork and contribute any changes back upstream. And add this to `~/.config/fish/config.fish`: ~~~ fish - status is-login; and pyenv init --path | source + status is-interactive; and pyenv init --path | source ~~~ If Fish is not your login shell, also follow the Bash/Zsh instructions to add to `~/.profile`. From 57f1c3b5b43438620f312745a22009c092f8a3ef Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 27 Jun 2021 10:39:48 +0300 Subject: [PATCH 0227/1324] Create miniforge3-4.10.1-5 --- .../share/python-build/miniforge3-4.10.1-5 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.1-5 diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.1-5 b/plugins/python-build/share/python-build/miniforge3-4.10.1-5 new file mode 100644 index 0000000000..622edcf092 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.1-5 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.1-5-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Miniforge3-4.10.1-5-Linux-ppc64le.sh#0b23d9c25582dbd2cf8171366f5fb0ef5d5e7f8262eb670094f33400e88f3726" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.1-5-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Miniforge3-4.10.1-5-Linux-x86_64.sh#f47637e899258d4fa568aa866c37ecf19a2dacc50fa64a5ebc65443ccdf73243" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Miniforge3-4.10.1-5-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Miniforge3-4.10.1-5-Linux-aarch64.sh#d582c3bf289dc5c2f86dde9182b27e49b095d00da40842f3e379a113b12ce7cb" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.1-5-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Miniforge3-4.10.1-5-MacOSX-arm64.sh#29fee39691dfe84cf3222c61fce0c8357d933eefcc0d49041b48153efe91f345" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.1-5-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Miniforge3-4.10.1-5-MacOSX-x86_64.sh#f67dfc4d5e3dea173e31267eb0890733098f0fd2d42944282d17f27a1bc3f8cc" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 35e0b0e24ac5e95e8bed1acb61c4fa196754fcfb Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 27 Jun 2021 10:45:15 +0300 Subject: [PATCH 0228/1324] Create mambaforge-4.10.1-5 --- .../share/python-build/mambaforge-4.10.1-5 | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.1-5 diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.1-5 b/plugins/python-build/share/python-build/mambaforge-4.10.1-5 new file mode 100644 index 0000000000..88c6fafd87 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.1-5 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-x86_64" ) + install_script "Mambaforge-4.10.1-5-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Mambaforge-4.10.1-5-Linux-x86_64.sh#069e151cae85ed4747721e938e7974aa00889a1ae87cff33ddbdde9530fc4c6d" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Mambaforge-4.10.1-5-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Mambaforge-4.10.1-5-Linux-aarch64.sh#64739b6eb0108ff3873d4edb32d2760db166cc822797234654c888c0f7063b9d" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.1-5-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Mambaforge-4.10.1-5-MacOSX-arm64.sh#20553cd410ae250cd1cabce04e7478f57439ab1d55cb1c6a157998d96bee1b7d" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.1-5-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.1-5/Mambaforge-4.10.1-5-MacOSX-x86_64.sh#871fc6471ff8de7aa609db5f1a8e99bfaea6dabbbd2c41fa61c26ef82daa6832" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 1cce1cadbd181fd8a7424de8dc7e79421f5ba5fa Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 27 Jun 2021 11:25:37 +0300 Subject: [PATCH 0229/1324] Update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fbb722fc3..6172eefb58 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ ## Version History +## Release 2.0.2 + +* Miniforge minor update to 4.10.1-5 (#1992) +* Suggest that fish users init in interactive mode (#1991) +* Add 3.10.0b3 (#1988) +* Revert "Drop inferring version to install from `pyenv local`" (#1984) +* Use system Python3 for tests (#1979) +* Check for shims in path with pure Bash (#1978) +* Update setup instructions for debian, ubuntu etc. (#1977) + ## Release 2.0.1 * Drop inferring version to install from `pyenv local` (#1907) From 20df06420431925fddfe877bec423afc3de4bd7b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 27 Jun 2021 11:25:53 +0300 Subject: [PATCH 0230/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 44d3b78ae2..e0a93fd30b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.1" +version="2.0.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 673c73012dc29697998e9606329f2edeccefca49 Mon Sep 17 00:00:00 2001 From: Illia Volochii Date: Tue, 29 Jun 2021 13:45:48 +0300 Subject: [PATCH 0231/1324] Add Python 3.6.14, 3.7.11, 3.8.11, and 3.9.6 (#1996) --- plugins/python-build/share/python-build/3.6.14 | 9 +++++++++ plugins/python-build/share/python-build/3.7.11 | 10 ++++++++++ plugins/python-build/share/python-build/3.8.11 | 10 ++++++++++ plugins/python-build/share/python-build/3.9.6 | 10 ++++++++++ 4 files changed, 39 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.6.14 create mode 100644 plugins/python-build/share/python-build/3.7.11 create mode 100644 plugins/python-build/share/python-build/3.8.11 create mode 100644 plugins/python-build/share/python-build/3.9.6 diff --git a/plugins/python-build/share/python-build/3.6.14 b/plugins/python-build/share/python-build/3.6.14 new file mode 100644 index 0000000000..c823a2f7d7 --- /dev/null +++ b/plugins/python-build/share/python-build/3.6.14 @@ -0,0 +1,9 @@ +#require_gcc +prefer_openssl11 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.6.14" "https://www.python.org/ftp/python/3.6.14/Python-3.6.14.tar.xz#2663a7a0cfbd00fc76269dce4317db0b54be53c0f4d705aabb32b87efa02d5ae" standard verify_py36 copy_python_gdb ensurepip +else + install_package "Python-3.6.14" "https://www.python.org/ftp/python/3.6.14/Python-3.6.14.tgz#70064897bc434d6eae8bcc3e5678f282b5ea776d60e695da548a1219ccfd27a5" standard verify_py36 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.7.11 b/plugins/python-build/share/python-build/3.7.11 new file mode 100644 index 0000000000..af638f7d87 --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.11 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.11" "https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tar.xz#ddb4196ab5c4f69e895920a422cb60d42b46e2de2b173ce7fd57f1435459a734" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.11" "https://www.python.org/ftp/python/3.7.11/Python-3.7.11.tgz#b4fba32182e16485d0a6022ba83c9251e6a1c14676ec243a9a07d3722cd4661a" standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.11 b/plugins/python-build/share/python-build/3.8.11 new file mode 100644 index 0000000000..5657747e05 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.11 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tar.xz#fb1a1114ebfe9e97199603c6083e20b236a0e007a2c51f29283ffb50c1420fb2" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz#b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.6 b/plugins/python-build/share/python-build/3.9.6 new file mode 100644 index 0000000000..0de2f2456d --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.6 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz#397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz#d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866" standard verify_py39 copy_python_gdb ensurepip +fi From f7754ae6a4a15433b236693c302d3d79414d430e Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 3 Jul 2021 09:48:13 +0300 Subject: [PATCH 0232/1324] Remove PATH warning (#2001) * In some cases (Ubuntu), `pyenv init -` has to be run before `pyenv init --path`. * The warning has served its purpose by now. --- libexec/pyenv-init | 8 -------- test/init.bats | 7 ------- 2 files changed, 15 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 08c4f8e223..bc11749576 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -61,7 +61,6 @@ function main() { ;; "print") init_dirs - warn_path print_env print_completion print_shell_function @@ -175,13 +174,6 @@ function print_path() { esac } -function warn_path() { - if ! [[ ":${PATH}:" == *":${PYENV_ROOT}/shims:"* ]] ; then - echo 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' - echo 'echo '\''Run `pyenv init` to see the necessary changes to make to your configuration.'\' - fi -} - function print_env() { case "$shell" in fish ) diff --git a/test/init.bats b/test/init.bats index 121c3b62eb..bcb937c1f2 100755 --- a/test/init.bats +++ b/test/init.bats @@ -90,13 +90,6 @@ OUT assert_line 0 "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } -@test "prints a warning if shims not in PATH" { - export PATH="$(perl -0x3A -ls -e 'while (<>) { chomp; ($_ ne $d) && print; }' -- -d="${PYENV_ROOT}/shims" <<<"$PATH")" - run pyenv-init - - assert_success - assert_line 0 'echo '\''WARNING: `pyenv init -` no longer sets PATH.'\' -} - @test "outputs sh-compatible syntax" { run pyenv-init - bash assert_success From ae29f86968150a304c998df056485064f9f3cec5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 3 Jul 2021 10:10:42 +0300 Subject: [PATCH 0233/1324] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6172eefb58..aa9136b07f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ ## Version History +## Release 2.0.3 + +* Remove PATH warning (#2001) +* Add Python 3.6.14, 3.7.11, 3.8.11, and 3.9.6 (#1996) +* Miniforge minor update to 4.10.1-5 (#1992) +* Suggest that fish users init in interactive mode (#1991) + ## Release 2.0.2 * Miniforge minor update to 4.10.1-5 (#1992) From 3a5a21ee050f1b20d9d217a65504f0dd3384a6f4 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 3 Jul 2021 10:10:58 +0300 Subject: [PATCH 0234/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e0a93fd30b..6f2b5a2e77 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.2" +version="2.0.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 93dd6f116349c72b923f5a5bd56b10c8335b12ea Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 11 Jul 2021 13:59:57 -0400 Subject: [PATCH 0235/1324] Add 3.10.0b4 --- .../python-build/share/python-build/{3.10.0b3 => 3.10.0b4} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.10.0b3 => 3.10.0b4} (72%) diff --git a/plugins/python-build/share/python-build/3.10.0b3 b/plugins/python-build/share/python-build/3.10.0b4 similarity index 72% rename from plugins/python-build/share/python-build/3.10.0b3 rename to plugins/python-build/share/python-build/3.10.0b4 index 07c2c73dc9..15db4cfb94 100644 --- a/plugins/python-build/share/python-build/3.10.0b3 +++ b/plugins/python-build/share/python-build/3.10.0b4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b3.tar.xz#2267aed4d01015176bcfe645ac6ca36e05f0c30a76f1f9973863692f6e25cc15" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tar.xz#27d2f40401144830bd89d632002d1ab7c7898637f098d83e813e3edf70dd3b40" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b3.tgz#880f407e619aa92c831900a98c0793889c4b40008a0b5623fd829ef76c8d96be" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tgz#f7ab6d8c05102bcdfcfa54ab0478fc9b945d699c896307b0ae177504cabc435c" standard verify_py310 copy_python_gdb ensurepip fi From 041903c64056417639b33067068cbc55ea2e0e6e Mon Sep 17 00:00:00 2001 From: David Lawson Date: Sun, 18 Jul 2021 18:21:01 +0100 Subject: [PATCH 0236/1324] Add Pyston 2.3 --- .../share/python-build/pyston-2.3 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/pyston-2.3 diff --git a/plugins/python-build/share/python-build/pyston-2.3 b/plugins/python-build/share/python-build/pyston-2.3 new file mode 100644 index 0000000000..ff5ee2f2c9 --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.3 @@ -0,0 +1,19 @@ +echo +colorize 1 "WARNING" +echo ": Pyston only runs on x86_64 platforms, and only has been tested on Ubuntu" +echo "so, your mileage may vary with other Linux distributions." +echo + +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable.tar.gz#1d3885ede2d112c8087ec3c3ebf185782562ee5867a2cf15f6ea74e70f2d1db6" "pyston" verify_py38 get_pip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston 2.3 binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From d769f229964c1ebb899350e4cc57d7bcab1c0d5e Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Mon, 19 Jul 2021 14:40:13 -0400 Subject: [PATCH 0237/1324] fix: correct the reported version for 3.10.0b4 --- plugins/python-build/share/python-build/3.10.0b4 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10.0b4 b/plugins/python-build/share/python-build/3.10.0b4 index 15db4cfb94..6426db452b 100644 --- a/plugins/python-build/share/python-build/3.10.0b4 +++ b/plugins/python-build/share/python-build/3.10.0b4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tar.xz#27d2f40401144830bd89d632002d1ab7c7898637f098d83e813e3edf70dd3b40" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b4" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tar.xz#27d2f40401144830bd89d632002d1ab7c7898637f098d83e813e3edf70dd3b40" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0b3" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tgz#f7ab6d8c05102bcdfcfa54ab0478fc9b945d699c896307b0ae177504cabc435c" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0b4" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tgz#f7ab6d8c05102bcdfcfa54ab0478fc9b945d699c896307b0ae177504cabc435c" standard verify_py310 copy_python_gdb ensurepip fi From aad74674cb8e996a7246f940466e41f43fb4773c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Thu, 22 Jul 2021 18:26:11 +0200 Subject: [PATCH 0238/1324] Add GraalPython 21.2.0 (#2018) --- .../share/python-build/graalpython-21.2.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-21.2.0 diff --git a/plugins/python-build/share/python-build/graalpython-21.2.0 b/plugins/python-build/share/python-build/graalpython-21.2.0 new file mode 100644 index 0000000000..a2b5be161f --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-21.2.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2021, 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='21.2.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="17399e168743ae8b7b3faa9870ce24213fb514a04a8966bd4bd10844baf039da" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="b365278cba49d6e2e0c018d1f5a1e81fa0304be5fe6c086532630443c605b8c0" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From ad8807543b772ec186e44aa17cbf833e3377b770 Mon Sep 17 00:00:00 2001 From: David Lawson Date: Thu, 22 Jul 2021 17:28:04 +0100 Subject: [PATCH 0239/1324] Update pyston-2.3 (#2017) The original 2.3 portable version was compiled on Ubuntu 20.04 and didn't work with older glibc. This has been fixed and the older file has been deleted so hopefully this change is acceptable. --- plugins/python-build/share/python-build/pyston-2.3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/pyston-2.3 b/plugins/python-build/share/python-build/pyston-2.3 index ff5ee2f2c9..161b03d71b 100644 --- a/plugins/python-build/share/python-build/pyston-2.3 +++ b/plugins/python-build/share/python-build/pyston-2.3 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable.tar.gz#1d3885ede2d112c8087ec3c3ebf185782562ee5867a2cf15f6ea74e70f2d1db6" "pyston" verify_py38 get_pip + install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" "pyston" verify_py38 get_pip ;; * ) { echo From af59ef00883d4ef3a62a994ea6462775b9d48ca5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:09:54 +0300 Subject: [PATCH 0240/1324] Create miniforge3-latest --- .../share/python-build/miniforge3-latest | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-latest diff --git a/plugins/python-build/share/python-build/miniforge3-latest b/plugins/python-build/share/python-build/miniforge3-latest new file mode 100644 index 0000000000..82a953f6ce --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-latest @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh" "miniconda" verify_py3_latest + ;; +"Linux-aarch64" ) + install_script "Miniforge3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-x86_64.sh" "miniconda" verify_py3_latest + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 0c287ffcf7a15a9588ca70ea1a04ef3fef4e4195 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:12:29 +0300 Subject: [PATCH 0241/1324] Create mambaforge3-latest --- .../share/python-build/mambaforge3-latest | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge3-latest diff --git a/plugins/python-build/share/python-build/mambaforge3-latest b/plugins/python-build/share/python-build/mambaforge3-latest new file mode 100644 index 0000000000..bc9bf88ac4 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge3-latest @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Mambaforge3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-ppc64le.sh" "miniconda" verify_py3_latest + ;; +"Linux-x86_64" ) + install_script "Mambaforge3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh" "miniconda" verify_py3_latest + ;; +"Linux-aarch64" ) + install_script "Mambaforge3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-arm64" ) + install_script "Mambaforge3-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-x86_64.sh" "miniconda" verify_py3_latest + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From d4d66b618351400fdcfefdef733f840131b32185 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:12:58 +0300 Subject: [PATCH 0242/1324] Update miniforge3-latest --- plugins/python-build/share/python-build/miniforge3-latest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/miniforge3-latest b/plugins/python-build/share/python-build/miniforge3-latest index 82a953f6ce..d340c63635 100644 --- a/plugins/python-build/share/python-build/miniforge3-latest +++ b/plugins/python-build/share/python-build/miniforge3-latest @@ -1,6 +1,6 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-ppc64le" ) - install_script "Miniforge3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh" "miniconda" verify_py38 + install_script "Miniforge3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-ppc64le.sh" "miniconda" verify_py3_latest ;; "Linux-x86_64" ) install_script "Miniforge3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh" "miniconda" verify_py3_latest From db82c7339125c30ff9ae474cabaccb0b27cc8e60 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:23:28 +0300 Subject: [PATCH 0243/1324] Create miniforge3-pypy3 --- .../share/python-build/miniforge3-pypy3 | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-pypy3 diff --git a/plugins/python-build/share/python-build/miniforge3-pypy3 b/plugins/python-build/share/python-build/miniforge3-pypy3 new file mode 100644 index 0000000000..a9edeaf903 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-pypy3 @@ -0,0 +1,23 @@ + +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-pypy3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-pypy3-Linux-ppc64le.sh" "miniconda" verify_py3_latest + ;; +"Linux-x86_64" ) + install_script "Miniforge3-pypy3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-x86_64.sh" "miniconda" verify_py3_latest + ;; +"Linux-aarch64" ) + install_script "Miniforge3-pypy3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-pypy3-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-pypy3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-pypy3-MacOSX-x86_64.sh" "miniconda" verify_py3_latest + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge with PyPy3 is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 56fd6c3c51a6d68a096f27105c599b48f4b9df58 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:24:31 +0300 Subject: [PATCH 0244/1324] Update and rename miniforge3-latest to miniforge3 --- .../share/python-build/{miniforge3-latest => miniforge3} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename plugins/python-build/share/python-build/{miniforge3-latest => miniforge3} (90%) diff --git a/plugins/python-build/share/python-build/miniforge3-latest b/plugins/python-build/share/python-build/miniforge3 similarity index 90% rename from plugins/python-build/share/python-build/miniforge3-latest rename to plugins/python-build/share/python-build/miniforge3 index d340c63635..1af5ea6775 100644 --- a/plugins/python-build/share/python-build/miniforge3-latest +++ b/plugins/python-build/share/python-build/miniforge3 @@ -17,7 +17,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in * ) { echo colorize 1 "ERROR" - echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo ": The binary distribution of Miniforge3 is not available for $(anaconda_architecture 2>/dev/null || true)." echo } >&2 exit 1 From fc7560bcfde1b2c68727e1c1bc21ed2b301cf45e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:24:59 +0300 Subject: [PATCH 0245/1324] Update and rename mambaforge3-latest to mambaforge3 --- .../share/python-build/{mambaforge3-latest => mambaforge3} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename plugins/python-build/share/python-build/{mambaforge3-latest => mambaforge3} (90%) diff --git a/plugins/python-build/share/python-build/mambaforge3-latest b/plugins/python-build/share/python-build/mambaforge3 similarity index 90% rename from plugins/python-build/share/python-build/mambaforge3-latest rename to plugins/python-build/share/python-build/mambaforge3 index bc9bf88ac4..6ca5eaa9ac 100644 --- a/plugins/python-build/share/python-build/mambaforge3-latest +++ b/plugins/python-build/share/python-build/mambaforge3 @@ -17,7 +17,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in * ) { echo colorize 1 "ERROR" - echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo ": The binary distribution of Mambaforge3 is not available for $(anaconda_architecture 2>/dev/null || true)." echo } >&2 exit 1 From a6d6ba8050ddd0b124c804b1d95ac0a1ec19ede3 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:26:54 +0300 Subject: [PATCH 0246/1324] Rename miniforge3 to miniforge3-latest --- .../share/python-build/{miniforge3 => miniforge3-latest} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniforge3 => miniforge3-latest} (100%) diff --git a/plugins/python-build/share/python-build/miniforge3 b/plugins/python-build/share/python-build/miniforge3-latest similarity index 100% rename from plugins/python-build/share/python-build/miniforge3 rename to plugins/python-build/share/python-build/miniforge3-latest From 8c251a5e9bbcaf761e26e3f2784d0fae80c89f70 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:27:21 +0300 Subject: [PATCH 0247/1324] Rename mambaforge3 to mambaforge3-latest --- .../share/python-build/{mambaforge3 => mambaforge3-latest} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{mambaforge3 => mambaforge3-latest} (100%) diff --git a/plugins/python-build/share/python-build/mambaforge3 b/plugins/python-build/share/python-build/mambaforge3-latest similarity index 100% rename from plugins/python-build/share/python-build/mambaforge3 rename to plugins/python-build/share/python-build/mambaforge3-latest From 9b6377de23c3e261f333bed70097673d4f4e246c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:30:59 +0300 Subject: [PATCH 0248/1324] Create mambaforge3-pypy3-latest --- .../python-build/mambaforge3-pypy3-latest | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge3-pypy3-latest diff --git a/plugins/python-build/share/python-build/mambaforge3-pypy3-latest b/plugins/python-build/share/python-build/mambaforge3-pypy3-latest new file mode 100644 index 0000000000..c42197d8ed --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge3-pypy3-latest @@ -0,0 +1,22 @@ +ase "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Mambaforge-pypy3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-Linux-ppc64le.sh" "miniconda" verify_py3_latest + ;; +"Linux-x86_64" ) + install_script "Mambaforge-pypy3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-Linux-x86_64.sh" "miniconda" verify_py3_latest + ;; +"Linux-aarch64" ) + install_script "Mambaforge-pypy3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-pypy3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-MacOSX-x86_64.sh" "miniconda" verify_py3_latest + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge with PyPy3 is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From fd8854dea153b2b76a3119492818c3f1b981cf1c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:34:05 +0300 Subject: [PATCH 0249/1324] Rename miniforge3-latest to miniforge3 --- .../share/python-build/{miniforge3-latest => miniforge3} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniforge3-latest => miniforge3} (100%) diff --git a/plugins/python-build/share/python-build/miniforge3-latest b/plugins/python-build/share/python-build/miniforge3 similarity index 100% rename from plugins/python-build/share/python-build/miniforge3-latest rename to plugins/python-build/share/python-build/miniforge3 From abe0056b5f9b2f1fc437b858bb6c9218f3303134 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:34:51 +0300 Subject: [PATCH 0250/1324] Update and rename mambaforge3-latest to mambaforge --- .../share/python-build/mambaforge | 25 +++++++++++++++++++ .../share/python-build/mambaforge3-latest | 25 ------------------- 2 files changed, 25 insertions(+), 25 deletions(-) create mode 100644 plugins/python-build/share/python-build/mambaforge delete mode 100644 plugins/python-build/share/python-build/mambaforge3-latest diff --git a/plugins/python-build/share/python-build/mambaforge b/plugins/python-build/share/python-build/mambaforge new file mode 100644 index 0000000000..ff1ea1410d --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Mambaforge-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-ppc64le.sh" "miniconda" verify_py3_latest + ;; +"Linux-x86_64" ) + install_script "Mambaforge-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh" "miniconda" verify_py3_latest + ;; +"Linux-aarch64" ) + install_script "Mambaforge-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-x86_64.sh" "miniconda" verify_py3_latest + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge3 is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge3-latest b/plugins/python-build/share/python-build/mambaforge3-latest deleted file mode 100644 index 6ca5eaa9ac..0000000000 --- a/plugins/python-build/share/python-build/mambaforge3-latest +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-ppc64le" ) - install_script "Mambaforge3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-ppc64le.sh" "miniconda" verify_py3_latest - ;; -"Linux-x86_64" ) - install_script "Mambaforge3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-x86_64.sh" "miniconda" verify_py3_latest - ;; -"Linux-aarch64" ) - install_script "Mambaforge3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-Linux-aarch64.sh" "miniconda" verify_py3_latest - ;; -"MacOSX-arm64" ) - install_script "Mambaforge3-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh" "miniconda" verify_py3_latest - ;; -"MacOSX-x86_64" ) - install_script "Mambaforge3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-x86_64.sh" "miniconda" verify_py3_latest - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Mambaforge3 is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac From 3773dfb4f1da5609845687e095d32cfe278bfa4b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:37:22 +0300 Subject: [PATCH 0251/1324] Update and rename miniforge3-pypy3 to miniforge-pypy3 --- .../share/python-build/miniforge-pypy3 | 23 +++++++++++++++++++ .../share/python-build/miniforge3-pypy3 | 23 ------------------- 2 files changed, 23 insertions(+), 23 deletions(-) create mode 100644 plugins/python-build/share/python-build/miniforge-pypy3 delete mode 100644 plugins/python-build/share/python-build/miniforge3-pypy3 diff --git a/plugins/python-build/share/python-build/miniforge-pypy3 b/plugins/python-build/share/python-build/miniforge-pypy3 new file mode 100644 index 0000000000..ca7708ca4d --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge-pypy3 @@ -0,0 +1,23 @@ + +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge-pypy3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-ppc64le.sh" "miniconda" verify_py3_latest + ;; +"Linux-x86_64" ) + install_script "Miniforge-pypy3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-x86_64.sh" "miniconda" verify_py3_latest + ;; +"Linux-aarch64" ) + install_script "Miniforge-pypy3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; +"MacOSX-x86_64" ) + install_script "Miniforge-pypy3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-MacOSX-x86_64.sh" "miniconda" verify_py3_latest + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge with PyPy3 is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-pypy3 b/plugins/python-build/share/python-build/miniforge3-pypy3 deleted file mode 100644 index a9edeaf903..0000000000 --- a/plugins/python-build/share/python-build/miniforge3-pypy3 +++ /dev/null @@ -1,23 +0,0 @@ - -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-ppc64le" ) - install_script "Miniforge3-pypy3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-pypy3-Linux-ppc64le.sh" "miniconda" verify_py3_latest - ;; -"Linux-x86_64" ) - install_script "Miniforge3-pypy3-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge-pypy3-Linux-x86_64.sh" "miniconda" verify_py3_latest - ;; -"Linux-aarch64" ) - install_script "Miniforge3-pypy3-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-pypy3-Linux-aarch64.sh" "miniconda" verify_py3_latest - ;; -"MacOSX-x86_64" ) - install_script "Miniforge3-pypy3-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-pypy3-MacOSX-x86_64.sh" "miniconda" verify_py3_latest - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Miniforge with PyPy3 is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac From c435fde08899abec29fc66eb03191e5a7dec40f9 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:38:11 +0300 Subject: [PATCH 0252/1324] Rename mambaforge3-pypy3-latest to mambaforge-pypy3 --- .../python-build/{mambaforge3-pypy3-latest => mambaforge-pypy3} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{mambaforge3-pypy3-latest => mambaforge-pypy3} (100%) diff --git a/plugins/python-build/share/python-build/mambaforge3-pypy3-latest b/plugins/python-build/share/python-build/mambaforge-pypy3 similarity index 100% rename from plugins/python-build/share/python-build/mambaforge3-pypy3-latest rename to plugins/python-build/share/python-build/mambaforge-pypy3 From 52822a3d505b7aa004b8c7b8f60967e0ca5d1847 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:53:58 +0300 Subject: [PATCH 0253/1324] Update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index aa9136b07f..e72aea264a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ ## Version History +## Release 2.0.4 + +- Added scripts for rolling releases of Miniforge (#2019) +- Update pyston-2.3 (#2017) +- Add GraalPython 21.2.0 (#2018) +- Add CPython 3.10.0b4 (#2013), (#2005) +- Add Pyston 2.3 (#2012) + ## Release 2.0.3 * Remove PATH warning (#2001) From cef86ce462674c726cb60ddd0e19da0bf39a27c9 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 25 Jul 2021 11:54:16 +0300 Subject: [PATCH 0254/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 6f2b5a2e77..4c3a261be3 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.3" +version="2.0.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 1f906baae84010d5ba23567f40d3454e60079db6 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 3 Aug 2021 06:52:44 +0300 Subject: [PATCH 0255/1324] Remove 3.9.3 It has been recalled due to introducing an unexpected incompatibility: https://www.python.org/downloads/release/python-393/ --- plugins/python-build/share/python-build/3.9.3 | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.9.3 diff --git a/plugins/python-build/share/python-build/3.9.3 b/plugins/python-build/share/python-build/3.9.3 deleted file mode 100644 index f23d77bba1..0000000000 --- a/plugins/python-build/share/python-build/3.9.3 +++ /dev/null @@ -1,10 +0,0 @@ -#require_gcc -prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tar.xz#30811039c65e04c14fc698e423947e464f9316e69fb44610bd38446046bb82b5" standard verify_py39 copy_python_gdb ensurepip -else - install_package "Python-3.9.3" "https://www.python.org/ftp/python/3.9.3/Python-3.9.3.tgz#3afeb61a45b5a2e6f1c0f621bd8cf925a4ff406099fdb3d8c97b993a5f43d048" standard verify_py39 copy_python_gdb ensurepip -fi From 9db1193c2a0dfa3aa81664fddc89a51a5bc7ef05 Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Tue, 3 Aug 2021 20:06:17 +0200 Subject: [PATCH 0256/1324] Add CPython 3.10.0rc1 --- plugins/python-build/share/python-build/3.10.0rc1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.0rc1 diff --git a/plugins/python-build/share/python-build/3.10.0rc1 b/plugins/python-build/share/python-build/3.10.0rc1 new file mode 100644 index 0000000000..411cb7ec2e --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.0rc1 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tar.xz#135b56c2703ad8e01a2728b564f13ffe5cea691fc244f40df4d9e1b3841e690c" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tgz#4da5269494325da3872531c5178110a91c1eaf7cfe25523ac7a6f26ff7b7ac4d" standard verify_py310 copy_python_gdb ensurepip +fi From 1427f80828ae7b00a5f787d82c2063b2b79311fe Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Tue, 3 Aug 2021 20:10:53 +0200 Subject: [PATCH 0257/1324] Add test to CI --- .github/workflows/ubuntu_tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 4b125c398e..6968e19c7a 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -12,6 +12,7 @@ jobs: - 3.7.10 - 3.8.10 - 3.9.5 + - 3.10.0rc1 runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 From 65588f51d95ef7987dd01cd21df20162c515439c Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Wed, 4 Aug 2021 22:16:34 +0200 Subject: [PATCH 0258/1324] Update checksums for CPython 3.10.0rc1 --- plugins/python-build/share/python-build/3.10.0rc1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10.0rc1 b/plugins/python-build/share/python-build/3.10.0rc1 index 411cb7ec2e..f46cf0781b 100644 --- a/plugins/python-build/share/python-build/3.10.0rc1 +++ b/plugins/python-build/share/python-build/3.10.0rc1 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tar.xz#135b56c2703ad8e01a2728b564f13ffe5cea691fc244f40df4d9e1b3841e690c" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tar.xz#797061692282d0e573a0093476e57e39cf52cad56782ab2dfb79afadb3c1e638" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tgz#4da5269494325da3872531c5178110a91c1eaf7cfe25523ac7a6f26ff7b7ac4d" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tgz#b7efa6edd72bfeae57295f1ccc7c38c9ede8087f9f082382f16f92aa38f684d3" standard verify_py310 copy_python_gdb ensurepip fi From 825ef64995f3288ec6127555b49b431b8e3e1b89 Mon Sep 17 00:00:00 2001 From: Fredrik Averpil Date: Wed, 4 Aug 2021 22:22:11 +0200 Subject: [PATCH 0259/1324] Remove CPython 3.10.0b4 --- plugins/python-build/share/python-build/3.10.0b4 | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.10.0b4 diff --git a/plugins/python-build/share/python-build/3.10.0b4 b/plugins/python-build/share/python-build/3.10.0b4 deleted file mode 100644 index 6426db452b..0000000000 --- a/plugins/python-build/share/python-build/3.10.0b4 +++ /dev/null @@ -1,10 +0,0 @@ -#require_gcc -prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0b4" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tar.xz#27d2f40401144830bd89d632002d1ab7c7898637f098d83e813e3edf70dd3b40" standard verify_py310 copy_python_gdb ensurepip -else - install_package "Python-3.10.0b4" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0b4.tgz#f7ab6d8c05102bcdfcfa54ab0478fc9b945d699c896307b0ae177504cabc435c" standard verify_py310 copy_python_gdb ensurepip -fi From 351ddb1095a3b954051560b5378358a3987522d9 Mon Sep 17 00:00:00 2001 From: Sakuragawa Misty Date: Tue, 10 Aug 2021 05:54:51 +0800 Subject: [PATCH 0260/1324] Adapt conda.bash for bash associative array --- pyenv.d/rehash/conda.bash | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index 9e477862e2..bfc88b3168 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -34,14 +34,22 @@ make_shims() { } deregister_conda_shims() { - local shim - local shims=() - for shim in ${registered_shims}; do - if ! conda_shim "${shim}" 1>&2; then - shims[${#shims[*]}]="${shim}" - fi - done - registered_shims=" ${shims[@]} " + if [[ -v registered_shims[@] ]]; then # adapted for Bash 4.x's associative array (#1749) + for shim in ${!registered_shims[*]}; do + if conda_shim "${shim}" 1>&2; then + unset registered_shims[${shim}] + fi + done + else + local shim + local shims=() + for shim in ${registered_shims}; do + if ! conda_shim "${shim}" 1>&2; then + shims[${#shims[*]}]="${shim}" + fi + done + registered_shims=" ${shims[@]} " + fi } if conda_exists; then From dc36c300e10e6b07f20b8c461193f5869fa2a72a Mon Sep 17 00:00:00 2001 From: V S Date: Thu, 19 Aug 2021 19:55:22 +1000 Subject: [PATCH 0261/1324] Move man page to location where in can be automatically found by manpage utility without manual MANPATH setting --- pyenv.1 => man/man1/pyenv.1 | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename pyenv.1 => man/man1/pyenv.1 (100%) diff --git a/pyenv.1 b/man/man1/pyenv.1 similarity index 100% rename from pyenv.1 rename to man/man1/pyenv.1 From 07609cc579a9e4552f78e30d81a77c0bbece251b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 20 Aug 2021 09:58:18 +0300 Subject: [PATCH 0262/1324] Revert "Adapt conda.bash for bash associative array" --- pyenv.d/rehash/conda.bash | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index bfc88b3168..9e477862e2 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -34,22 +34,14 @@ make_shims() { } deregister_conda_shims() { - if [[ -v registered_shims[@] ]]; then # adapted for Bash 4.x's associative array (#1749) - for shim in ${!registered_shims[*]}; do - if conda_shim "${shim}" 1>&2; then - unset registered_shims[${shim}] - fi - done - else - local shim - local shims=() - for shim in ${registered_shims}; do - if ! conda_shim "${shim}" 1>&2; then - shims[${#shims[*]}]="${shim}" - fi - done - registered_shims=" ${shims[@]} " - fi + local shim + local shims=() + for shim in ${registered_shims}; do + if ! conda_shim "${shim}" 1>&2; then + shims[${#shims[*]}]="${shim}" + fi + done + registered_shims=" ${shims[@]} " } if conda_exists; then From dfeda54079f31471f1eb194e692284514b16be54 Mon Sep 17 00:00:00 2001 From: Sakuragawa Misty Date: Sat, 21 Aug 2021 04:15:49 +0800 Subject: [PATCH 0263/1324] fixes checking of associative array in conda.bash --- pyenv.d/rehash/conda.bash | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index 9e477862e2..aaf8888410 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -34,14 +34,23 @@ make_shims() { } deregister_conda_shims() { - local shim - local shims=() - for shim in ${registered_shims}; do - if ! conda_shim "${shim}" 1>&2; then - shims[${#shims[*]}]="${shim}" - fi - done - registered_shims=" ${shims[@]} " + # adapted for Bash 4.x's associative array (#1749) + if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) \-A'; then + for shim in ${!registered_shims[*]}; do + if conda_shim "${shim}" 1>&2; then + unset registered_shims[${shim}] + fi + done + else + local shim + local shims=() + for shim in ${registered_shims}; do + if ! conda_shim "${shim}" 1>&2; then + shims[${#shims[*]}]="${shim}" + fi + done + registered_shims=" ${shims[@]} " + fi } if conda_exists; then From e9c8dfc197744cace4832d7ed3bfdd644445ff50 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 23 Aug 2021 10:34:26 +0300 Subject: [PATCH 0264/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 4c3a261be3..44e02d8b36 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.4" +version="2.0.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 8b60418361e29d30fbe7ee3133e57f4d351464da Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 23 Aug 2021 10:35:08 +0300 Subject: [PATCH 0265/1324] Update CHANGELOG.md --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e72aea264a..80c414a4ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ ## Version History +## Release 2.0.5 + +* Move man page to location where it can be automatically found by man (#2032) +* Update checksums for CPython 3.10.0rc1 (#2025) +* Remove 3.9.3 (#2022) +* Add CPython 3.10.0rc1(#2023) + ## Release 2.0.4 - Added scripts for rolling releases of Miniforge (#2019) From 44b7da194b5c5462ad0fb39455d7c7da3558e167 Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Mon, 30 Aug 2021 16:39:24 -0400 Subject: [PATCH 0266/1324] Add CPython v3.8.12 (#2043) --- plugins/python-build/share/python-build/3.8.12 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.8.12 diff --git a/plugins/python-build/share/python-build/3.8.12 b/plugins/python-build/share/python-build/3.8.12 new file mode 100644 index 0000000000..7aae84aef6 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.12 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.12" "https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tar.xz#b1d3a76420375343b5e8a22fceb1ac65b77193e9ed27146524f0a9db058728ea" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.12" "https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tgz#316aa33f3b7707d041e73f246efedb297a70898c4b91f127f66dc8d80c596f1a" standard verify_py38 copy_python_gdb ensurepip +fi From c7d8a1c33d191a10733b3326bff53660c4bf41bb Mon Sep 17 00:00:00 2001 From: Kenji Saito Date: Tue, 31 Aug 2021 08:28:26 +0900 Subject: [PATCH 0267/1324] Add CPython 3.9.7 --- plugins/python-build/share/python-build/3.9.7 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.7 diff --git a/plugins/python-build/share/python-build/3.9.7 b/plugins/python-build/share/python-build/3.9.7 new file mode 100644 index 0000000000..3aa1aa2881 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.7 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.7" "https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tar.xz#f8145616e68c00041d1a6399b76387390388f8359581abc24432bb969b5e3c57" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.7" "https://www.python.org/ftp/python/3.9.7/Python-3.9.7.tgz#a838d3f9360d157040142b715db34f0218e535333696a5569dc6f854604eb9d1" standard verify_py39 copy_python_gdb ensurepip +fi From a85875c39e47ec27bcd460519ecb346cd38edd6e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 31 Aug 2021 08:43:56 +0300 Subject: [PATCH 0268/1324] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 80c414a4ff..187050251c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ ## Version History +## Release 2.0.6 +* Add CPython 3.9.7 (#2044) +* Add CPython v3.8.12 (#2043) +* Adapt conda.bash for bash associative array (#2037) + ## Release 2.0.5 * Move man page to location where it can be automatically found by man (#2032) From 2d64fb1cb9e2b8cd699ee0f18bea4fb98f0b07a7 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 31 Aug 2021 08:44:12 +0300 Subject: [PATCH 0269/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 44e02d8b36..230743c7cc 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.5" +version="2.0.6" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 22e1aa6e9d457c3f17d520da1c4012f0f70606d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Fri, 3 Sep 2021 15:56:45 +0200 Subject: [PATCH 0270/1324] Fix build of ossaudiodev in Linux/FreeBSD for Python 3.1 (#2047) With the normal `setup.py`, the installation of the `ossaudiodev` module is skipped under GNU/Linux with newer kernel versions because Python 3.1 appends the major kernel version to the result of `build_ext.get_platform` and later `ossaudiodev` is skipped if the major kernel version is not 2. A similar problem might occur if installing in FreeBSD. This problem may even occur if installing Python 3.1 in a Docker image of an old OS (e.g. prehistoric Debian or CentOS), because the major kernel version is still the one of the host system. The solution is to use `str.startswith` and only check that the platform starts with 'linux' or 'freebsd'. --- .../patches/3.1.0/Python-3.1/000_patch-setup.py.diff | 10 ++++++++++ .../3.1.1/Python-3.1.1/000_patch-setup.py.diff | 10 ++++++++++ .../3.1.2/Python-3.1.2/000_patch-setup.py.diff | 10 ++++++++++ .../3.1.3/Python-3.1.3/000_patch-setup.py.diff | 11 ++++++++++- .../3.1.4/Python-3.1.4/000_patch-setup.py.diff | 12 ++++++++++++ .../3.1.5/Python-3.1.5/000_patch-setup.py.diff | 12 ++++++++++++ 6 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff diff --git a/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff index fd23a80d95..ad886b8ac2 100644 --- a/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.0/Python-3.1/000_patch-setup.py.diff @@ -43,3 +43,13 @@ diff -r -u ../Python-3.1/setup.py ./setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. +@@ -1203,8 +1203,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff index fd23a80d95..ad886b8ac2 100644 --- a/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.1/Python-3.1.1/000_patch-setup.py.diff @@ -43,3 +43,13 @@ diff -r -u ../Python-3.1/setup.py ./setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. +@@ -1203,8 +1203,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff index fd23a80d95..b57d888d95 100644 --- a/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.2/Python-3.1.2/000_patch-setup.py.diff @@ -43,3 +43,13 @@ diff -r -u ../Python-3.1/setup.py ./setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. +@@ -1207,8 +1207,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff index bf60166bac..4edf36a4d8 100644 --- a/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/3.1.3/Python-3.1.3/000_patch-setup.py.diff @@ -44,4 +44,13 @@ diff -r -u setup.py setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. - +@@ -1321,8 +1321,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff new file mode 100644 index 0000000000..ae14c686ce --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.4/Python-3.1.4/000_patch-setup.py.diff @@ -0,0 +1,12 @@ +--- setup.py.orig 2012-04-10 01:25:37.000000000 +0200 ++++ setup.py 2021-09-03 10:16:58.575042300 +0200 +@@ -1344,8 +1344,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff new file mode 100644 index 0000000000..ae14c686ce --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.1.5/Python-3.1.5/000_patch-setup.py.diff @@ -0,0 +1,12 @@ +--- setup.py.orig 2012-04-10 01:25:37.000000000 +0200 ++++ setup.py 2021-09-03 10:16:58.575042300 +0200 +@@ -1344,8 +1344,7 @@ + # End multiprocessing + + # Platform-specific libraries +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') From f7450587dcb605f64e9f6085c795c754193ca2a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Sun, 5 Sep 2021 20:54:57 +0200 Subject: [PATCH 0271/1324] Fix build of ossaudiodev in Linux/FreeBSD for Python 2.6 (#2049) This is essentially the same fix as in pull request #2047, but it is applied from Python 2.6.6 to 2.6.9, and for `ossaudiodev` as well as the (deprecated) `linuxaudiodev`. --- .../2.6.6/Python-2.6.6/000_patch-setup.py.diff | 18 +++++++++++++++++- .../2.6.7/Python-2.6.7/000_patch-setup.py.diff | 18 +++++++++++++++++- .../2.6.8/Python-2.6.8/000_patch-setup.py.diff | 18 +++++++++++++++++- .../2.6.9/Python-2.6.9/000_patch-setup.py.diff | 18 +++++++++++++++++- 4 files changed, 68 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/patches/2.6.6/Python-2.6.6/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.6/Python-2.6.6/000_patch-setup.py.diff index bf60166bac..322cf298c3 100644 --- a/plugins/python-build/share/python-build/patches/2.6.6/Python-2.6.6/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/2.6.6/Python-2.6.6/000_patch-setup.py.diff @@ -44,4 +44,20 @@ diff -r -u setup.py setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. - +@@ -1443,14 +1443,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.7/Python-2.6.7/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.7/Python-2.6.7/000_patch-setup.py.diff index bf60166bac..322cf298c3 100644 --- a/plugins/python-build/share/python-build/patches/2.6.7/Python-2.6.7/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/2.6.7/Python-2.6.7/000_patch-setup.py.diff @@ -44,4 +44,20 @@ diff -r -u setup.py setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. - +@@ -1443,14 +1443,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.8/Python-2.6.8/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.8/Python-2.6.8/000_patch-setup.py.diff index bf60166bac..322cf298c3 100644 --- a/plugins/python-build/share/python-build/patches/2.6.8/Python-2.6.8/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/2.6.8/Python-2.6.8/000_patch-setup.py.diff @@ -44,4 +44,20 @@ diff -r -u setup.py setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. - +@@ -1443,14 +1443,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.9/Python-2.6.9/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.9/Python-2.6.9/000_patch-setup.py.diff index bf60166bac..322cf298c3 100644 --- a/plugins/python-build/share/python-build/patches/2.6.9/Python-2.6.9/000_patch-setup.py.diff +++ b/plugins/python-build/share/python-build/patches/2.6.9/Python-2.6.9/000_patch-setup.py.diff @@ -44,4 +44,20 @@ diff -r -u setup.py setup.py # Add paths specified in the environment variables LDFLAGS and # CPPFLAGS for header and library files. - +@@ -1443,14 +1443,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') From 9df4524c796dcea076bb94a62f1ea832c289ffd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=ADctor=20Molina=20Garc=C3=ADa?= Date: Mon, 6 Sep 2021 21:37:38 +0200 Subject: [PATCH 0272/1324] Add missing Python 2.6.x definitions and patches (#2051) --- plugins/python-build/share/python-build/2.6.0 | 4 + plugins/python-build/share/python-build/2.6.1 | 4 + plugins/python-build/share/python-build/2.6.2 | 4 + plugins/python-build/share/python-build/2.6.3 | 4 + plugins/python-build/share/python-build/2.6.4 | 4 + plugins/python-build/share/python-build/2.6.5 | 4 + .../2.6.0/Python-2.6/000_patch-setup.py.diff | 71 ++++++++++++++ .../2.6.0/Python-2.6/002_readline63.patch | 61 ++++++++++++ .../patches/2.6.0/Python-2.6/003_tk86.patch | 12 +++ .../Python-2.6/010_ssl_no_ssl2_no_ssl3.patch | 95 +++++++++++++++++++ .../Python-2.6.1/000_patch-setup.py.diff | 71 ++++++++++++++ .../2.6.1/Python-2.6.1/002_readline63.patch | 61 ++++++++++++ .../patches/2.6.1/Python-2.6.1/003_tk86.patch | 12 +++ .../010_ssl_no_ssl2_no_ssl3.patch | 95 +++++++++++++++++++ .../Python-2.6.2/000_patch-setup.py.diff | 71 ++++++++++++++ .../2.6.2/Python-2.6.2/002_readline63.patch | 61 ++++++++++++ .../patches/2.6.2/Python-2.6.2/003_tk86.patch | 12 +++ .../010_ssl_no_ssl2_no_ssl3.patch | 95 +++++++++++++++++++ .../Python-2.6.3/000_patch-setup.py.diff | 71 ++++++++++++++ .../2.6.3/Python-2.6.3/002_readline63.patch | 61 ++++++++++++ .../patches/2.6.3/Python-2.6.3/003_tk86.patch | 12 +++ .../010_ssl_no_ssl2_no_ssl3.patch | 95 +++++++++++++++++++ .../Python-2.6.4/000_patch-setup.py.diff | 71 ++++++++++++++ .../2.6.4/Python-2.6.4/002_readline63.patch | 61 ++++++++++++ .../patches/2.6.4/Python-2.6.4/003_tk86.patch | 12 +++ .../010_ssl_no_ssl2_no_ssl3.patch | 95 +++++++++++++++++++ .../Python-2.6.5/000_patch-setup.py.diff | 71 ++++++++++++++ .../2.6.5/Python-2.6.5/002_readline63.patch | 61 ++++++++++++ .../patches/2.6.5/Python-2.6.5/003_tk86.patch | 12 +++ .../010_ssl_no_ssl2_no_ssl3.patch | 95 +++++++++++++++++++ 30 files changed, 1458 insertions(+) create mode 100644 plugins/python-build/share/python-build/2.6.0 create mode 100644 plugins/python-build/share/python-build/2.6.1 create mode 100644 plugins/python-build/share/python-build/2.6.2 create mode 100644 plugins/python-build/share/python-build/2.6.3 create mode 100644 plugins/python-build/share/python-build/2.6.4 create mode 100644 plugins/python-build/share/python-build/2.6.5 create mode 100644 plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/002_readline63.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/003_tk86.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/010_ssl_no_ssl2_no_ssl3.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/002_readline63.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/003_tk86.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/010_ssl_no_ssl2_no_ssl3.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/002_readline63.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/003_tk86.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/010_ssl_no_ssl2_no_ssl3.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/002_readline63.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/003_tk86.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/010_ssl_no_ssl2_no_ssl3.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/002_readline63.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/003_tk86.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/010_ssl_no_ssl2_no_ssl3.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/000_patch-setup.py.diff create mode 100644 plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/002_readline63.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/003_tk86.patch create mode 100644 plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/010_ssl_no_ssl2_no_ssl3.patch diff --git a/plugins/python-build/share/python-build/2.6.0 b/plugins/python-build/share/python-build/2.6.0 new file mode 100644 index 0000000000..484cf21e74 --- /dev/null +++ b/plugins/python-build/share/python-build/2.6.0 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6" "https://www.python.org/ftp/python/2.6/Python-2.6.tgz#7c2f21a968a737a59ed0729f4b1dc154dc3aa183c20be96055186fe43c6742d0" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.1 b/plugins/python-build/share/python-build/2.6.1 new file mode 100644 index 0000000000..34d75a5982 --- /dev/null +++ b/plugins/python-build/share/python-build/2.6.1 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.1" "https://www.python.org/ftp/python/2.6.1/Python-2.6.1.tgz#fb65e93678e1327e3e8559cc56e1e00ed8c07162b21287a3502677892c5c515c" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.2 b/plugins/python-build/share/python-build/2.6.2 new file mode 100644 index 0000000000..2a90a003b6 --- /dev/null +++ b/plugins/python-build/share/python-build/2.6.2 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.2" "https://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz#e37ecdf249f248f4fea227adbca09c778670b64fcb5e45947ec3e093cbc12c86" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.3 b/plugins/python-build/share/python-build/2.6.3 new file mode 100644 index 0000000000..d410c0a178 --- /dev/null +++ b/plugins/python-build/share/python-build/2.6.3 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.3" "https://www.python.org/ftp/python/2.6.3/Python-2.6.3.tgz#a71b55540690425fd82ab00819aeb92c1b23cbb4730a0ccd2e25c833b22a812e" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.4 b/plugins/python-build/share/python-build/2.6.4 new file mode 100644 index 0000000000..8b0e8beeea --- /dev/null +++ b/plugins/python-build/share/python-build/2.6.4 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.4" "https://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz#1a25a47506e4165704cfe2b07c0a064b0b5762a2d18b8fbdad5af688aeacd252" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.5 b/plugins/python-build/share/python-build/2.6.5 new file mode 100644 index 0000000000..9955698944 --- /dev/null +++ b/plugins/python-build/share/python-build/2.6.5 @@ -0,0 +1,4 @@ +#require_gcc +install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.5" "https://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz#b331dafdce3361834fee783795d4f68ae7cf7d379e9137c2d8e8531cea615ede" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/000_patch-setup.py.diff new file mode 100644 index 0000000000..98646bad61 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/000_patch-setup.py.diff @@ -0,0 +1,71 @@ + +# HG changeset patch +# User Barry Warsaw +# Date 1302190091 14400 +# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa +# Parent 2e4cdaffe493e879fb5367a4aa454491de451137 +Backport for Python 2.7 of issue 11715 support for building Python on +multiarch Debian/Ubuntu. + +diff -r -u setup.py setup.py +--- setup.py.orig ++++ setup.py +@@ -15,6 +15,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 = [] +@@ -308,10 +309,33 @@ class PyBuildExt(build_ext): + 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. +@@ -1308,14 +1332,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/002_readline63.patch b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/002_readline63.patch new file mode 100644 index 0000000000..5bb7245c8c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/002_readline63.patch @@ -0,0 +1,61 @@ +diff -r -u ../Python-2.6.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-2.6.orig/Modules/readline.c 2013-11-10 16:36:41.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:17:48.643305752 +0900 +@@ -174,8 +174,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -647,14 +646,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -749,7 +756,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + Py_XDECREF(begidx); + Py_XDECREF(endidx); +@@ -783,12 +790,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + rl_completer_word_break_characters = + strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); diff --git a/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/003_tk86.patch b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/003_tk86.patch new file mode 100644 index 0000000000..d68848fc28 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/003_tk86.patch @@ -0,0 +1,12 @@ +diff -r -u ../Python-2.6.orig/setup.py ./setup.py +--- ../Python-2.6.orig/setup.py 2013-10-30 00:04:39.000000000 +0900 ++++ ./setup.py 2014-04-03 22:28:49.122061684 +0900 +@@ -1541,7 +1541,7 @@ + # The versions with dots are used on Unix, and the versions without + # dots on Windows, for detection by cygwin. + tcllib = tklib = tcl_includes = tk_includes = None +- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', ++ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '82', '8.1', '81', '8.0', '80']: + tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) + tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/010_ssl_no_ssl2_no_ssl3.patch b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/010_ssl_no_ssl2_no_ssl3.patch new file mode 100644 index 0000000000..c16b5baa0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.0/Python-2.6/010_ssl_no_ssl2_no_ssl3.patch @@ -0,0 +1,95 @@ +diff -r -u ../Python-2.6.4.orig/Lib/ssl.py ./Lib/ssl.py +--- ../Python-2.6.4.orig/Lib/ssl.py 2012-04-10 15:32:06.000000000 +0000 ++++ ./Lib/ssl.py 2015-12-18 14:46:36.487188331 +0000 +@@ -61,18 +61,24 @@ + + from _ssl import SSLError + from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +-from _ssl import RAND_status, RAND_egd, RAND_add +-from _ssl import \ +- SSL_ERROR_ZERO_RETURN, \ +- SSL_ERROR_WANT_READ, \ +- SSL_ERROR_WANT_WRITE, \ +- SSL_ERROR_WANT_X509_LOOKUP, \ +- SSL_ERROR_SYSCALL, \ +- SSL_ERROR_SSL, \ +- SSL_ERROR_WANT_CONNECT, \ +- SSL_ERROR_EOF, \ +- SSL_ERROR_INVALID_ERROR_CODE ++from _ssl import RAND_status, RAND_add ++try: ++ from _ssl import RAND_egd ++except ImportError: ++ # LibreSSL does not provide RAND_egd ++ pass ++ ++def _import_symbols(prefix): ++ for n in dir(_ssl): ++ if n.startswith(prefix): ++ globals()[n] = getattr(_ssl, n) ++ ++_import_symbols('OP_') ++_import_symbols('ALERT_DESCRIPTION_') ++_import_symbols('SSL_ERROR_') ++_import_symbols('PROTOCOL_') ++ ++_PROTOCOL_NAMES = dict([(value, name) for name, value in globals().items() if name.startswith('PROTOCOL_')]) + + from socket import socket, _fileobject + from socket import getnameinfo as _getnameinfo +@@ -394,7 +400,7 @@ + d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] + return base64.decodestring(d) + +-def get_server_certificate (addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None): ++def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): + + """Retrieve the certificate from the server at the specified address, + and return it as a PEM-encoded string. +diff -r -u ../Python-2.6.4.orig/Modules/_ssl.c ./Modules/_ssl.c +--- ../Python-2.6.4.orig/Modules/_ssl.c 2012-04-10 15:32:09.000000000 +0000 ++++ ./Modules/_ssl.c 2015-12-18 14:45:30.419597074 +0000 +@@ -61,8 +61,12 @@ + }; + + enum py_ssl_version { ++#ifndef OPENSSL_NO_SSL2 + PY_SSL_VERSION_SSL2, ++#endif ++#ifndef OPENSSL_NO_SSL3 + PY_SSL_VERSION_SSL3, ++#endif + PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS1, + }; +@@ -298,10 +302,14 @@ + PySSL_BEGIN_ALLOW_THREADS + if (proto_version == PY_SSL_VERSION_TLS1) + self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */ ++#ifndef OPENSSL_NO_SSL3 + else if (proto_version == PY_SSL_VERSION_SSL3) + self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */ ++#endif ++#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 +@@ -1627,10 +1635,14 @@ + PY_SSL_CERT_REQUIRED); + + /* protocol versions */ ++#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); ++#endif ++#ifndef OPENSSL_NO_SSL3 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", + PY_SSL_VERSION_SSL3); ++#endif + PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", + PY_SSL_VERSION_SSL23); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", diff --git a/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/000_patch-setup.py.diff new file mode 100644 index 0000000000..d47a238e51 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/000_patch-setup.py.diff @@ -0,0 +1,71 @@ + +# HG changeset patch +# User Barry Warsaw +# Date 1302190091 14400 +# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa +# Parent 2e4cdaffe493e879fb5367a4aa454491de451137 +Backport for Python 2.7 of issue 11715 support for building Python on +multiarch Debian/Ubuntu. + +diff -r -u setup.py setup.py +--- setup.py.orig ++++ setup.py +@@ -15,6 +15,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 = [] +@@ -308,10 +309,33 @@ class PyBuildExt(build_ext): + 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. +@@ -1310,14 +1334,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/002_readline63.patch b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/002_readline63.patch new file mode 100644 index 0000000000..9f4feff88e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/002_readline63.patch @@ -0,0 +1,61 @@ +diff -r -u ../Python-2.6.4.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-2.6.4.orig/Modules/readline.c 2013-11-10 16:36:41.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:17:48.643305752 +0900 +@@ -178,8 +178,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -655,14 +655,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -757,7 +757,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + Py_XDECREF(begidx); + Py_XDECREF(endidx); +@@ -791,12 +791,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + rl_completer_word_break_characters = + strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); diff --git a/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/003_tk86.patch b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/003_tk86.patch new file mode 100644 index 0000000000..83dfc421ff --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/003_tk86.patch @@ -0,0 +1,12 @@ +diff -r -u ../Python-2.6.1.orig/setup.py ./setup.py +--- ../Python-2.6.1.orig/setup.py 2013-10-30 00:04:39.000000000 +0900 ++++ ./setup.py 2014-04-03 22:28:49.122061684 +0900 +@@ -1543,7 +1543,7 @@ + # The versions with dots are used on Unix, and the versions without + # dots on Windows, for detection by cygwin. + tcllib = tklib = tcl_includes = tk_includes = None +- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', ++ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '82', '8.1', '81', '8.0', '80']: + tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) + tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/010_ssl_no_ssl2_no_ssl3.patch b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/010_ssl_no_ssl2_no_ssl3.patch new file mode 100644 index 0000000000..c16b5baa0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.1/Python-2.6.1/010_ssl_no_ssl2_no_ssl3.patch @@ -0,0 +1,95 @@ +diff -r -u ../Python-2.6.4.orig/Lib/ssl.py ./Lib/ssl.py +--- ../Python-2.6.4.orig/Lib/ssl.py 2012-04-10 15:32:06.000000000 +0000 ++++ ./Lib/ssl.py 2015-12-18 14:46:36.487188331 +0000 +@@ -61,18 +61,24 @@ + + from _ssl import SSLError + from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +-from _ssl import RAND_status, RAND_egd, RAND_add +-from _ssl import \ +- SSL_ERROR_ZERO_RETURN, \ +- SSL_ERROR_WANT_READ, \ +- SSL_ERROR_WANT_WRITE, \ +- SSL_ERROR_WANT_X509_LOOKUP, \ +- SSL_ERROR_SYSCALL, \ +- SSL_ERROR_SSL, \ +- SSL_ERROR_WANT_CONNECT, \ +- SSL_ERROR_EOF, \ +- SSL_ERROR_INVALID_ERROR_CODE ++from _ssl import RAND_status, RAND_add ++try: ++ from _ssl import RAND_egd ++except ImportError: ++ # LibreSSL does not provide RAND_egd ++ pass ++ ++def _import_symbols(prefix): ++ for n in dir(_ssl): ++ if n.startswith(prefix): ++ globals()[n] = getattr(_ssl, n) ++ ++_import_symbols('OP_') ++_import_symbols('ALERT_DESCRIPTION_') ++_import_symbols('SSL_ERROR_') ++_import_symbols('PROTOCOL_') ++ ++_PROTOCOL_NAMES = dict([(value, name) for name, value in globals().items() if name.startswith('PROTOCOL_')]) + + from socket import socket, _fileobject + from socket import getnameinfo as _getnameinfo +@@ -394,7 +400,7 @@ + d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] + return base64.decodestring(d) + +-def get_server_certificate (addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None): ++def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): + + """Retrieve the certificate from the server at the specified address, + and return it as a PEM-encoded string. +diff -r -u ../Python-2.6.4.orig/Modules/_ssl.c ./Modules/_ssl.c +--- ../Python-2.6.4.orig/Modules/_ssl.c 2012-04-10 15:32:09.000000000 +0000 ++++ ./Modules/_ssl.c 2015-12-18 14:45:30.419597074 +0000 +@@ -61,8 +61,12 @@ + }; + + enum py_ssl_version { ++#ifndef OPENSSL_NO_SSL2 + PY_SSL_VERSION_SSL2, ++#endif ++#ifndef OPENSSL_NO_SSL3 + PY_SSL_VERSION_SSL3, ++#endif + PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS1, + }; +@@ -298,10 +302,14 @@ + PySSL_BEGIN_ALLOW_THREADS + if (proto_version == PY_SSL_VERSION_TLS1) + self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */ ++#ifndef OPENSSL_NO_SSL3 + else if (proto_version == PY_SSL_VERSION_SSL3) + self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */ ++#endif ++#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 +@@ -1627,10 +1635,14 @@ + PY_SSL_CERT_REQUIRED); + + /* protocol versions */ ++#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); ++#endif ++#ifndef OPENSSL_NO_SSL3 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", + PY_SSL_VERSION_SSL3); ++#endif + PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", + PY_SSL_VERSION_SSL23); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", diff --git a/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/000_patch-setup.py.diff new file mode 100644 index 0000000000..076ac889bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/000_patch-setup.py.diff @@ -0,0 +1,71 @@ + +# HG changeset patch +# User Barry Warsaw +# Date 1302190091 14400 +# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa +# Parent 2e4cdaffe493e879fb5367a4aa454491de451137 +Backport for Python 2.7 of issue 11715 support for building Python on +multiarch Debian/Ubuntu. + +diff -r -u setup.py setup.py +--- setup.py.orig ++++ setup.py +@@ -15,6 +15,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 = [] +@@ -308,10 +309,33 @@ class PyBuildExt(build_ext): + 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. +@@ -1331,14 +1355,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/002_readline63.patch b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/002_readline63.patch new file mode 100644 index 0000000000..852f3ab454 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/002_readline63.patch @@ -0,0 +1,61 @@ +diff -r -u ../Python-2.6.4.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-2.6.4.orig/Modules/readline.c 2013-11-10 16:36:41.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:17:48.643305752 +0900 +@@ -178,8 +178,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -655,14 +654,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -757,7 +764,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + Py_XDECREF(begidx); + Py_XDECREF(endidx); +@@ -791,12 +798,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + rl_completer_word_break_characters = + strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); diff --git a/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/003_tk86.patch b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/003_tk86.patch new file mode 100644 index 0000000000..cb4ed2de53 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/003_tk86.patch @@ -0,0 +1,12 @@ +diff -r -u ../Python-2.6.2.orig/setup.py ./setup.py +--- ../Python-2.6.2.orig/setup.py 2013-10-30 00:04:39.000000000 +0900 ++++ ./setup.py 2014-04-03 22:28:49.122061684 +0900 +@@ -1564,7 +1564,7 @@ + # The versions with dots are used on Unix, and the versions without + # dots on Windows, for detection by cygwin. + tcllib = tklib = tcl_includes = tk_includes = None +- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', ++ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '82', '8.1', '81', '8.0', '80']: + tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) + tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/010_ssl_no_ssl2_no_ssl3.patch b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/010_ssl_no_ssl2_no_ssl3.patch new file mode 100644 index 0000000000..c16b5baa0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.2/Python-2.6.2/010_ssl_no_ssl2_no_ssl3.patch @@ -0,0 +1,95 @@ +diff -r -u ../Python-2.6.4.orig/Lib/ssl.py ./Lib/ssl.py +--- ../Python-2.6.4.orig/Lib/ssl.py 2012-04-10 15:32:06.000000000 +0000 ++++ ./Lib/ssl.py 2015-12-18 14:46:36.487188331 +0000 +@@ -61,18 +61,24 @@ + + from _ssl import SSLError + from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +-from _ssl import RAND_status, RAND_egd, RAND_add +-from _ssl import \ +- SSL_ERROR_ZERO_RETURN, \ +- SSL_ERROR_WANT_READ, \ +- SSL_ERROR_WANT_WRITE, \ +- SSL_ERROR_WANT_X509_LOOKUP, \ +- SSL_ERROR_SYSCALL, \ +- SSL_ERROR_SSL, \ +- SSL_ERROR_WANT_CONNECT, \ +- SSL_ERROR_EOF, \ +- SSL_ERROR_INVALID_ERROR_CODE ++from _ssl import RAND_status, RAND_add ++try: ++ from _ssl import RAND_egd ++except ImportError: ++ # LibreSSL does not provide RAND_egd ++ pass ++ ++def _import_symbols(prefix): ++ for n in dir(_ssl): ++ if n.startswith(prefix): ++ globals()[n] = getattr(_ssl, n) ++ ++_import_symbols('OP_') ++_import_symbols('ALERT_DESCRIPTION_') ++_import_symbols('SSL_ERROR_') ++_import_symbols('PROTOCOL_') ++ ++_PROTOCOL_NAMES = dict([(value, name) for name, value in globals().items() if name.startswith('PROTOCOL_')]) + + from socket import socket, _fileobject + from socket import getnameinfo as _getnameinfo +@@ -394,7 +400,7 @@ + d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] + return base64.decodestring(d) + +-def get_server_certificate (addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None): ++def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): + + """Retrieve the certificate from the server at the specified address, + and return it as a PEM-encoded string. +diff -r -u ../Python-2.6.4.orig/Modules/_ssl.c ./Modules/_ssl.c +--- ../Python-2.6.4.orig/Modules/_ssl.c 2012-04-10 15:32:09.000000000 +0000 ++++ ./Modules/_ssl.c 2015-12-18 14:45:30.419597074 +0000 +@@ -61,8 +61,12 @@ + }; + + enum py_ssl_version { ++#ifndef OPENSSL_NO_SSL2 + PY_SSL_VERSION_SSL2, ++#endif ++#ifndef OPENSSL_NO_SSL3 + PY_SSL_VERSION_SSL3, ++#endif + PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS1, + }; +@@ -298,10 +302,14 @@ + PySSL_BEGIN_ALLOW_THREADS + if (proto_version == PY_SSL_VERSION_TLS1) + self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */ ++#ifndef OPENSSL_NO_SSL3 + else if (proto_version == PY_SSL_VERSION_SSL3) + self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */ ++#endif ++#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 +@@ -1627,10 +1635,14 @@ + PY_SSL_CERT_REQUIRED); + + /* protocol versions */ ++#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); ++#endif ++#ifndef OPENSSL_NO_SSL3 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", + PY_SSL_VERSION_SSL3); ++#endif + PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", + PY_SSL_VERSION_SSL23); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", diff --git a/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/000_patch-setup.py.diff new file mode 100644 index 0000000000..076ac889bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/000_patch-setup.py.diff @@ -0,0 +1,71 @@ + +# HG changeset patch +# User Barry Warsaw +# Date 1302190091 14400 +# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa +# Parent 2e4cdaffe493e879fb5367a4aa454491de451137 +Backport for Python 2.7 of issue 11715 support for building Python on +multiarch Debian/Ubuntu. + +diff -r -u setup.py setup.py +--- setup.py.orig ++++ setup.py +@@ -15,6 +15,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 = [] +@@ -308,10 +309,33 @@ class PyBuildExt(build_ext): + 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. +@@ -1331,14 +1355,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/002_readline63.patch b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/002_readline63.patch new file mode 100644 index 0000000000..852f3ab454 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/002_readline63.patch @@ -0,0 +1,61 @@ +diff -r -u ../Python-2.6.4.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-2.6.4.orig/Modules/readline.c 2013-11-10 16:36:41.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:17:48.643305752 +0900 +@@ -178,8 +178,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -655,14 +654,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -757,7 +764,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + Py_XDECREF(begidx); + Py_XDECREF(endidx); +@@ -791,12 +798,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + rl_completer_word_break_characters = + strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); diff --git a/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/003_tk86.patch b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/003_tk86.patch new file mode 100644 index 0000000000..60367215c3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/003_tk86.patch @@ -0,0 +1,12 @@ +diff -r -u ../Python-2.6.4.orig/setup.py ./setup.py +--- ../Python-2.6.4.orig/setup.py 2013-10-30 00:04:39.000000000 +0900 ++++ ./setup.py 2014-04-03 22:28:49.122061684 +0900 +@@ -1573,7 +1573,7 @@ + # The versions with dots are used on Unix, and the versions without + # dots on Windows, for detection by cygwin. + tcllib = tklib = tcl_includes = tk_includes = None +- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', ++ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '82', '8.1', '81', '8.0', '80']: + tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) + tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/010_ssl_no_ssl2_no_ssl3.patch b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/010_ssl_no_ssl2_no_ssl3.patch new file mode 100644 index 0000000000..c16b5baa0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.3/Python-2.6.3/010_ssl_no_ssl2_no_ssl3.patch @@ -0,0 +1,95 @@ +diff -r -u ../Python-2.6.4.orig/Lib/ssl.py ./Lib/ssl.py +--- ../Python-2.6.4.orig/Lib/ssl.py 2012-04-10 15:32:06.000000000 +0000 ++++ ./Lib/ssl.py 2015-12-18 14:46:36.487188331 +0000 +@@ -61,18 +61,24 @@ + + from _ssl import SSLError + from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +-from _ssl import RAND_status, RAND_egd, RAND_add +-from _ssl import \ +- SSL_ERROR_ZERO_RETURN, \ +- SSL_ERROR_WANT_READ, \ +- SSL_ERROR_WANT_WRITE, \ +- SSL_ERROR_WANT_X509_LOOKUP, \ +- SSL_ERROR_SYSCALL, \ +- SSL_ERROR_SSL, \ +- SSL_ERROR_WANT_CONNECT, \ +- SSL_ERROR_EOF, \ +- SSL_ERROR_INVALID_ERROR_CODE ++from _ssl import RAND_status, RAND_add ++try: ++ from _ssl import RAND_egd ++except ImportError: ++ # LibreSSL does not provide RAND_egd ++ pass ++ ++def _import_symbols(prefix): ++ for n in dir(_ssl): ++ if n.startswith(prefix): ++ globals()[n] = getattr(_ssl, n) ++ ++_import_symbols('OP_') ++_import_symbols('ALERT_DESCRIPTION_') ++_import_symbols('SSL_ERROR_') ++_import_symbols('PROTOCOL_') ++ ++_PROTOCOL_NAMES = dict([(value, name) for name, value in globals().items() if name.startswith('PROTOCOL_')]) + + from socket import socket, _fileobject + from socket import getnameinfo as _getnameinfo +@@ -394,7 +400,7 @@ + d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] + return base64.decodestring(d) + +-def get_server_certificate (addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None): ++def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): + + """Retrieve the certificate from the server at the specified address, + and return it as a PEM-encoded string. +diff -r -u ../Python-2.6.4.orig/Modules/_ssl.c ./Modules/_ssl.c +--- ../Python-2.6.4.orig/Modules/_ssl.c 2012-04-10 15:32:09.000000000 +0000 ++++ ./Modules/_ssl.c 2015-12-18 14:45:30.419597074 +0000 +@@ -61,8 +61,12 @@ + }; + + enum py_ssl_version { ++#ifndef OPENSSL_NO_SSL2 + PY_SSL_VERSION_SSL2, ++#endif ++#ifndef OPENSSL_NO_SSL3 + PY_SSL_VERSION_SSL3, ++#endif + PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS1, + }; +@@ -298,10 +302,14 @@ + PySSL_BEGIN_ALLOW_THREADS + if (proto_version == PY_SSL_VERSION_TLS1) + self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */ ++#ifndef OPENSSL_NO_SSL3 + else if (proto_version == PY_SSL_VERSION_SSL3) + self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */ ++#endif ++#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 +@@ -1627,10 +1635,14 @@ + PY_SSL_CERT_REQUIRED); + + /* protocol versions */ ++#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); ++#endif ++#ifndef OPENSSL_NO_SSL3 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", + PY_SSL_VERSION_SSL3); ++#endif + PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", + PY_SSL_VERSION_SSL23); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", diff --git a/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/000_patch-setup.py.diff new file mode 100644 index 0000000000..076ac889bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/000_patch-setup.py.diff @@ -0,0 +1,71 @@ + +# HG changeset patch +# User Barry Warsaw +# Date 1302190091 14400 +# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa +# Parent 2e4cdaffe493e879fb5367a4aa454491de451137 +Backport for Python 2.7 of issue 11715 support for building Python on +multiarch Debian/Ubuntu. + +diff -r -u setup.py setup.py +--- setup.py.orig ++++ setup.py +@@ -15,6 +15,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 = [] +@@ -308,10 +309,33 @@ class PyBuildExt(build_ext): + 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. +@@ -1331,14 +1355,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/002_readline63.patch b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/002_readline63.patch new file mode 100644 index 0000000000..852f3ab454 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/002_readline63.patch @@ -0,0 +1,61 @@ +diff -r -u ../Python-2.6.4.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-2.6.4.orig/Modules/readline.c 2013-11-10 16:36:41.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:17:48.643305752 +0900 +@@ -178,8 +178,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -655,14 +654,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -757,7 +764,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + Py_XDECREF(begidx); + Py_XDECREF(endidx); +@@ -791,12 +798,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + rl_completer_word_break_characters = + strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); diff --git a/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/003_tk86.patch b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/003_tk86.patch new file mode 100644 index 0000000000..60367215c3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/003_tk86.patch @@ -0,0 +1,12 @@ +diff -r -u ../Python-2.6.4.orig/setup.py ./setup.py +--- ../Python-2.6.4.orig/setup.py 2013-10-30 00:04:39.000000000 +0900 ++++ ./setup.py 2014-04-03 22:28:49.122061684 +0900 +@@ -1573,7 +1573,7 @@ + # The versions with dots are used on Unix, and the versions without + # dots on Windows, for detection by cygwin. + tcllib = tklib = tcl_includes = tk_includes = None +- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', ++ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '82', '8.1', '81', '8.0', '80']: + tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) + tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/010_ssl_no_ssl2_no_ssl3.patch b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/010_ssl_no_ssl2_no_ssl3.patch new file mode 100644 index 0000000000..c16b5baa0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.4/Python-2.6.4/010_ssl_no_ssl2_no_ssl3.patch @@ -0,0 +1,95 @@ +diff -r -u ../Python-2.6.4.orig/Lib/ssl.py ./Lib/ssl.py +--- ../Python-2.6.4.orig/Lib/ssl.py 2012-04-10 15:32:06.000000000 +0000 ++++ ./Lib/ssl.py 2015-12-18 14:46:36.487188331 +0000 +@@ -61,18 +61,24 @@ + + from _ssl import SSLError + from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +-from _ssl import RAND_status, RAND_egd, RAND_add +-from _ssl import \ +- SSL_ERROR_ZERO_RETURN, \ +- SSL_ERROR_WANT_READ, \ +- SSL_ERROR_WANT_WRITE, \ +- SSL_ERROR_WANT_X509_LOOKUP, \ +- SSL_ERROR_SYSCALL, \ +- SSL_ERROR_SSL, \ +- SSL_ERROR_WANT_CONNECT, \ +- SSL_ERROR_EOF, \ +- SSL_ERROR_INVALID_ERROR_CODE ++from _ssl import RAND_status, RAND_add ++try: ++ from _ssl import RAND_egd ++except ImportError: ++ # LibreSSL does not provide RAND_egd ++ pass ++ ++def _import_symbols(prefix): ++ for n in dir(_ssl): ++ if n.startswith(prefix): ++ globals()[n] = getattr(_ssl, n) ++ ++_import_symbols('OP_') ++_import_symbols('ALERT_DESCRIPTION_') ++_import_symbols('SSL_ERROR_') ++_import_symbols('PROTOCOL_') ++ ++_PROTOCOL_NAMES = dict([(value, name) for name, value in globals().items() if name.startswith('PROTOCOL_')]) + + from socket import socket, _fileobject + from socket import getnameinfo as _getnameinfo +@@ -394,7 +400,7 @@ + d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] + return base64.decodestring(d) + +-def get_server_certificate (addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None): ++def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): + + """Retrieve the certificate from the server at the specified address, + and return it as a PEM-encoded string. +diff -r -u ../Python-2.6.4.orig/Modules/_ssl.c ./Modules/_ssl.c +--- ../Python-2.6.4.orig/Modules/_ssl.c 2012-04-10 15:32:09.000000000 +0000 ++++ ./Modules/_ssl.c 2015-12-18 14:45:30.419597074 +0000 +@@ -61,8 +61,12 @@ + }; + + enum py_ssl_version { ++#ifndef OPENSSL_NO_SSL2 + PY_SSL_VERSION_SSL2, ++#endif ++#ifndef OPENSSL_NO_SSL3 + PY_SSL_VERSION_SSL3, ++#endif + PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS1, + }; +@@ -298,10 +302,14 @@ + PySSL_BEGIN_ALLOW_THREADS + if (proto_version == PY_SSL_VERSION_TLS1) + self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */ ++#ifndef OPENSSL_NO_SSL3 + else if (proto_version == PY_SSL_VERSION_SSL3) + self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */ ++#endif ++#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 +@@ -1627,10 +1635,14 @@ + PY_SSL_CERT_REQUIRED); + + /* protocol versions */ ++#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); ++#endif ++#ifndef OPENSSL_NO_SSL3 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", + PY_SSL_VERSION_SSL3); ++#endif + PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", + PY_SSL_VERSION_SSL23); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", diff --git a/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/000_patch-setup.py.diff b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/000_patch-setup.py.diff new file mode 100644 index 0000000000..1c3852d1c3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/000_patch-setup.py.diff @@ -0,0 +1,71 @@ + +# HG changeset patch +# User Barry Warsaw +# Date 1302190091 14400 +# Node ID bd0f73a9538e05f526feaf05821e68bdcff498fa +# Parent 2e4cdaffe493e879fb5367a4aa454491de451137 +Backport for Python 2.7 of issue 11715 support for building Python on +multiarch Debian/Ubuntu. + +diff -r -u setup.py setup.py +--- setup.py.orig ++++ setup.py +@@ -15,6 +15,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 = [] +@@ -308,10 +309,33 @@ class PyBuildExt(build_ext): + 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. +@@ -1339,14 +1363,13 @@ + + + # Platform-specific libraries +- if platform == 'linux2': ++ if platform.startswith('linux'): + # Linux-specific modules + exts.append( Extension('linuxaudiodev', ['linuxaudiodev.c']) ) + else: + missing.append('linuxaudiodev') + +- if platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8'): ++ if platform.startswith('linux') or platform.startswith('freebsd'): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: + missing.append('ossaudiodev') diff --git a/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/002_readline63.patch b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/002_readline63.patch new file mode 100644 index 0000000000..7d933529e5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/002_readline63.patch @@ -0,0 +1,61 @@ +diff -r -u ../Python-2.6.5.orig/Modules/readline.c ./Modules/readline.c +--- ../Python-2.6.5.orig/Modules/readline.c 2013-11-10 16:36:41.000000000 +0900 ++++ ./Modules/readline.c 2014-03-29 16:17:48.643305752 +0900 +@@ -199,8 +199,7 @@ + if (!PyArg_ParseTuple(args, buf, &function)) + return NULL; + if (function == Py_None) { +- Py_XDECREF(*hook_var); +- *hook_var = NULL; ++ Py_CLEAR(*hook_var); + } + else if (PyCallable_Check(function)) { + PyObject *tmp = *hook_var; +@@ -699,14 +698,22 @@ + } + + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_startup_hook(void) ++#else ++on_startup_hook() ++#endif + { + return on_hook(startup_hook); + } + + #ifdef HAVE_RL_PRE_INPUT_HOOK + static int ++#if defined(_RL_FUNCTION_TYPEDEF) + on_pre_input_hook(void) ++#else ++on_pre_input_hook() ++#endif + { + return on_hook(pre_input_hook); + } +@@ -801,7 +808,7 @@ + * before calling the normal completer */ + + static char ** +-flex_complete(char *text, int start, int end) ++flex_complete(const char *text, int start, int end) + { + #ifdef HAVE_RL_COMPLETION_APPEND_CHARACTER + rl_completion_append_character ='\0'; +@@ -841,12 +848,12 @@ + rl_bind_key_in_map ('\t', rl_complete, emacs_meta_keymap); + rl_bind_key_in_map ('\033', rl_complete, emacs_meta_keymap); + /* Set our hook functions */ +- rl_startup_hook = (Function *)on_startup_hook; ++ rl_startup_hook = on_startup_hook; + #ifdef HAVE_RL_PRE_INPUT_HOOK +- rl_pre_input_hook = (Function *)on_pre_input_hook; ++ rl_pre_input_hook = on_pre_input_hook; + #endif + /* Set our completion function */ +- rl_attempted_completion_function = (CPPFunction *)flex_complete; ++ rl_attempted_completion_function = flex_complete; + /* Set Python word break characters */ + rl_completer_word_break_characters = + strdup(" \t\n`~!@#$%^&*()-=+[{]}\\|;:'\",<>/?"); diff --git a/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/003_tk86.patch b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/003_tk86.patch new file mode 100644 index 0000000000..012010f5f6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/003_tk86.patch @@ -0,0 +1,12 @@ +diff -r -u ../Python-2.6.5.orig/setup.py ./setup.py +--- ../Python-2.6.5.orig/setup.py 2013-10-30 00:04:39.000000000 +0900 ++++ ./setup.py 2014-04-03 22:28:49.122061684 +0900 +@@ -1581,7 +1581,7 @@ + # The versions with dots are used on Unix, and the versions without + # dots on Windows, for detection by cygwin. + tcllib = tklib = tcl_includes = tk_includes = None +- for version in ['8.5', '85', '8.4', '84', '8.3', '83', '8.2', ++ for version in ['8.6', '86', '8.5', '85', '8.4', '84', '8.3', '83', + '82', '8.1', '81', '8.0', '80']: + tklib = self.compiler.find_library_file(lib_dirs, 'tk' + version) + tcllib = self.compiler.find_library_file(lib_dirs, 'tcl' + version) diff --git a/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/010_ssl_no_ssl2_no_ssl3.patch b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/010_ssl_no_ssl2_no_ssl3.patch new file mode 100644 index 0000000000..dc8e55c1d3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.6.5/Python-2.6.5/010_ssl_no_ssl2_no_ssl3.patch @@ -0,0 +1,95 @@ +diff -r -u ../Python-2.6.5.orig/Lib/ssl.py ./Lib/ssl.py +--- ../Python-2.6.5.orig/Lib/ssl.py 2012-04-10 15:32:06.000000000 +0000 ++++ ./Lib/ssl.py 2015-12-18 14:46:36.487188331 +0000 +@@ -61,18 +61,24 @@ + + from _ssl import SSLError + from _ssl import CERT_NONE, CERT_OPTIONAL, CERT_REQUIRED +-from _ssl import PROTOCOL_SSLv2, PROTOCOL_SSLv3, PROTOCOL_SSLv23, PROTOCOL_TLSv1 +-from _ssl import RAND_status, RAND_egd, RAND_add +-from _ssl import \ +- SSL_ERROR_ZERO_RETURN, \ +- SSL_ERROR_WANT_READ, \ +- SSL_ERROR_WANT_WRITE, \ +- SSL_ERROR_WANT_X509_LOOKUP, \ +- SSL_ERROR_SYSCALL, \ +- SSL_ERROR_SSL, \ +- SSL_ERROR_WANT_CONNECT, \ +- SSL_ERROR_EOF, \ +- SSL_ERROR_INVALID_ERROR_CODE ++from _ssl import RAND_status, RAND_add ++try: ++ from _ssl import RAND_egd ++except ImportError: ++ # LibreSSL does not provide RAND_egd ++ pass ++ ++def _import_symbols(prefix): ++ for n in dir(_ssl): ++ if n.startswith(prefix): ++ globals()[n] = getattr(_ssl, n) ++ ++_import_symbols('OP_') ++_import_symbols('ALERT_DESCRIPTION_') ++_import_symbols('SSL_ERROR_') ++_import_symbols('PROTOCOL_') ++ ++_PROTOCOL_NAMES = dict([(value, name) for name, value in globals().items() if name.startswith('PROTOCOL_')]) + + from socket import socket, _fileobject + from socket import getnameinfo as _getnameinfo +@@ -394,7 +400,7 @@ + d = pem_cert_string.strip()[len(PEM_HEADER):-len(PEM_FOOTER)] + return base64.decodestring(d) + +-def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv3, ca_certs=None): ++def get_server_certificate(addr, ssl_version=PROTOCOL_SSLv23, ca_certs=None): + + """Retrieve the certificate from the server at the specified address, + and return it as a PEM-encoded string. +diff -r -u ../Python-2.6.5.orig/Modules/_ssl.c ./Modules/_ssl.c +--- ../Python-2.6.5.orig/Modules/_ssl.c 2012-04-10 15:32:09.000000000 +0000 ++++ ./Modules/_ssl.c 2015-12-18 14:45:30.419597074 +0000 +@@ -61,8 +61,12 @@ + }; + + enum py_ssl_version { ++#ifndef OPENSSL_NO_SSL2 + PY_SSL_VERSION_SSL2, ++#endif ++#ifndef OPENSSL_NO_SSL3 + PY_SSL_VERSION_SSL3, ++#endif + PY_SSL_VERSION_SSL23, + PY_SSL_VERSION_TLS1, + }; +@@ -298,10 +302,14 @@ + PySSL_BEGIN_ALLOW_THREADS + if (proto_version == PY_SSL_VERSION_TLS1) + self->ctx = SSL_CTX_new(TLSv1_method()); /* Set up context */ ++#ifndef OPENSSL_NO_SSL3 + else if (proto_version == PY_SSL_VERSION_SSL3) + self->ctx = SSL_CTX_new(SSLv3_method()); /* Set up context */ ++#endif ++#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 +@@ -1627,10 +1635,14 @@ + PY_SSL_CERT_REQUIRED); + + /* protocol versions */ ++#ifndef OPENSSL_NO_SSL2 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv2", + PY_SSL_VERSION_SSL2); ++#endif ++#ifndef OPENSSL_NO_SSL3 + PyModule_AddIntConstant(m, "PROTOCOL_SSLv3", + PY_SSL_VERSION_SSL3); ++#endif + PyModule_AddIntConstant(m, "PROTOCOL_SSLv23", + PY_SSL_VERSION_SSL23); + PyModule_AddIntConstant(m, "PROTOCOL_TLSv1", From 70d774958417df619ae3e8d71595da0351e746d6 Mon Sep 17 00:00:00 2001 From: Ricardo N Feliciano Date: Tue, 7 Sep 2021 16:07:40 -0400 Subject: [PATCH 0273/1324] Add CPython v3.6.15 and v3.7.12 (#2052) --- plugins/python-build/share/python-build/3.6.15 | 10 ++++++++++ plugins/python-build/share/python-build/3.7.12 | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.6.15 create mode 100644 plugins/python-build/share/python-build/3.7.12 diff --git a/plugins/python-build/share/python-build/3.6.15 b/plugins/python-build/share/python-build/3.6.15 new file mode 100644 index 0000000000..7a9526bb9b --- /dev/null +++ b/plugins/python-build/share/python-build/3.6.15 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.6.15" "https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tar.xz#6e28d7cdd6dd513dd190e49bca3972e20fcf455090ccf2ef3f1a227614135d91" standard verify_py36 copy_python_gdb ensurepip +else + install_package "Python-3.6.15" "https://www.python.org/ftp/python/3.6.15/Python-3.6.15.tgz#54570b7e339e2cfd72b29c7e2fdb47c0b7b18b7412e61de5b463fc087c13b043" standard verify_py36 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.7.12 b/plugins/python-build/share/python-build/3.7.12 new file mode 100644 index 0000000000..61dbb7781d --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.12 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.12" "https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tar.xz#f77bf7fb47839f213e5cbf7827281078ea90de7e72b44f10d7ef385ea8c43210" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.12" "https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz#33b4daaf831be19219659466d12645f87ecec6eb21d4d9f9711018a7b66cce46" standard verify_py37 copy_python_gdb ensurepip +fi From a65af6570d1ccf290dd23592ee836b4841843799 Mon Sep 17 00:00:00 2001 From: Seonghyeon Cho Date: Wed, 8 Sep 2021 05:35:53 +0900 Subject: [PATCH 0274/1324] Add space after yes/no prompt (#2040) --- plugins/python-build/bin/pyenv-uninstall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/pyenv-uninstall b/plugins/python-build/bin/pyenv-uninstall index 50a90bc943..9f892097e9 100755 --- a/plugins/python-build/bin/pyenv-uninstall +++ b/plugins/python-build/bin/pyenv-uninstall @@ -69,7 +69,7 @@ if [ -z "$FORCE" ]; then exit 1 fi - read -p "pyenv: remove $PREFIX? [y|N]" + read -p "pyenv: remove $PREFIX? [y|N] " case "$REPLY" in y | Y | yes | YES ) ;; * ) exit 1 ;; From 58e20879672b387ca5f9393cab95341af8de20ee Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 8 Sep 2021 07:28:25 -0700 Subject: [PATCH 0275/1324] Add Python 3.10.0rc2 (#2053) --- .github/workflows/ubuntu_tests.yml | 2 +- .../python-build/share/python-build/{3.10.0rc1 => 3.10.0rc2} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename plugins/python-build/share/python-build/{3.10.0rc1 => 3.10.0rc2} (58%) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 6968e19c7a..665e6f1624 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -12,7 +12,7 @@ jobs: - 3.7.10 - 3.8.10 - 3.9.5 - - 3.10.0rc1 + - 3.10.0rc2 runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/plugins/python-build/share/python-build/3.10.0rc1 b/plugins/python-build/share/python-build/3.10.0rc2 similarity index 58% rename from plugins/python-build/share/python-build/3.10.0rc1 rename to plugins/python-build/share/python-build/3.10.0rc2 index f46cf0781b..86c3c48938 100644 --- a/plugins/python-build/share/python-build/3.10.0rc1 +++ b/plugins/python-build/share/python-build/3.10.0rc2 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tar.xz#797061692282d0e573a0093476e57e39cf52cad56782ab2dfb79afadb3c1e638" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0rc2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc2.tar.xz#e75b56088548b7b9ad1f2571e6f5a2315e4808cb6b5fbe8288502afc802b2f24" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0rc1" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc1.tgz#b7efa6edd72bfeae57295f1ccc7c38c9ede8087f9f082382f16f92aa38f684d3" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0rc2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc2.tgz#0f8bf53dbe6f85785d502e73984aa3f12f67ac4958d9b8d8012019c35c646fe2" standard verify_py310 copy_python_gdb ensurepip fi From 90d0d20508a91e7ea1e609e8aa9f9d1a28bb563e Mon Sep 17 00:00:00 2001 From: Toshihiro Takushima Date: Thu, 9 Sep 2021 21:53:00 +0900 Subject: [PATCH 0276/1324] Disable coreutils on M1 Apple Silicon with arm64 (#2020) * Disable coreutils on arm64-apple * Only selectively apply to the affected CPython versions Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 30 +++++++++++++++++++ .../python-build/share/python-build/3.8-dev | 2 +- .../python-build/share/python-build/3.8.10 | 4 +-- .../python-build/share/python-build/3.8.11 | 4 +-- .../python-build/share/python-build/3.9-dev | 2 +- plugins/python-build/share/python-build/3.9.1 | 4 +-- plugins/python-build/share/python-build/3.9.2 | 4 +-- plugins/python-build/share/python-build/3.9.4 | 4 +-- plugins/python-build/share/python-build/3.9.5 | 4 +-- plugins/python-build/share/python-build/3.9.6 | 4 +-- 10 files changed, 46 insertions(+), 16 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 2dbe264d86..c08fadb501 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -112,6 +112,13 @@ is_mac() { [ $# -eq 0 ] || [ "$(osx_version)" "$@" ] } +is_arm64_apple() { + if [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "arm64" ]; then + return 0 + fi + return 1 +} + # 9.1 -> 901 # 10.9 -> 1009 # 10.10 -> 1010 @@ -1516,6 +1523,29 @@ use_xcode_sdk_zlib() { fi } +# CPython 3.9.1+ and 3.8.10+ have old config.sub that doesn't support "arm64" arch +# which is what Gnu uname (but not Apple uname) produces on Apple M1 +# (https://github.com/pyenv/pyenv/pull/2020#issuecomment-891911842) +build_package_arm64_apple_disable_homebrew_coreutils() { + if is_arm64_apple; then + local brew_coreutils="$(brew --prefix coreutils 2>/dev/null || true)" + if [ -d "$brew_coreutils" ]; then + local after_list=() + # Bash 3 ignores IFS set for command when doing expansions so have to set it separately + IFS=':'; local -a list=(${PATH}); IFS="$OLDIFS" + for str in "${list[@]}"; do + if [[ "$str" != "$brew_coreutils"/* ]]; then + after_list+=("$str") + else + echo "python-build: excluding \`$str' from PATH" + fi + done + # Bash 3 ignores IFS set for command when doing expansions so have to set it separately + IFS=':'; export PATH="${after_list[*]}"; IFS="$OLDIFS" + fi + fi +} + build_package_enable_shared() { package_option python configure --enable-shared } diff --git a/plugins/python-build/share/python-build/3.8-dev b/plugins/python-build/share/python-build/3.8-dev index 14c5795ad6..4a8dea248e 100644 --- a/plugins/python-build/share/python-build/3.8-dev +++ b/plugins/python-build/share/python-build/3.8-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.8-dev" "https://github.com/python/cpython" "3.8" standard verify_py38 copy_python_gdb ensurepip +install_git "Python-3.8-dev" "https://github.com/python/cpython" "3.8" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.10 b/plugins/python-build/share/python-build/3.8.10 index c2d72b9d88..5bb4e1d8a5 100644 --- a/plugins/python-build/share/python-build/3.8.10 +++ b/plugins/python-build/share/python-build/3.8.10 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.11 b/plugins/python-build/share/python-build/3.8.11 index 5657747e05..4533744870 100644 --- a/plugins/python-build/share/python-build/3.8.11 +++ b/plugins/python-build/share/python-build/3.8.11 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tar.xz#fb1a1114ebfe9e97199603c6083e20b236a0e007a2c51f29283ffb50c1420fb2" standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tar.xz#fb1a1114ebfe9e97199603c6083e20b236a0e007a2c51f29283ffb50c1420fb2" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz#b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393" standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz#b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9-dev b/plugins/python-build/share/python-build/3.9-dev index 9019194d39..a421b19585 100644 --- a/plugins/python-build/share/python-build/3.9-dev +++ b/plugins/python-build/share/python-build/3.9-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.9-dev" "https://github.com/python/cpython" 3.9 standard verify_py39 copy_python_gdb ensurepip +install_git "Python-3.9-dev" "https://github.com/python/cpython" 3.9 arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 index ba0a7989e6..3af8d4c46d 100644 --- a/plugins/python-build/share/python-build/3.9.1 +++ b/plugins/python-build/share/python-build/3.9.1 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 index 3d741d2fa6..93875f8bf1 100644 --- a/plugins/python-build/share/python-build/3.9.2 +++ b/plugins/python-build/share/python-build/3.9.2 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.4 b/plugins/python-build/share/python-build/3.9.4 index 9f164b30be..ccde10207c 100644 --- a/plugins/python-build/share/python-build/3.9.4 +++ b/plugins/python-build/share/python-build/3.9.4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 index f6390889e1..5b31a531b3 100644 --- a/plugins/python-build/share/python-build/3.9.5 +++ b/plugins/python-build/share/python-build/3.9.5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.6 b/plugins/python-build/share/python-build/3.9.6 index 0de2f2456d..cbfd237323 100644 --- a/plugins/python-build/share/python-build/3.9.6 +++ b/plugins/python-build/share/python-build/3.9.6 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz#397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz#397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz#d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz#d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip fi From 1c90a0f86492aaaa831ae8150a64642b6efceaae Mon Sep 17 00:00:00 2001 From: Pamela McA'Nulty Date: Tue, 14 Sep 2021 18:09:50 -0400 Subject: [PATCH 0277/1324] Prevent duplicate PATH entries when bin_path/.. is the same as PYENV_ROOT (#2045) --- libexec/pyenv | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index 5c4d71a50d..c7564a8880 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -80,9 +80,13 @@ bin_path="$(abs_dirname "$0")" for plugin_bin in "${bin_path%/*}"/plugins/*/bin; do PATH="${plugin_bin}:${PATH}" done -for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do - PATH="${plugin_bin}:${PATH}" -done +# PYENV_ROOT can be set to anything, so it may happen to be equal to the base path above, +# resulting in duplicate PATH entries +if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then + for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do + PATH="${plugin_bin}:${PATH}" + done +fi export PATH="${bin_path}:${PATH}" PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d" From 26134d9b3862f7ec314a93a2c86f65ba3784d397 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Sep 2021 19:07:00 +0300 Subject: [PATCH 0278/1324] Allow system Python in sbin Arch Linux has Python is sbin as well as bin --- libexec/pyenv-prefix | 4 +++- test/prefix.bats | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index 9e20a21a0f..9cd0715d4f 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -33,7 +33,9 @@ OLDIFS="$IFS" if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)" || \ PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 2>/dev/null)" || \ PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python2 2>/dev/null)"; then - PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}" + shopt -s extglob + # In some distros (Arch), Python can be found in sbin as well as bin + PYENV_PREFIX_PATH="${PYTHON_PATH%/?(s)bin/*}" PYENV_PREFIX_PATH="${PYENV_PREFIX_PATH:-/}" else echo "pyenv: system version not found in PATH" >&2 diff --git a/test/prefix.bats b/test/prefix.bats index 6f63d1f762..88def5093f 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -24,6 +24,15 @@ load test_helper assert_success "$PYENV_TEST_DIR" } +#Arch has Python at sbin as well as bin +@test "prefix for sbin system" { + mkdir -p "${PYENV_TEST_DIR}/sbin" + touch "${PYENV_TEST_DIR}/sbin/python" + chmod +x "${PYENV_TEST_DIR}/sbin/python" + PYENV_VERSION="system" run pyenv-prefix + assert_success "$PYENV_TEST_DIR" +} + @test "prefix for system in /" { mkdir -p "${BATS_TEST_DIRNAME}/libexec" cat >"${BATS_TEST_DIRNAME}/libexec/pyenv-which" < Date: Wed, 15 Sep 2021 20:00:49 +0300 Subject: [PATCH 0279/1324] Allow system Python in sbin (#2065) Arch Linux has Python is sbin as well as bin --- libexec/pyenv-prefix | 4 +++- test/prefix.bats | 9 +++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index 9e20a21a0f..9cd0715d4f 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -33,7 +33,9 @@ OLDIFS="$IFS" if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)" || \ PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 2>/dev/null)" || \ PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python2 2>/dev/null)"; then - PYENV_PREFIX_PATH="${PYTHON_PATH%/bin/*}" + shopt -s extglob + # In some distros (Arch), Python can be found in sbin as well as bin + PYENV_PREFIX_PATH="${PYTHON_PATH%/?(s)bin/*}" PYENV_PREFIX_PATH="${PYENV_PREFIX_PATH:-/}" else echo "pyenv: system version not found in PATH" >&2 diff --git a/test/prefix.bats b/test/prefix.bats index 6f63d1f762..88def5093f 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -24,6 +24,15 @@ load test_helper assert_success "$PYENV_TEST_DIR" } +#Arch has Python at sbin as well as bin +@test "prefix for sbin system" { + mkdir -p "${PYENV_TEST_DIR}/sbin" + touch "${PYENV_TEST_DIR}/sbin/python" + chmod +x "${PYENV_TEST_DIR}/sbin/python" + PYENV_VERSION="system" run pyenv-prefix + assert_success "$PYENV_TEST_DIR" +} + @test "prefix for system in /" { mkdir -p "${BATS_TEST_DIRNAME}/libexec" cat >"${BATS_TEST_DIRNAME}/libexec/pyenv-which" < Date: Wed, 15 Sep 2021 20:42:41 +0300 Subject: [PATCH 0280/1324] fix test --- test/prefix.bats | 1 + 1 file changed, 1 insertion(+) diff --git a/test/prefix.bats b/test/prefix.bats index 88def5093f..96ea766844 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -26,6 +26,7 @@ load test_helper #Arch has Python at sbin as well as bin @test "prefix for sbin system" { + export PATH="${PYENV_TEST_DIR}/sbin:$PATH" mkdir -p "${PYENV_TEST_DIR}/sbin" touch "${PYENV_TEST_DIR}/sbin/python" chmod +x "${PYENV_TEST_DIR}/sbin/python" From cabdc451813a47c642f2f48048b01c4fd7de8c66 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Sep 2021 22:55:09 +0300 Subject: [PATCH 0281/1324] fix possible side effect --- test/prefix.bats | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/prefix.bats b/test/prefix.bats index 96ea766844..5da1a5f80e 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -26,11 +26,10 @@ load test_helper #Arch has Python at sbin as well as bin @test "prefix for sbin system" { - export PATH="${PYENV_TEST_DIR}/sbin:$PATH" mkdir -p "${PYENV_TEST_DIR}/sbin" touch "${PYENV_TEST_DIR}/sbin/python" chmod +x "${PYENV_TEST_DIR}/sbin/python" - PYENV_VERSION="system" run pyenv-prefix + PATH="${PYENV_TEST_DIR}/sbin:$PATH" PYENV_VERSION="system" run pyenv-prefix assert_success "$PYENV_TEST_DIR" } From e56962b35781ee9512c99aeb8769f4e76b663596 Mon Sep 17 00:00:00 2001 From: tillhainbach <33448151+tillhainbach@users.noreply.github.com> Date: Fri, 17 Sep 2021 13:56:53 +0200 Subject: [PATCH 0282/1324] allow tcl-tk as argument or try with homebrew by default Replacement for #1409 (#1646) * feat(python-build): allow tcl-tk as argument or default to homebrew * refactor(python-build): detect tcl-tk-libs from confugre_opts_arr --- plugins/python-build/bin/python-build | 83 ++++++++++++++++++++++----- plugins/python-build/test/build.bats | 68 +++++++++++++++++++++- 2 files changed, 135 insertions(+), 16 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c08fadb501..a18680a494 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -773,6 +773,7 @@ build_package_standard_build() { local PACKAGE_CFLAGS="${package_var_name}_CFLAGS" if [ "$package_var_name" = "PYTHON" ]; then + use_tcltk || true use_homebrew_readline || use_freebsd_pkg || true if is_mac -ge 1014; then use_xcode_sdk_zlib || use_homebrew_zlib || true @@ -1523,6 +1524,75 @@ use_xcode_sdk_zlib() { fi } +use_homebrew_tcltk() { + # get the version from the folder that homebrew versions + local tcltk_version_long="$(ls "$(brew --cellar tcl-tk)")" + local tcltk_version="${tcltk_version_long%.*}" + local tcltk_flags="--with-tcltk-includes=-I$tcltk_libdir/include --with-tcltk-libs=-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" + echo "python-build: use tcl-tk from homebrew" + 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" +} + +# FIXME: this function is a workaround for #1125 +# once fixed, it should be removed. +use_custom_tcltk() { + local tcltk_ops="$1" + local tcltk_ops_flag="--with-tcltk-libs=" + # get tcltk libs + local tcltk_libs="${tcltk_ops//$tcltk_ops_flag/}" + # remove tcltk-flag from configure_opts + # this allows for weird input such as + # --with-tcltk-libs=' -L/custom-tcl-tk/lib -ltcl8.6 -ltk8.4 ' + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//"$tcltk_ops_flag"/}" + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//$tcltk_libs/}" + + # remove quotes, because there mess up compilations + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//"''"/}" + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//'""'/}" + + echo "python-build: use tcl-tk from \$PYTHON_CONFIGURE_OPTS" + # echo "PYTHON_CONFIGURE_OPTS=${PYTHON_CONFIGURE_OPTS}" + package_option python configure --with-tcltk-libs="${tcltk_libs}" + # IFS="$OLDIFS" +} + +# FIXME: this function is a workaround for #1125 +# once fixed, it should be removed. +# Get tcltk-flag and options from `$1` +# expects one argument containing a string of configure opts, eg. `PYTHON_CONFIGURE_OPTS` +# returns tcl_tk flag or an empty string if nothing was found. +get_tcltk_flag_from() { + IFS=$'\n' + # parse input string into array + local opts_arr=( $(xargs -n1 <<<"$1") ) + + # iterate through `opts_arr`, break if `--with-tcltk-libs=` was found. + for opts in ${opts_arr[@]}; do + # `--with-tcltk-libs=` must be the prefix. + if [[ "$opts" == "--with-tcltk-libs="* ]]; then + # return + echo "$opts" + break + fi + done + + IFS="$OLDIFS" +} + +use_tcltk() { + local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" + local tcl_tk_libs="$(get_tcltk_flag_from "$PYTHON_CONFIGURE_OPTS")" + + # if tcltk_ops_flag is in PYTHON_CONFIGURE_OPTS, use user provided tcltk + # otherwise default to homebrew-installed tcl-tk, if installed + if [[ -n "$tcl_tk_libs" ]]; then + use_custom_tcltk "$tcl_tk_libs" + elif [ -d "$tcltk_libdir" ]; then + use_homebrew_tcltk + fi +} + # CPython 3.9.1+ and 3.8.10+ have old config.sub that doesn't support "arm64" arch # which is what Gnu uname (but not Apple uname) produces on Apple M1 # (https://github.com/pyenv/pyenv/pull/2020#issuecomment-891911842) @@ -2083,19 +2153,6 @@ if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then fi fi -# regex_to_match="(--with-tcltk-libs='([^']+)')" -if [[ "$PYTHON_CONFIGURE_OPTS" =~ (--with-tcltk-libs=\'([^\']+)\') ]]; then - tcltk_match="${BASH_REMATCH[1]}" - tcltk_match_quoted="${tcltk_match//--with-tcltk-libs=/}" - # remove it from PYTHON_CONFIGURE_OPTS since it will mess up compile - PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//$tcltk_match/}" - - # having issues passing the single quoted part, couldnt pass as single var and still work - package_option python configure "--with-tcltk-libs='${tcltk_match_quoted}'" - unset tcltk_match - unset tcltk_match_quoted -fi - # Unset `PIP_REQUIRE_VENV` during build (#216) unset PIP_REQUIRE_VENV unset PIP_REQUIRE_VIRTUALENV diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index b4afbdb7d6..3113b37bb7 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -165,7 +165,7 @@ OUT stub uname '-s : echo Linux' stub uname '-s : echo Darwin' - stub brew "--prefix libyaml : echo '$brew_libdir'" false + stub brew "--prefix libyaml : echo '$brew_libdir'" false false stub_make_install install_fixture definitions/needs-yaml @@ -192,7 +192,7 @@ OUT # pyenv/pyenv#1026 stub uname false false - stub brew "--prefix readline : echo '$readline_libdir'" + stub brew false "--prefix readline : echo '$readline_libdir'" stub_make_install run_inline_definition < Date: Wed, 2 Jun 2021 12:43:46 +0300 Subject: [PATCH 0283/1324] Highlight MacOS note about restart --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 214fe04561..78f368af39 100644 --- a/README.md +++ b/README.md @@ -341,7 +341,7 @@ easy to fork and contribute any changes back upstream. 4. **Restart your login session for the changes to take effect.** E.g. if you're in a GUI session, you need to fully log out and log back in. - In MacOS, restarting terminal windows is enough (because MacOS runs shells + **In MacOS,** restarting terminal windows is enough (because MacOS runs shells in them as login shells by default). 5. [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version. From 8cce6e8dd297f4f5c5d9784fc5dca082bd61ba7c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 8 Jun 2021 17:23:08 +0300 Subject: [PATCH 0284/1324] Add notes when to use the 2nd shell step --- README.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 78f368af39..eb5e2dd53b 100644 --- a/README.md +++ b/README.md @@ -206,8 +206,9 @@ easy to fork and contribute any changes back upstream. 2. **Configure your shell's environment for Pyenv** - **Note:** The below instructions for specific shells are designed for common shell setups. - If you have an uncommon setup and they don't work for you, + **Note:** The below instructions for specific shells are designed for common shell setups; + they also install shell functions into interactive shells only. + If you have an uncommon setup and/or special needs and they don't work for you, use the guidance text and the [Advanced Configuration](#advanced-configuration) section below to figure out what you need to do in your specific case. @@ -303,10 +304,15 @@ easy to fork and contribute any changes back upstream. **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. - 2. **Add `pyenv` into your shell** by running the output of `pyenv init -` - to enable autocompletion and all subcommands. - - This command needs to run at startup of any interactive shell instance. + 2. **Add `pyenv` into your shell as a shell function** by running the output of `pyenv init -` + to enable autocompletion and subcommands that require `pyenv` to be a shell function. + + The subcommands enabled by this step are those that make changes to the current shell environment. + In Pyenv, that's only `pyenv shell`; another example is `pyenv activate` from the + [Pyenv-Virtualenv](https://github.com/pyenv/pyenv-virtualenv) plugin. + + This step is optional. Run it whenever you need the above functions -- + typically at startup of any interactive shell. In an interactive login shell, it needs to run _after_ the commands from the previous step. From 6c74b616a5970be0e42c4eacfd3810eb6aca4a9d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 8 Jun 2021 17:31:54 +0300 Subject: [PATCH 0285/1324] Windows note as a separate section --- README.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index eb5e2dd53b..7d55afac79 100644 --- a/README.md +++ b/README.md @@ -46,6 +46,10 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Choosing the Python Version](#choosing-the-python-version) * [Locating the Python Installation](#locating-the-python-installation) * **[Installation](#installation)** + * [Prerequisites](#prerequisites) + * [Homebrew in macOS](#homebrew-in-macos) + * [Windows](#windows) + * [Automatic installer](#automatic-installer) * [Basic GitHub Checkout](#basic-github-checkout) * [Upgrading](#upgrading) * [Homebrew on macOS](#homebrew-on-macos) @@ -168,11 +172,11 @@ We'd recommend to install pyenv-virtualenv as well if you have some plan to play ## Installation -### Prerequisites: +### Prerequisites For pyenv to install python correctly you should [**install the Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment). -### Homebrew on macOS +### Homebrew in macOS 1. Consider installing with [Homebrew](https://brew.sh): ```sh @@ -181,9 +185,20 @@ For pyenv to install python correctly you should [**install the Python build dep ``` 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #2 ("Configure your shell's environment for Pyenv"). -If you're on Windows, consider using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork. (Pyenv does not work in Windows outside the Windows Subsystem for Linux.) -### The automatic installer +### Windows + +Pyenv does not officially support Windows and does not work in Windows outside +the Windows Subsystem for Linux. +Moreover, even there, the Pythons it installs are not native Windows versions +but rather Linux versions run through a compatibility layer -- +so you won't get Windows-specific functionality. + +If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork -- +which does install native Windows Python versions. + + +### Automatic installer Visit our other project: https://github.com/pyenv/pyenv-installer From 19f74e41f0e9a8ea9516eb14e4189bb4b1121b6f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 18 Sep 2021 19:03:26 +0300 Subject: [PATCH 0286/1324] Update setup instructions based on user feedback --- README.md | 287 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 160 insertions(+), 127 deletions(-) diff --git a/README.md b/README.md index 7d55afac79..85cb87b380 100644 --- a/README.md +++ b/README.md @@ -223,146 +223,157 @@ easy to fork and contribute any changes back upstream. **Note:** The below instructions for specific shells are designed for common shell setups; they also install shell functions into interactive shells only. - If you have an uncommon setup and/or special needs and they don't work for you, - use the guidance text and the [Advanced Configuration](#advanced-configuration) + If you have an uncommon setup and/or needs and they don't work for you, + use the [Advanced Configuration](#advanced-configuration) section below to figure out what you need to do in your specific case. - 1. **Adjust the session-wide environment for your account.** Define - the `PYENV_ROOT` environment variable to point to the path where - you cloned the Pyenv repo, add the `pyenv` command-line utility to your `PATH`, - run the output of `pyenv init --path` to enable shims. + **General MacOS note:** + Make sure that your terminal app is configured to run the shell as a login shell + (especially if you're using an alternative terminal app and/or shell). + The configuration samples for MacOS are written under this assumption and won't work otherwise. - These commands need to be added into your shell startup files in such a way - that _they are executed only once per session, by its login shell._ - This typically means they need to be added into a per-user shell-specific - `~/.*profile` file, _and_ into `~/.profile`, too, so that they are also - run by GUI managers (which typically act as a `sh` login shell). - - **MacOS note:** If you installed Pyenv with Homebrew, you don't need - to add the `PYENV_ROOT=` and `PATH=` lines. - You also don't need to add commands into `~/.profile` if your shell doesn't use it. - - - For **Bash**: + - For **Bash**: + + - **If your `~/.profile` sources `~/.bashrc` (Debian, Ubuntu, Mint):** + + ~~~bash + # the sed invocation inserts the lines at the start of the file + # after any initial comment lines + sed -iEe '/^([^#]|$)/ {a \ + export PYENV_ROOT="$HOME/.pyenv" + a \ + export PATH="$PYENV_ROOT/bin:$PATH" + a \ + ' -e ':a' -e '$!{n;ba};}' ~/.profile + echo 'eval "$(pyenv init --path)"' >>~/.profile + + echo 'eval "$(pyenv init -)"' >> ~/.bashrc + ~~~ + + - **If your `~/.bash_profile` sources `~/.bashrc` (Red Hat, Fedora, CentOS):** ~~~ bash + sed -iEe '/^([^#]|$)/ {a \ + export PYENV_ROOT="$HOME/.pyenv" + a \ + export PATH="$PYENV_ROOT/bin:$PATH" + a \ + ' -e ':a' -e '$!{n;ba};}' ~/.bash_profile + echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile echo 'eval "$(pyenv init --path)"' >> ~/.profile + + echo 'eval "$(pyenv init -)"' >> ~/.bashrc ~~~ - - **If your `~/.profile` sources `~/.bashrc` (Debian, Ubuntu, Mint):** + - **If you have no `~/.bash_profile` and your `/etc/profile` sources `~/.bashrc` (SUSE):** + + ~~~bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init --path)"' >> ~/.profile - Put these lines into `~/.profile` _before_ the part that sources `~/.bashrc`: - ~~~bash - export PYENV_ROOT="$HOME/.pyenv" - export PATH="$PYENV_ROOT/bin:$PATH" - ~~~ + echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc + ~~~ - And put this line at the _bottom_ of `~/.profile`: - ~~~bash - eval "$(pyenv init --path)" - ~~~ - - - Alternatively, for an automated installation, you can run the following: - ~~~ bash - echo -e 'if shopt -q login_shell; then' \ - '\n export PYENV_ROOT="$HOME/.pyenv"' \ - '\n export PATH="$PYENV_ROOT/bin:$PATH"' \ - '\n eval "$(pyenv init --path)"' \ - '\nfi' >> ~/.bashrc - echo -e 'if [ -z "$BASH_VERSION" ]; then'\ - '\n export PYENV_ROOT="$HOME/.pyenv"'\ - '\n export PATH="$PYENV_ROOT/bin:$PATH"'\ - '\n eval "$(pyenv init --path)"'\ - '\nfi' >>~/.profile - ~~~ - - **Note:** If you have `~/.bash_profile`, make sure that it too executes the above-added commands, - e.g. by copying them there or by `source`'ing `~/.profile`. - - - For **Zsh**: - - - **MacOS, if Pyenv is installed with Homebrew:** - - ~~~ zsh - echo 'eval "$(pyenv init --path)"' >> ~/.zprofile - ~~~ + - **Otherwise if you have no stock `~/.profile` or `~/.bash_profile` (MacOS):** + + ~~~bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init --path)"' >> ~/.profile + echo 'if [ -n "$PS1" -a -n "$BASH_VERSION" ]; then source ~/.bashrc; fi' >> ~/.profile + + echo 'eval "$(pyenv init -)"' >> ~/.bashrc + ~~~ + + In MacOS, make sure that your terminal app runs the shell as a login shell. + + - **Temporary environments (CI, batch jobs):** + + In CI/build environments, paths and the environment are usually already set up for you + in one of the above ways. + You may only need to install Pyenv as a shell function into the (noninteractive) shell + that runs the batch script, and only if you need subcommands that require `pyenv` + to be a shell function (e.g. `shell` and Pyenv-Virtualenv's `activate`). + + ~~~bash + echo 'eval "$(pyenv init -)"' + ~~~ - - **MacOS, if Pyenv is installed with a Git checkout:** + **General Bash warning**: There are some systems where the `BASH_ENV` variable is configured + to point to `.bashrc`. On such systems, you should almost certainly put the + `eval "$(pyenv init -)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you + may observe strange behaviour, such as `pyenv` getting into an infinite loop. + See [#264](https://github.com/pyenv/pyenv/issues/264) for details. + + + - For **Zsh**: + + - **MacOS, if Pyenv is installed with Homebrew:** + + ~~~ zsh + echo 'eval "$(pyenv init --path)"' >> ~/.zprofile + + echo 'eval "$(pyenv init -)"' >> ~/.zshrc + ~~~ - ~~~ zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile - echo 'eval "$(pyenv init --path)"' >> ~/.zprofile - ~~~ + Make sure that your terminal app runs the shell as a login shell. + + + - **MacOS, if Pyenv is installed with a Git checkout:** + + ~~~ zsh + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile + echo 'eval "$(pyenv init --path)"' >> ~/.zprofile + + echo 'eval "$(pyenv init -)"' >> ~/.zshrc + ~~~ + + Make sure that your terminal app runs the shell as a login shell. - - **Other OSes:** + - **Other OSes:** + + ~~~ zsh + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile + echo 'eval "$(pyenv init --path)"' >> ~/.zprofile - Same as for Bash above, but add the commands into both `~/.profile` - and `~/.zprofile`. + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init --path)"' >> ~/.profile + + echo 'eval "$(pyenv init -)"' >> ~/.zshrc + ~~~ - For **Fish shell**: Execute this interactively: + ~~~ fish set -Ux PYENV_ROOT $HOME/.pyenv set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths ~~~ And add this to `~/.config/fish/config.fish`: + ~~~ fish status is-interactive; and pyenv init --path | source + pyenv init - | source ~~~ If Fish is not your login shell, also follow the Bash/Zsh instructions to add to `~/.profile`. **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. - 2. **Add `pyenv` into your shell as a shell function** by running the output of `pyenv init -` - to enable autocompletion and subcommands that require `pyenv` to be a shell function. - - The subcommands enabled by this step are those that make changes to the current shell environment. - In Pyenv, that's only `pyenv shell`; another example is `pyenv activate` from the - [Pyenv-Virtualenv](https://github.com/pyenv/pyenv-virtualenv) plugin. - - This step is optional. Run it whenever you need the above functions -- - typically at startup of any interactive shell. - In an interactive login shell, it needs to run _after_ the commands - from the previous step. - - - For **bash**: - ~~~ bash - echo 'eval "$(pyenv init -)"' >> ~/.bashrc - ~~~ - - - **If your `/etc/profile` sources `~/.bashrc` (SUSE):** - - ~~~bash - echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc - ~~~ - - For **Zsh**: - ~~~ zsh - echo 'eval "$(pyenv init -)"' >> ~/.zshrc - ~~~ - - - For **Fish shell**: - Add this to `~/.config/fish/config.fish`: - ~~~ fish - pyenv init - | source - ~~~ - - **General warning**: There are some systems where the `BASH_ENV` variable is configured - to point to `.bashrc`. On such systems you should almost certainly put the above-mentioned line - `eval "$(pyenv init -)"` into `.bash_profile`, and **not** into `.bashrc`. Otherwise you - may observe strange behaviour, such as `pyenv` getting into an infinite loop. - See [#264](https://github.com/pyenv/pyenv/issues/264) for details. - -4. **Restart your login session for the changes to take effect.** +4. **Restart your login session for the changes to profile files to take effect.** E.g. if you're in a GUI session, you need to fully log out and log back in. - **In MacOS,** restarting terminal windows is enough (because MacOS runs shells + In MacOS, restarting terminal windows is enough (because MacOS runs shells in them as login shells by default). 5. [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version. @@ -445,30 +456,52 @@ profile is doing. `pyenv init` is the only command that crosses the line of loading extra commands into your shell. Coming from RVM, some of you might be -opposed to this idea. Here's what `pyenv init` actually does. -Step 1 is done by `eval "$(pyenv init --path)"`, the others are done by -`eval "$(pyenv init -)"`. - - -1. **Sets up your shims path.** This is the only requirement for pyenv to - function properly. You can do this by hand by prepending - `$(pyenv root)/shims` to your `$PATH`. - -2. **Installs autocompletion.** This is entirely optional but pretty - useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that - up. There is also a `$(pyenv root)/completions/pyenv.zsh` for Zsh - users. - -3. **Rehashes shims.** From time to time you'll need to rebuild your - shim files. Doing this on init makes sure everything is up to - date. You can always run `pyenv rehash` manually. - -4. **Installs the sh dispatcher.** This bit is also optional, but allows - pyenv and plugins to change variables in your current shell, making - commands like `pyenv shell` possible. The sh dispatcher doesn't do - anything crazy like override `cd` or hack your shell prompt, but if - for some reason you need `pyenv` to be a real script rather than a - shell function, you can safely skip it. +opposed to this idea. + +Also see the [Environment variables](#environment-variables) section +for the environment variables that control Pyenv's behavior. + + +* `eval "$(pyenv init --path)"`: + + 1. **Sets up your shims path.** This is the only requirement for pyenv to + function properly. You can do this by hand by prepending + `$(pyenv root)/shims` to your `$PATH`. + + `eval "$(pyenv init --path)"` is supposed to be run in your session's login + shell startup script -- so that all processes in the session get access to + Pyenv's functionality and it only runs once, + avoiding breaking `PATH` in nested shells + (e.g. shells started from editors/IDEs). + + In Linux, GUI managers typically act as a `sh` login shell, running + `/etc/profile` and `~/.profile` at their startup. MacOS' GUI doesn't do that, + so its terminal emulator apps run their shells as login shells by default + to compensate. + + +* `eval "$(pyenv init -)"`: + + 1. **Installs autocompletion.** This is entirely optional but pretty + useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that + up. There is also a `$(pyenv root)/completions/pyenv.zsh` for Zsh + users. + + 2. **Rehashes shims.** From time to time you'll need to rebuild your + shim files. Doing this on init makes sure everything is up to + date. You can always run `pyenv rehash` manually. + + 3. **Installs `pyenv` into the current shell as a shell function.** + This bit is also optional, but allows + pyenv and plugins to change variables in your current shell, making + commands like `pyenv shell` possible. The sh dispatcher doesn't do + anything crazy like override `cd` or hack your shell prompt, but if + for some reason you need `pyenv` to be a real script rather than a + shell function, you can safely skip it. + + `eval "$(pyenv init -)"` is supposed to run at any interactive shell's + startup (including nested shells) so that you get completion and + convenience shell functions. To see exactly what happens under the hood for yourself, run `pyenv init -` or `pyenv init --path`. From eb89256f5952ddd865b2c21d26cbf82d2c332a7e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 19 Sep 2021 00:12:06 +0300 Subject: [PATCH 0287/1324] Remove the sample code from pyenv init since there proved to be to many cases to fit --- libexec/pyenv-init | 63 ++-------------------------------------------- test/init.bats | 2 +- 2 files changed, 3 insertions(+), 62 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index bc11749576..840c31e043 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -93,68 +93,9 @@ function help_() { { echo - echo '# (The below instructions are intended for common' - echo '# shell setups. See the README for more guidance' - echo '# if they don'\''t apply and/or don'\''t work for you.)' + echo '# See the README for instructions on how to set up' + echo '# your shell environment for Pyenv.' echo - case "$shell" in - fish ) - echo "# Add pyenv executable to PATH by running" - echo "# the following interactively:" - echo - echo 'set -Ux PYENV_ROOT $HOME/.pyenv' - echo 'set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths' - echo - echo "# Load pyenv automatically by appending" - echo "# the following to ~/.config/fish/config.fish:" - echo - echo 'status is-interactive; and pyenv init --path | source' - echo 'pyenv init - | source' - echo - echo "# If fish is not your login shell," - echo "# add the following to ~/.profile:" - echo - echo 'export PYENV_ROOT="$HOME/.pyenv"' - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' - echo 'eval "$(pyenv init --path)"' - echo - ;; - * ) - echo '# Add pyenv executable to PATH and' - echo '# enable shims by adding the following' - case "$shell" in - bash|ksh ) - echo '# to ~/.profile:' - ;; - * ) - echo '# to ~/.profile and '"${profile}"':' - ;; - esac - echo - echo 'export PYENV_ROOT="$HOME/.pyenv"' - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' - echo 'eval "$(pyenv init --path)"' - echo - if [[ $shell == "bash" ]]; then - echo '# If your ~/.profile sources '"${rc}"',' - echo '# the lines need to be inserted before the part' - echo '# that does that. See the README for another option.' - echo - echo '# If you have '"${profile}"', make sure that it' - echo '# also executes the above lines -- e.g. by' - echo '# copying them there or by sourcing ~/.profile' - echo - fi - echo "# Load pyenv into the shell by adding" - echo "# the following to ${rc}:" - echo - echo 'eval "$(pyenv init -)"' - echo - echo '# Make sure to restart your entire logon session' - echo '# for changes to profile files to take effect.' - echo - ;; - esac } >&2 } diff --git a/test/init.bats b/test/init.bats index bcb937c1f2..1b5975718d 100755 --- a/test/init.bats +++ b/test/init.bats @@ -53,7 +53,7 @@ OUT @test "fish instructions" { run pyenv-init fish assert [ "$status" -eq 1 ] - assert_line 'pyenv init - | source' + assert_line '# See the README for instructions on how to set up' } @test "option to skip rehash" { From 76db37dbfa4025d6013f873f775ca89be6c82028 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 19 Sep 2021 01:08:26 +0300 Subject: [PATCH 0288/1324] Update fish instructions based on user feedback --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 85cb87b380..88a5045c80 100644 --- a/README.md +++ b/README.md @@ -361,8 +361,8 @@ easy to fork and contribute any changes back upstream. And add this to `~/.config/fish/config.fish`: ~~~ fish - status is-interactive; and pyenv init --path | source - pyenv init - | source + status is-login; and pyenv init --path | source + status is-interactive; and pyenv init - | source ~~~ If Fish is not your login shell, also follow the Bash/Zsh instructions to add to `~/.profile`. From 474d7cc0669fd0af572a72082f689fe001cdf465 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 20 Sep 2021 20:07:51 +0300 Subject: [PATCH 0289/1324] Update CHANGELOG.md --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 187050251c..b3964e9b80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ ## Version History +## Release 2.0.7 +* Update setup instructions in the Readme (#2067) +* Allow tcl-tk as argument or try with homebrew by default (#1646) +* Allow system Python in sbin (#2065) +* Prevent addition of duplicate plugin dirs to PATH (#2045) +* Disable coreutils on M1 Apple Silicon with arm64 (#2020) +* Add Python 3.10.0rc2 (#2053) +* Add space after `yes/no` prompt (#2040) +* Add CPython v3.6.15 and v3.7.12 (#2052) +* Add missing Python 2.6.x definitions and patches (#2051) +* Fix build of ossaudiodev in Linux/FreeBSD for Python 2.6 (#2049) +* Fix build of ossaudiodev in Linux/FreeBSD for Python 3.1 (#2047) + ## Release 2.0.6 * Add CPython 3.9.7 (#2044) * Add CPython v3.8.12 (#2043) From dcfd715603c4bb2fb100af52d9e80d74e86fe969 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 20 Sep 2021 20:08:06 +0300 Subject: [PATCH 0290/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 230743c7cc..86fb741dde 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.6" +version="2.0.7" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 1bd397112ab72369b3939bf22bcf6e8fad1e6ab4 Mon Sep 17 00:00:00 2001 From: Takumi Sueda Date: Tue, 21 Sep 2021 04:10:58 +0900 Subject: [PATCH 0291/1324] Add Python 2.7.18 patches for Apple Silicon machines (#2061) --- .../0001-Detect-arm64-in-configure.patch | 41 +++ ...er-use-of-Tck-Tk-in-Library-Framewor.patch | 237 ++++++++++++++++++ ...3-Support-arm64-in-Mac-Tools-pythonw.patch | 34 +++ ...ystem-libffi-for-Mac-OS-10.15-and-up.patch | 85 +++++++ ...e-correct-ABI-for-variadic-functions.patch | 221 ++++++++++++++++ ...ffi-for-ffi_closure_alloc-and-ffi_pr.patch | 108 ++++++++ ...0007-Remove-QuickTime-from-link-args.patch | 40 +++ 7 files changed, 766 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0001-Detect-arm64-in-configure.patch create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0002-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0003-Support-arm64-in-Mac-Tools-pythonw.patch create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch create mode 100644 plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0007-Remove-QuickTime-from-link-args.patch diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0001-Detect-arm64-in-configure.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0001-Detect-arm64-in-configure.patch new file mode 100644 index 0000000000..94c4b7b9c6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0001-Detect-arm64-in-configure.patch @@ -0,0 +1,41 @@ +From 5495fb4719fa67ea3abeda0434699c8b28c77bb3 Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 16:50:14 +0900 +Subject: [PATCH 1/7] Detect arm64 in configure + +--- + configure | 3 +++ + configure.ac | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/configure b/configure +index 63d675312d..c40ec120de 100755 +--- a/configure ++++ b/configure +@@ -8474,6 +8474,9 @@ fi + ppc) + MACOSX_DEFAULT_ARCH="ppc64" + ;; ++ arm64) ++ MACOSX_DEFAULT_ARCH="arm64" ++ ;; + *) + as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5 + ;; +diff --git a/configure.ac b/configure.ac +index efe6922b5d..df05bee87b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2066,6 +2066,9 @@ case $ac_sys_system/$ac_sys_release in + ppc) + MACOSX_DEFAULT_ARCH="ppc64" + ;; ++ arm64) ++ MACOSX_DEFAULT_ARCH="arm64" ++ ;; + *) + AC_MSG_ERROR([Unexpected output of 'arch' on OSX]) + ;; +-- +2.30.1 + diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0002-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0002-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch new file mode 100644 index 0000000000..a2a33c6fed --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0002-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch @@ -0,0 +1,237 @@ +From f17b9e30bd295b1eec68105e3f04568477ce6286 Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 17:14:34 +0900 +Subject: [PATCH 2/7] Fix macOS _tkinter use of Tck/Tk in /Library/Framework + +Modified and imported from https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch +--- + setup.py | 148 +++++++++++++++++++++++++++++++++++++++---------------- + 1 file changed, 106 insertions(+), 42 deletions(-) + +diff --git a/setup.py b/setup.py +index f764223d06..da1d34efaf 100644 +--- a/setup.py ++++ b/setup.py +@@ -50,6 +50,7 @@ def add_dir_to_list(dirlist, dir): + dirlist.insert(0, dir) + + MACOS_SDK_ROOT = None ++MACOS_SDK_SPECIFIED = None + + def macosx_sdk_root(): + """Return the directory of the current macOS SDK. +@@ -61,8 +62,9 @@ def macosx_sdk_root(): + (The SDK may be supplied via Xcode or via the Command Line Tools). + The SDK paths used by Apple-supplied tool chains depend on the + setting of various variables; see the xcrun man page for more info. ++ Also sets MACOS_SDK_SPECIFIED for use by macosx_sdk_specified(). + """ +- global MACOS_SDK_ROOT ++ global MACOS_SDK_ROOT, MACOS_SDK_SPECIFIED + + # If already called, return cached result. + if MACOS_SDK_ROOT: +@@ -72,8 +74,10 @@ def macosx_sdk_root(): + m = re.search(r'-isysroot\s+(\S+)', cflags) + if m is not None: + MACOS_SDK_ROOT = m.group(1) ++ MACOS_SDK_SPECIFIED = MACOS_SDK_ROOT != '/' + else: + MACOS_SDK_ROOT = '/' ++ MACOS_SDK_SPECIFIED = False + cc = sysconfig.get_config_var('CC') + tmpfile = '/tmp/setup_sdk_root.%d' % os.getpid() + try: +@@ -101,6 +105,27 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def macosx_sdk_specified(): ++ """Returns true if an SDK was explicitly configured. ++ ++ True if an SDK was selected at configure time, either by specifying ++ --enable-universalsdk=(something other than no or /) or by adding a ++ -isysroot option to CFLAGS. In some cases, like when making ++ decisions about macOS Tk framework paths, we need to be able to ++ know whether the user explicitly asked to build with an SDK versus ++ the implicit use of an SDK when header files are no longer ++ installed on a running system by the Command Line Tools. ++ """ ++ global MACOS_SDK_SPECIFIED ++ ++ # If already called, return cached result. ++ if MACOS_SDK_SPECIFIED: ++ return MACOS_SDK_SPECIFIED ++ ++ # Find the sdk root and set MACOS_SDK_SPECIFIED ++ macosx_sdk_root() ++ return MACOS_SDK_SPECIFIED ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -1834,31 +1859,72 @@ class PyBuildExt(build_ext): + return 1 + + def detect_tkinter_darwin(self, inc_dirs, lib_dirs): +- # The _tkinter module, using frameworks. Since frameworks are quite +- # different the UNIX search logic is not sharable. +- from os.path import join, exists +- framework_dirs = [ +- '/Library/Frameworks', +- '/System/Library/Frameworks/', +- join(os.getenv('HOME'), '/Library/Frameworks') +- ] ++ # Build default _tkinter on macOS using Tcl and Tk frameworks. ++ # ++ # The macOS native Tk (AKA Aqua Tk) and Tcl are most commonly ++ # built and installed as macOS framework bundles. However, ++ # for several reasons, we cannot take full advantage of the ++ # Apple-supplied compiler chain's -framework options here. ++ # Instead, we need to find and pass to the compiler the ++ # absolute paths of the Tcl and Tk headers files we want to use ++ # and the absolute path to the directory containing the Tcl ++ # and Tk frameworks for linking. ++ # ++ # We want to handle here two common use cases on macOS: ++ # 1. Build and link with system-wide third-party or user-built ++ # Tcl and Tk frameworks installed in /Library/Frameworks. ++ # 2. Build and link using a user-specified macOS SDK so that the ++ # built Python can be exported to other systems. In this case, ++ # search only the SDK's /Library/Frameworks (normally empty) ++ # and /System/Library/Frameworks. ++ # ++ # Any other use case should be able to be handled explicitly by ++ # using the options described above in detect_tkinter_explicitly(). ++ # In particular it would be good to handle here the case where ++ # you want to build and link with a framework build of Tcl and Tk ++ # that is not in /Library/Frameworks, say, in your private ++ # $HOME/Library/Frameworks directory or elsewhere. It turns ++ # out to be difficult to make that work automtically here ++ # without bringing into play more tools and magic. That case ++ # can be hamdled using a recipe with the right arguments ++ # to detect_tkinter_explicitly(). ++ # ++ # Note also that the fallback case here is to try to use the ++ # Apple-supplied Tcl and Tk frameworks in /System/Library but ++ # be forewarned that they are deprecated by Apple and typically ++ # out-of-date and buggy; their use should be avoided if at ++ # all possible by installing a newer version of Tcl and Tk in ++ # /Library/Frameworks before bwfore building Python without ++ # an explicit SDK or by configuring build arguments explicitly. + +- sysroot = macosx_sdk_root() ++ from os.path import join, exists ++ sysroot = macosx_sdk_root() # path to the SDK or '/' ++ ++ if macosx_sdk_specified(): ++ # Use case #2: an SDK other than '/' was specified. ++ # Only search there. ++ framework_dirs = [ ++ join(sysroot, 'Library', 'Frameworks'), ++ join(sysroot, 'System', 'Library', 'Frameworks'), ++ ] ++ else: ++ # Use case #1: no explicit SDK selected. ++ # Search the local system-wide /Library/Frameworks, ++ # not the one in the default SDK, othewise fall back to ++ # /System/Library/Frameworks whose header files may be in ++ # the default SDK or, on older systems, actually installed. ++ framework_dirs = [ ++ join('/', 'Library', 'Frameworks'), ++ join(sysroot, 'System', 'Library', 'Frameworks'), ++ ] + +- # Find the directory that contains the Tcl.framework and Tk.framework +- # bundles. +- # XXX distutils should support -F! ++ # Find the directory that contains the Tcl.framework and ++ # Tk.framework bundles. + for F in framework_dirs: + # both Tcl.framework and Tk.framework should be present +- +- + for fw in 'Tcl', 'Tk': +- if is_macosx_sdk_path(F): +- if not exists(join(sysroot, F[1:], fw + '.framework')): +- break +- else: +- if not exists(join(F, fw + '.framework')): +- break ++ if not exists(join(F, fw + '.framework')): ++ break + else: + # ok, F is now directory with both frameworks. Continure + # building +@@ -1868,32 +1934,20 @@ class PyBuildExt(build_ext): + # will now resume. + return 0 + +- # For 8.4a2, we must add -I options that point inside the Tcl and Tk +- # frameworks. In later release we should hopefully be able to pass +- # the -F option to gcc, which specifies a framework lookup path. +- # + include_dirs = [ + join(F, fw + '.framework', H) + for fw in 'Tcl', 'Tk' +- for H in 'Headers', 'Versions/Current/PrivateHeaders' ++ for H in ('Headers',) + ] + +- # For 8.4a2, the X11 headers are not included. Rather than include a +- # complicated search, this is a hard-coded path. It could bail out +- # if X11 libs are not found... +- include_dirs.append('/usr/X11R6/include') +- frameworks = ['-framework', 'Tcl', '-framework', 'Tk'] ++ # Add the base framework directory as well ++ compile_args = ['-F', F] + +- # All existing framework builds of Tcl/Tk don't support 64-bit +- # architectures. ++ # Do not build tkinter for archs that this Tk was not built with. + cflags = sysconfig.get_config_vars('CFLAGS')[0] + archs = re.findall('-arch\s+(\w+)', cflags) + +- if is_macosx_sdk_path(F): +- fp = os.popen("file %s/Tk.framework/Tk | grep 'for architecture'"%(os.path.join(sysroot, F[1:]),)) +- else: +- fp = os.popen("file %s/Tk.framework/Tk | grep 'for architecture'"%(F,)) +- ++ fp = os.popen("file %s/Tk.framework/Tk | grep 'for architecture'"%(F,)) + detected_archs = [] + for ln in fp: + a = ln.split()[-1] +@@ -1901,16 +1955,26 @@ class PyBuildExt(build_ext): + detected_archs.append(ln.split()[-1]) + fp.close() + ++ arch_args = [] + for a in detected_archs: +- frameworks.append('-arch') +- frameworks.append(a) ++ arch_args.append('-arch') ++ arch_args.append(a) ++ ++ compile_args += arch_args ++ link_args = [','.join(['-Wl', '-F', F, '-framework', 'Tcl', '-framework', 'Tk'])] + arch_args ++ ++ # The X11/xlib.h file bundled in the Tk sources can cause function ++ # prototype warnings from the compiler. Since we cannot easily fix ++ # that, suppress the warnings here instead. ++ if '-Wstrict-prototypes' in cflags.split(): ++ compile_args.append('-Wno-strict-prototypes') + + ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], + define_macros=[('WITH_APPINIT', 1)], + include_dirs = include_dirs, + libraries = [], +- extra_compile_args = frameworks[2:], +- extra_link_args = frameworks, ++ extra_compile_args = compile_args, ++ extra_link_args = link_args, + ) + self.extensions.append(ext) + return 1 +-- +2.30.1 + diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0003-Support-arm64-in-Mac-Tools-pythonw.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0003-Support-arm64-in-Mac-Tools-pythonw.patch new file mode 100644 index 0000000000..f2ca62198e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0003-Support-arm64-in-Mac-Tools-pythonw.patch @@ -0,0 +1,34 @@ +From d93a26fee21a5f91c51d8cb14ecaf29122f1b222 Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 17:25:00 +0900 +Subject: [PATCH 3/7] Support "arm64" in Mac/Tools/pythonw + +Imported from: https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch +--- + Mac/Tools/pythonw.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/Mac/Tools/pythonw.c b/Mac/Tools/pythonw.c +index 76734c1063..ebe5e8d975 100644 +--- a/Mac/Tools/pythonw.c ++++ b/Mac/Tools/pythonw.c +@@ -116,10 +116,16 @@ setup_spawnattr(posix_spawnattr_t* spawnattr) + + #elif defined(__ppc__) + cpu_types[0] = CPU_TYPE_POWERPC; ++ + #elif defined(__i386__) + cpu_types[0] = CPU_TYPE_X86; ++ ++#elif defined(__arm64__) ++ cpu_types[0] = CPU_TYPE_ARM64; ++ + #else + # error "Unknown CPU" ++ + #endif + + if (posix_spawnattr_setbinpref_np(spawnattr, count, +-- +2.30.1 + diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch new file mode 100644 index 0000000000..68c7fd4789 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch @@ -0,0 +1,85 @@ +From a1b08c7de72c27d80a86b92c263d1f5b351e581b Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 18:07:48 +0900 +Subject: [PATCH 4/7] Use system libffi for Mac OS 10.15 and up + +Modified and imported from: https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch +--- + setup.py | 37 ++++++++++++++++++++++++++++--------- + 1 file changed, 28 insertions(+), 9 deletions(-) + +diff --git a/setup.py b/setup.py +index da1d34efaf..c92d0552e3 100644 +--- a/setup.py ++++ b/setup.py +@@ -126,6 +126,13 @@ def macosx_sdk_specified(): + macosx_sdk_root() + return MACOS_SDK_SPECIFIED + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -2180,7 +2187,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2224,15 +2235,24 @@ class PyBuildExt(build_ext): + sources=['_ctypes/_ctypes_test.c']) + self.extensions.extend([ext, ext_test]) + +- if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): +- return ++ ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] ++ ffi_lib = None + ++ #inc_dirs = self.inc_dirs.copy() ++ inc_dirs = self.compiler.include_dirs[:] + if host_platform == 'darwin': +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') ++ if not self.use_system_libffi: ++ return ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = [ffi_in_sdk] ++ ffi_lib = 'ffi' ++ sources.remove('_ctypes/malloc_closure.c') ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') + +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] + if not ffi_inc or ffi_inc[0] == '': + ffi_inc = find_file('ffi.h', [], inc_dirs) + if ffi_inc is not None: +@@ -2247,8 +2267,7 @@ class PyBuildExt(build_ext): + ffi_inc = None + print('Header file {} does not define LIBFFI_H or ' + 'ffi_wrapper_h'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: ++ if ffi_lib is None and ffi_inc is not None: + for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name +-- +2.30.1 + diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch new file mode 100644 index 0000000000..48ce24768d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch @@ -0,0 +1,221 @@ +From 4394ec26842b04335b30b9a0595fcc8591c68496 Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 18:59:44 +0900 +Subject: [PATCH 5/7] ctypes: use the correct ABI for variadic functions + +Modified and imported from https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch +--- + Doc/library/ctypes.rst | 6 +++++ + Lib/test/test_str.py | 2 ++ + Lib/test/test_unicode.py | 3 +++ + Modules/_ctypes/_ctypes.c | 31 +++++++++++++++++++++++ + Modules/_ctypes/callproc.c | 51 +++++++++++++++++++++++++++++--------- + Modules/_ctypes/ctypes.h | 1 + + 6 files changed, 82 insertions(+), 12 deletions(-) + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 6a5299145f..ec97da607f 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1584,6 +1584,12 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. + + .. attribute:: errcheck + +diff --git a/Lib/test/test_str.py b/Lib/test/test_str.py +index 73ed542a51..131f6d13e0 100644 +--- a/Lib/test/test_str.py ++++ b/Lib/test/test_str.py +@@ -489,6 +489,8 @@ class CAPITest(unittest.TestCase): + c_char_p) + + PyString_FromFormat = pythonapi.PyString_FromFormat ++ PyString_FromFormat.variadic = True ++ PyString_FromFormat.argtypes = (c_char_p,) + PyString_FromFormat.restype = py_object + + # basic tests +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 92476f68a5..23e9e643e0 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -1676,6 +1676,7 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + test_support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) +@@ -1684,6 +1685,8 @@ class CAPITest(unittest.TestCase): + else: + name = "PyUnicodeUCS4_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index bef251ef04..d03b98d09c 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3253,6 +3253,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob) + { +@@ -3299,6 +3327,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5838,6 +5868,7 @@ init_ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyInt_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyInt_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyInt_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyInt_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 066fefc0cc..39a539db47 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -88,6 +88,9 @@ + #define DONT_USE_SEH + #endif + ++#if defined(__APPLE__) && __arm64__ ++#define HAVE_FFI_PREP_CIF_VAR 1 ++#endif + + #define CTYPES_CAPSULE_ERROROBJ "_ctypes/callproc.c error object" + CTYPES_CAPSULE_INSTANTIATE_DESTRUCTOR(CTYPES_CAPSULE_ERROROBJ) +@@ -773,7 +776,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + #ifdef WITH_THREAD + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ +@@ -801,15 +805,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1181,9 +1209,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index 12b56c4342..8aec3d1ade 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -325,6 +325,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +-- +2.30.1 + diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch new file mode 100644 index 0000000000..8e94a947b4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch @@ -0,0 +1,108 @@ +From 43819cd35cddd189cbe513032e76f1c1a6ec6d8c Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 19:14:50 +0900 +Subject: [PATCH 6/7] ctypes: probe libffi for ffi_closure_alloc and + ffi_prep_cif_var + +Modified and imported from https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch +--- + Modules/_ctypes/callproc.c | 4 ---- + setup.py | 34 +++++++++++++++++++++++++--------- + 2 files changed, 25 insertions(+), 13 deletions(-) + +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 39a539db47..5273e8d246 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -88,10 +88,6 @@ + #define DONT_USE_SEH + #endif + +-#if defined(__APPLE__) && __arm64__ +-#define HAVE_FFI_PREP_CIF_VAR 1 +-#endif +- + #define CTYPES_CAPSULE_ERROROBJ "_ctypes/callproc.c error object" + CTYPES_CAPSULE_INSTANTIATE_DESTRUCTOR(CTYPES_CAPSULE_ERROROBJ) + +diff --git a/setup.py b/setup.py +index c92d0552e3..beaf60f3e5 100644 +--- a/setup.py ++++ b/setup.py +@@ -141,6 +141,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -2235,7 +2242,7 @@ class PyBuildExt(build_ext): + sources=['_ctypes/_ctypes_test.c']) + self.extensions.extend([ext, ext_test]) + +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") + ffi_lib = None + + #inc_dirs = self.inc_dirs.copy() +@@ -2245,18 +2252,19 @@ class PyBuildExt(build_ext): + return + ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") + if os.path.exists(ffi_in_sdk): +- ffi_inc = [ffi_in_sdk] ++ ffi_inc = ffi_in_sdk + ffi_lib = 'ffi' +- sources.remove('_ctypes/malloc_closure.c') + else: + # OS X 10.5 comes with libffi.dylib; the include files are + # in /usr/include/ffi + inc_dirs.append('/usr/include/ffi') + +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + with open(ffi_h) as f: + for line in f: + line = line.strip() +@@ -2267,14 +2275,22 @@ class PyBuildExt(build_ext): + ffi_inc = None + print('Header file {} does not define LIBFFI_H or ' + 'ffi_wrapper_h'.format(ffi_h)) +- if ffi_lib is None and ffi_inc is not None: ++ if ffi_lib is None and ffi_inc: + for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 + diff --git a/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0007-Remove-QuickTime-from-link-args.patch b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0007-Remove-QuickTime-from-link-args.patch new file mode 100644 index 0000000000..ffe9106797 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/2.7.18/Python-2.7.18/0007-Remove-QuickTime-from-link-args.patch @@ -0,0 +1,40 @@ +From 41ee254166bb690feb665991fc2442e335631314 Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 19:20:30 +0900 +Subject: [PATCH 7/7] Remove QuickTime from link args + +--- + Mac/Modules/qt/setup.py | 2 +- + setup.py | 3 +-- + 2 files changed, 2 insertions(+), 3 deletions(-) + +diff --git a/Mac/Modules/qt/setup.py b/Mac/Modules/qt/setup.py +index 8442011ab9..4b5bc2bc20 100644 +--- a/Mac/Modules/qt/setup.py ++++ b/Mac/Modules/qt/setup.py +@@ -6,7 +6,7 @@ from distutils.core import Extension, setup + setup(name="QuickTime", version="0.2", + ext_modules=[ + Extension('QuickTime._Qt', ['_Qtmodule.c'], +- extra_link_args=['-framework', 'Carbon', '-framework', 'QuickTime']) ++ extra_link_args=['-framework', 'Carbon']) + ], + py_modules=['QuickTime.Qt', 'QuickTime.QuickTime'], + package_dir={'QuickTime':'../../../Lib/plat-mac/Carbon'} +diff --git a/setup.py b/setup.py +index beaf60f3e5..ff2298af91 100644 +--- a/setup.py ++++ b/setup.py +@@ -1819,8 +1819,7 @@ class PyBuildExt(build_ext): + + exts.append( Extension('_Qt', ['qt/_Qtmodule.c'], + extra_compile_args=carbon_extra_compile_args, +- extra_link_args=['-framework', 'QuickTime', +- '-framework', 'Carbon']) ) ++ extra_link_args=['-framework', 'Carbon']) ) + + + self.extensions.extend(exts) +-- +2.30.1 + From 0c6ad7c52bca1bb09b84bbe0e86b1ddd5f80998c Mon Sep 17 00:00:00 2001 From: rallyemax Date: Mon, 20 Sep 2021 15:30:11 -0600 Subject: [PATCH 0292/1324] Fix sed commands (#2071) In GNU `sed`, the `-iEe` argument is equivalent to `--in-place=Ee`, which would create `~/.profileEe` as backup of `~/.profile` if the command executed successfully. However, because the `e` is no longer being processed as an expression argument, `sed` does not correctly join the expressions and exits with `sed: -e expression #2, char 10: unexpected }`. The intent is to use extended regex, perform the changes in-place, and use a series of expressions, so `-Ei -e` is used instead. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 88a5045c80..1a7ebf99fc 100644 --- a/README.md +++ b/README.md @@ -239,7 +239,7 @@ easy to fork and contribute any changes back upstream. ~~~bash # the sed invocation inserts the lines at the start of the file # after any initial comment lines - sed -iEe '/^([^#]|$)/ {a \ + sed -Ei -e '/^([^#]|$)/ {a \ export PYENV_ROOT="$HOME/.pyenv" a \ export PATH="$PYENV_ROOT/bin:$PATH" @@ -253,7 +253,7 @@ easy to fork and contribute any changes back upstream. - **If your `~/.bash_profile` sources `~/.bashrc` (Red Hat, Fedora, CentOS):** ~~~ bash - sed -iEe '/^([^#]|$)/ {a \ + sed -Ei -e '/^([^#]|$)/ {a \ export PYENV_ROOT="$HOME/.pyenv" a \ export PATH="$PYENV_ROOT/bin:$PATH" From 3a20ce755520ea4766c41a0b8cfe312d73ecd3d2 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Fri, 17 Sep 2021 23:27:41 -0400 Subject: [PATCH 0293/1324] Add default verbosity to add_miniconda.py Required to prevent a crash when no verbosity given. --- plugins/python-build/scripts/add_miniconda.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index fb52b3d2ee..23f3d01703 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -250,7 +250,7 @@ def key_fn(spec: MinicondaSpec): help="Do not write scripts, just report them to stdout", ) parser.add_argument( - "-v", "--verbose", action="count", + "-v", "--verbose", action="count", default=0, help="Increase verbosity of logging", ) parsed = parser.parse_args() From 8b07b92c3788889de66447da5574b7161fdc1c1a Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sun, 19 Sep 2021 21:47:28 -0400 Subject: [PATCH 0294/1324] Support newer miniconda filenames --- plugins/python-build/scripts/add_miniconda.py | 32 +++++++++++++++---- 1 file changed, 25 insertions(+), 7 deletions(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 23f3d01703..bed6f591a3 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -44,7 +44,7 @@ install_line_fmt = """ "{os}-{arch}" ) - install_script "Miniconda{suffix}-{version_str}-{os}-{arch}" "{repo}/Miniconda{suffix}-{version_str}-{os}-{arch}.sh#{md5}" "miniconda" verify_{py_version} + install_script "Miniconda{suffix}-{version_py_version}{version_str}-{os}-{arch}" "{repo}/Miniconda{suffix}-{version_py_version}{version_str}-{os}-{arch}.sh#{md5}" "miniconda" verify_{py_version} ;; """.strip() @@ -126,17 +126,29 @@ def __hash__(self): class MinicondaVersion(NamedTuple): suffix: Suffix version_str: VersionStr + py_version: Optional[PyVersion] @classmethod def from_str(cls, s): - miniconda_n, ver = s.split("-") - return MinicondaVersion(Suffix(miniconda_n[-1]), VersionStr(ver)) + components = s.split("-") + if len(components) == 3: + miniconda_n, py_ver, ver = components + py_ver = PyVersion(f"py{py_ver.replace('.', '')}") + else: + miniconda_n, ver = components + py_ver = None + return MinicondaVersion(Suffix(miniconda_n[-1]), VersionStr(ver), py_ver) def to_filename(self): - return f"miniconda{self.suffix}-{self.version_str}" + if self.py_version: + return f"miniconda{self.suffix}-{self.py_version.version()}-{self.version_str}" + else: + return f"miniconda{self.suffix}-{self.version_str}" def default_py_version(self): - if self.suffix == Suffix.TWO: + if self.py_version: + return self.py_version + elif self.suffix == Suffix.TWO: return PyVersion.PY27 elif self.version_str.info() < (4, 7): # https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html @@ -146,7 +158,7 @@ def default_py_version(self): def with_version_triple(self): return MinicondaVersion( - self.suffix, VersionStr.from_info(self.version_str.info()[:3]) + self.suffix, VersionStr.from_info(self.version_str.info()[:3]), self.py_version ) @@ -160,8 +172,13 @@ class MinicondaSpec(NamedTuple): @classmethod def from_filestem(cls, stem, md5, py_version=None): miniconda_n, ver, os, arch = stem.split("-") + if ver.startswith("py"): + py_ver, ver = ver.split("_", maxsplit=1) + py_ver = PyVersion(py_ver) + else: + py_ver = None spec = MinicondaSpec( - MinicondaVersion(Suffix(miniconda_n[-1]), VersionStr(ver)), + MinicondaVersion(Suffix(miniconda_n[-1]), VersionStr(ver), py_ver), SupportedOS(os), SupportedArch(arch), md5, @@ -175,6 +192,7 @@ def to_install_lines(self): repo=MINICONDA_REPO, suffix=self.version.suffix, version_str=self.version.version_str, + version_py_version=f"{self.version.py_version}_" if self.version.py_version else "", os=self.os, arch=self.arch, md5=self.md5, From 848e56e992f366222e65225b5cc905d2d51f762f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Sep 2021 20:30:16 +0300 Subject: [PATCH 0295/1324] Add Pyenv tests to Github Actions Now that Travis check has been removed from the repo --- .github/workflows/pyenv_tests.yml | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 .github/workflows/pyenv_tests.yml diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml new file mode 100644 index 0000000000..284f77e35b --- /dev/null +++ b/.github/workflows/pyenv_tests.yml @@ -0,0 +1,33 @@ +name: pyenv_tests +on: [pull_request, push] +jobs: + pyenv_tests: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-20.04 + - ubuntu-18.04 + - macos-11 + - macos-10.15 + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + # Normally, we would use the superbly maintained... + # - uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # ... but in the repo, we want to test pyenv builds on Ubuntu + # - run: | + # sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ + # libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ + # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + # https://github.com/pyenv/pyenv#installation + - run: pwd + - env: + PYENV_ROOT: /home/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + make test From 7f714c34ba97d2a8d829203973f9751484b473ef Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Sep 2021 21:05:11 +0300 Subject: [PATCH 0296/1324] Bats 1.2 requires readline from gnu coreutils in MacOS --- .github/workflows/pyenv_tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 284f77e35b..5eb275b862 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -23,6 +23,8 @@ jobs: # libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation + - run: | + if test "$RUNNER_OS" == "macOS"; then brew install coreutils; fi - run: pwd - env: PYENV_ROOT: /home/runner/work/pyenv/pyenv From 6185bb55e602f673dac4ca1cca0df382adda53d1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Sep 2021 22:26:39 +0300 Subject: [PATCH 0297/1324] allow for sys.executable to be different --- test/exec.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/exec.bats b/test/exec.bats index 61b4711d7f..56a0f61e2b 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -79,7 +79,7 @@ OUT } @test "sys.executable with system version (#98)" { - system_python=$(which python3) + system_python="$(python3 -c 'import sys; print(sys.executable)')" PYENV_VERSION="custom" create_executable "python3" "" From 876be1bb04a9952a10a723a828316bbb9eb117cb Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 16 Sep 2021 00:34:00 +0300 Subject: [PATCH 0298/1324] Bats: path_without: support multiple args --- test/prefix.bats | 2 +- test/test_helper.bash | 32 +++++++++++++++++--------------- test/versions.bats | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/test/prefix.bats b/test/prefix.bats index 5da1a5f80e..0cea7aa1cd 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -46,6 +46,6 @@ OUT } @test "prefix for invalid system" { - PATH="$(path_without python)" run pyenv-prefix system + PATH="$(path_without python python2 python3)" run pyenv-prefix system assert_failure "pyenv: system version not found in PATH" } diff --git a/test/test_helper.bash b/test/test_helper.bash index e11cd8f1c8..b11d65bd8c 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -111,24 +111,26 @@ assert() { # Output a modified PATH that ensures that the given executable is not present, # but in which system utils necessary for pyenv operation are still available. path_without() { - local exe="$1" local path=":${PATH}:" - local found alt util - for found in $(which -a "$exe"); do - found="${found%/*}" - if [ "$found" != "${PYENV_ROOT}/shims" ]; then - alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" - mkdir -p "$alt" - for util in bash head cut readlink greadlink; do - if [ -x "${found}/$util" ]; then - ln -s "${found}/$util" "${alt}/$util" - fi - done - path="${path/:${found}:/:${alt}:}" - fi + for exe; do + local found alt util + for found in $(PATH="$path" which -a "$exe"); do + found="${found%/*}" + if [ "$found" != "${PYENV_ROOT}/shims" ]; then + alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" + mkdir -p "$alt" + for util in bash head cut readlink greadlink which; do + if [ -x "${found}/$util" ]; then + ln -s "${found}/$util" "${alt}/$util" + fi + done + path="${path/:${found}:/:${alt}:}" + fi + done done path="${path#:}" - echo "${path%:}" + path="${path%:}" + echo "$path" } create_hook() { diff --git a/test/versions.bats b/test/versions.bats index 8ded5c4a4e..932883c716 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -25,7 +25,7 @@ stub_system_python() { } @test "not even system python available" { - PATH="$(path_without python)" run pyenv-versions + PATH="$(path_without python python2 python3)" run pyenv-versions assert_failure assert_output "Warning: no Python detected on the system" } From f504b01818cfbd5889af96120e71adca255297b7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 16 Sep 2021 00:42:05 +0300 Subject: [PATCH 0299/1324] consistent message --- test/prefix.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/prefix.bats b/test/prefix.bats index 0cea7aa1cd..adf27baf70 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -25,7 +25,7 @@ load test_helper } #Arch has Python at sbin as well as bin -@test "prefix for sbin system" { +@test "prefix for system in sbin" { mkdir -p "${PYENV_TEST_DIR}/sbin" touch "${PYENV_TEST_DIR}/sbin/python" chmod +x "${PYENV_TEST_DIR}/sbin/python" From c6c4e41eb99c6f52f3d2b4a69e501b4713643eb5 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 16 Sep 2021 01:55:02 +0300 Subject: [PATCH 0300/1324] Bats: show output on failed assertions --- test/test_helper.bash | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/test_helper.bash b/test/test_helper.bash index b11d65bd8c..30615cd389 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -44,7 +44,8 @@ flunk() { assert_success() { if [ "$status" -ne 0 ]; then - flunk "command failed with exit status $status" + flunk "command failed with exit status $status" $'\n'\ + "output: $output" elif [ "$#" -gt 0 ]; then assert_output "$1" fi @@ -52,7 +53,8 @@ assert_success() { assert_failure() { if [ "$status" -eq 0 ]; then - flunk "expected failed exit status" + flunk "expected failed exit status" $'\n'\ + "output: $output" elif [ "$#" -gt 0 ]; then assert_output "$1" fi From 6882be06a6174a4b3e92ca34bd6608c10b453999 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 21 Sep 2021 03:17:58 +0300 Subject: [PATCH 0301/1324] Bats: report unstub failure details --- plugins/python-build/test/stubs/stub | 40 +++++++++++++++++----- plugins/python-build/test/test_helper.bash | 1 + 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/plugins/python-build/test/stubs/stub b/plugins/python-build/test/stubs/stub index bd5c5d6880..5ff72b81a9 100755 --- a/plugins/python-build/test/stubs/stub +++ b/plugins/python-build/test/stubs/stub @@ -11,11 +11,10 @@ _STUB_RUN="${PROGRAM}_STUB_RUN" _STUB_INDEX="${PROGRAM}_STUB_INDEX" _STUB_RESULT="${PROGRAM}_STUB_RESULT" _STUB_END="${PROGRAM}_STUB_END" -_STUB_DEBUG="${PROGRAM}_STUB_DEBUG" +_STUB_LOG="${PROGRAM}_STUB_LOG" -if [ -n "${!_STUB_DEBUG}" ]; then - echo "$program" "$@" >&${!_STUB_DEBUG} -fi +[ -n "${!_STUB_LOG}" ] || eval "${_STUB_LOG}"="${TMPDIR}/${program}-stub-log" +if test -z "${!_STUB_END}"; then echo "$program" "$@" >>"${!_STUB_LOG}"; fi [ -e "${!_STUB_PLAN}" ] || exit 1 [ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${TMPDIR}/${program}-stub-run" @@ -24,7 +23,7 @@ fi # Initialize or load the stub run information. eval "${_STUB_INDEX}"=1 eval "${_STUB_RESULT}"=0 -[ ! -e "${!_STUB_RUN}" ] || source "${!_STUB_RUN}" +if test -e "${!_STUB_RUN}"; then source "${!_STUB_RUN}"; fi # Loop over each line in the plan. @@ -80,15 +79,40 @@ done < "${!_STUB_PLAN}" if [ -n "${!_STUB_END}" ]; then - # Clean up the run file. - rm -f "${!_STUB_RUN}" - # If the number of lines in the plan is larger than # the requested index, we failed. if [ $index -ge "${!_STUB_INDEX}" ]; then eval "${_STUB_RESULT}"=1 + { + echo "index: $index; stub index: ${!_STUB_INDEX}" + echo "plan:" + cat "${!_STUB_PLAN}" + echo "run:" + cat "${!_STUB_RUN}" + echo "log:" + cat "${!_STUB_LOG}" + } >&2 + fi + if [ "${!_STUB_RESULT}" -ne 0 ]; then + { + echo "index: $index; stub index: ${!_STUB_INDEX}" + echo "plan:" + cat "${!_STUB_PLAN}" || true + echo "run:" + cat "${!_STUB_RUN}" || true + echo "log:" + cat "${!_STUB_LOG}" || true + } >&2 fi + # Clean up the run file. + rm -f "${!_STUB_RUN}" + rm -f "${!_STUB_LOG}" + + # Clean up the run file. + rm -f "${!_STUB_RUN}" + rm -f "${!_STUB_LOG}" + # Return the result. exit "${!_STUB_RESULT}" diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index c7494f6443..da52a44f74 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -25,6 +25,7 @@ stub() { export "${prefix}_STUB_PLAN"="${TMP}/${program}-stub-plan" export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run" + export "${prefix}_STUB_LOG"="${TMP}/${program}-stub-log" export "${prefix}_STUB_END"= mkdir -p "${TMP}/bin" From e28661c7e295b22d81696a3aa796d8d5d9c172fe Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 21 Sep 2021 05:05:29 +0300 Subject: [PATCH 0302/1324] Fix random "broken pipe" --- libexec/pyenv-help | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-help b/libexec/pyenv-help index 919625766d..d89c0ffb5b 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -44,8 +44,9 @@ extract_initial_comment_block() { } collect_documentation() { - # shellcheck disable=SC2016 - $(type -P gawk awk | head -1) ' + # `tail` prevents "broken pipe" errors due to `head` closing thge pipe without reading everything + # https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error/642932#642932 + $(type -P gawk awk | tail -n +1 | head -1) ' /^Summary:/ { summary = substr($0, 10) next From 2f8c625a7dde6dae516a824a9ffa6591b09e70e8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 20 Sep 2021 07:43:08 +0300 Subject: [PATCH 0303/1324] Fix test failures --- plugins/python-build/test/build.bats | 8 +++----- plugins/python-build/test/compiler.bats | 8 ++------ plugins/python-build/test/pyenv_ext.bats | 26 +++++++++--------------- plugins/python-build/test/version.bats | 3 +-- 4 files changed, 16 insertions(+), 29 deletions(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 3113b37bb7..e2f953310e 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -160,17 +160,15 @@ OUT brew_libdir="$TMP/homebrew-yaml" mkdir -p "$brew_libdir" - # pyenv/pyenv#1026 - stub uname false false - - stub uname '-s : echo Linux' - stub uname '-s : echo Darwin' + for i in {1..4}; do stub uname '-s : echo Darwin'; done + for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix libyaml : echo '$brew_libdir'" false false stub_make_install install_fixture definitions/needs-yaml assert_success + unstub sw_vers unstub uname unstub brew unstub make diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index 0d426e0c2a..df81305654 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -63,13 +63,9 @@ DEF mkdir -p "$INSTALL_ROOT" cd "$INSTALL_ROOT" - # pyenv/pyenv#1026 - stub uname false '-s : echo Darwin' false '-s : echo Darwin' '-s : echo Darwin' - stub sw_vers '-productVersion : echo 10.10' + for i in {1..5}; do stub uname '-s : echo Darwin'; done + for i in {1..4}; do stub sw_vers '-productVersion : echo 10.10'; done - stub sw_vers '-productVersion : echo 10.10' - stub sw_vers '-productVersion : echo 10.10' - stub sw_vers '-productVersion : echo 10.10' stub cc 'false' stub brew 'false' stub make \ diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index e4453113b8..9afb0ac739 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -136,7 +136,7 @@ OUT @test "apply built-in python patches should be sorted by its name" { cached_tarball "Python-3.6.2" - stub brew false + for i in {1..2}; do stub brew '* : false'; done stub_make_install stub patch ' : for arg; do [[ "$arg" == "-"* ]] || sed -e "s/^/patch: /" "$arg"; done >> build.log' @@ -144,9 +144,7 @@ OUT echo "bar" | install_patch definitions/vanilla-python "Python-3.6.2/bar.patch" echo "baz" | install_patch definitions/vanilla-python "Python-3.6.2/baz.patch" - # yyuu/pyenv#257 - stub uname '-s : echo Linux' - stub uname '-s : echo Linux' + for i in {1..2}; do stub uname '-s : echo Linux'; done TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null assert_success @@ -173,9 +171,7 @@ OUT " : echo \"$MAKE \$@\" >> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" - # yyuu/pyenv#257 - stub uname '-s : echo Linux' - stub uname '-s : echo Linux' + for i in {1..4}; do stub uname '-s : echo Darwin'; done PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null assert_success @@ -259,10 +255,7 @@ OUT touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config" chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config" - # yyuu/pyenv#257 - stub uname '-s : echo Darwin' - - stub uname '-s : echo Darwin' + for i in {1..3}; do stub uname '-s : echo Darwin'; done PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition <> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" @@ -311,6 +303,8 @@ make install OUT unstub make + unstub uname + unstub brew } @test "default MACOSX_DEPLOYMENT_TARGET" { diff --git a/plugins/python-build/test/version.bats b/plugins/python-build/test/version.bats index 370abc74de..15c8635fcf 100644 --- a/plugins/python-build/test/version.bats +++ b/plugins/python-build/test/version.bats @@ -32,8 +32,7 @@ static_version="$(grep VERSION "$bats_bin" | head -1 | cut -d'"' -f 2)" @test "git remote doesn't match" { stub git \ - 'remote -v : echo origin https://github.com/Homebrew/homebrew.git' \ - "describe --tags HEAD : echo v1984-12-gSHA" + 'remote -v : echo origin https://github.com/Homebrew/homebrew.git' run python-build --version assert_success "python-build ${static_version}" } From af55330d379ac827938f77a66b952c1ab52043b0 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sun, 19 Sep 2021 21:49:58 -0400 Subject: [PATCH 0304/1324] Add miniconda2-2.7-4.8.3, miniconda3-3.7-4.10.3, miniconda3-3.8-4.10.3, miniconda3-3.9-4.10.3 --- .../share/python-build/miniconda2-2.7-4.8.3 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-3.7-4.10.3 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-3.8-4.10.3 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-3.9-4.10.3 | 19 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda2-2.7-4.8.3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 diff --git a/plugins/python-build/share/python-build/miniconda2-2.7-4.8.3 b/plugins/python-build/share/python-build/miniconda2-2.7-4.8.3 new file mode 100644 index 0000000000..a459ffea60 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda2-2.7-4.8.3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda2-py27_4.8.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda2-py27_4.8.3-Linux-ppc64le.sh#120b300120b1362831f2075cc0bd452f" "miniconda" verify_py27 + ;; +"Linux-x86_64" ) + install_script "Miniconda2-py27_4.8.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda2-py27_4.8.3-Linux-x86_64.sh#19ce7d0039ab349914d928e7f32b1c1b" "miniconda" verify_py27 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda2-py27_4.8.3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda2-py27_4.8.3-MacOSX-x86_64.sh#14e2d294decc5a48a449b588f5819c10" "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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 b/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 new file mode 100644 index 0000000000..ded90b82d9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py37_4.10.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-ppc64le.sh#a926bbaf28d59ac1264799e3ca770a44" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_4.10.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh#9f186c1d86c266acc47dbc1603f0e2ed" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_4.10.3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-MacOSX-x86_64.sh#b88a2eb66917c55a6bd1973fabaf05b3" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 b/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 new file mode 100644 index 0000000000..7f1438a546 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py38_4.10.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-ppc64le.sh#12ddb1b94f30f8fc633c3223b0398d2f" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_4.10.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-x86_64.sh#14da4a9a44b337f7ccb8363537f65b9c" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_4.10.3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-MacOSX-x86_64.sh#cb609591c280423e999fc421cdb779d3" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 b/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 new file mode 100644 index 0000000000..3a08afb9b8 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py39_4.10.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-ppc64le.sh#07ea41c691bdcc7d9c71cae1a1a88151" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_4.10.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh#8c69f65a4ae27fb41df0fe552b4a8a3b" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_4.10.3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-MacOSX-x86_64.sh#09bb30a9204ced74ce3c06762cb442fc" "miniconda" verify_py39 + ;; +* ) + { 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 From 0a3b72d8906f2f3b50ae415d2c129dea23fb2cf9 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 23 Sep 2021 12:00:09 +0300 Subject: [PATCH 0305/1324] Don't update conda when installing pip --- plugins/python-build/bin/python-build | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a18680a494..1672e81c12 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1042,7 +1042,9 @@ build_package_anaconda() { build_package_miniconda() { build_package_anaconda "$@" - "${PREFIX_PATH}/bin/conda" install --yes "pip" + # Workaround to not upgrade conda when installing pip + # see https://github.com/pyenv/pyenv/issues/2070 + "${PREFIX_PATH}/bin/conda" install --yes "pip" "conda=$(${PREFIX_PATH}/bin/conda --version | cut -d ' ' -f 2) } build_package_copy() { From 47d3dee0bbba7423a987f860c2af908b98c03699 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 23 Sep 2021 12:26:46 +0300 Subject: [PATCH 0306/1324] Fix --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 1672e81c12..ea9763288c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1044,7 +1044,7 @@ build_package_miniconda() { build_package_anaconda "$@" # Workaround to not upgrade conda when installing pip # see https://github.com/pyenv/pyenv/issues/2070 - "${PREFIX_PATH}/bin/conda" install --yes "pip" "conda=$(${PREFIX_PATH}/bin/conda --version | cut -d ' ' -f 2) + "${PREFIX_PATH}/bin/conda" install --yes "pip" "conda=$(${PREFIX_PATH}/bin/conda --version | cut -d ' ' -f 2)" } build_package_copy() { From 3051d2100420e0b3d82c69d72cd8bf2666ad3bde Mon Sep 17 00:00:00 2001 From: Kevin Modzelewski Date: Fri, 24 Sep 2021 15:10:50 -0400 Subject: [PATCH 0307/1324] Add pyston-2.3.1 support We changed the directory structure for pyston 2.3.1 slightly, where we now include a top-level "pyston-2.3.1" directory when you unpack the tarball. --- plugins/python-build/bin/python-build | 23 +++++++++++++++++-- .../share/python-build/pyston-2.2 | 2 +- .../share/python-build/pyston-2.3 | 2 +- .../share/python-build/pyston-2.3.1 | 19 +++++++++++++++ 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 plugins/python-build/share/python-build/pyston-2.3.1 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index ea9763288c..47ca56a1fd 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -858,8 +858,8 @@ build_package_jython_builder() { ( cd "dist" && build_package_jython ) } -build_package_pyston() { - # currently supported version 2.2 and upper +build_package_pyston2.2() { + # currently supported version 2.2 and 2.3 build_package_copy mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib" local bin @@ -876,6 +876,25 @@ build_package_pyston() { shopt -u nullglob } +build_package_pyston() { + # currently supported version 2.3.1 and higher + build_package_copy + mv "${PREFIX_PATH}/usr/bin" "${PREFIX_PATH}/bin" + mv "${PREFIX_PATH}/usr/lib" "${PREFIX_PATH}/lib" + local bin + shopt -s nullglob + for bin in "usr/bin/"*; do + if [ -f "${bin}" ] && [ -x "${bin}" ] && [ ! -L "${bin}" ]; then + case "${bin##*/}" in + "python"* ) + ( cd "${PREFIX_PATH}/bin" && ln -fs ../usr/bin/"${bin##*/}" "python" ) + ;; + esac + fi + done + shopt -u nullglob +} + build_package_ironpython() { mkdir -p "${PREFIX_PATH}/bin" cp -fR . "${PREFIX_PATH}/bin" diff --git a/plugins/python-build/share/python-build/pyston-2.2 b/plugins/python-build/share/python-build/pyston-2.2 index 8ba706ed94..667e3af51d 100644 --- a/plugins/python-build/share/python-build/pyston-2.2 +++ b/plugins/python-build/share/python-build/pyston-2.2 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston" verify_py38 get_pip + install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston2.2" verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3 b/plugins/python-build/share/python-build/pyston-2.3 index 161b03d71b..ae4c4dc2bd 100644 --- a/plugins/python-build/share/python-build/pyston-2.3 +++ b/plugins/python-build/share/python-build/pyston-2.3 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" "pyston" verify_py38 get_pip + install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" "pyston2.2" verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3.1 b/plugins/python-build/share/python-build/pyston-2.3.1 new file mode 100644 index 0000000000..7a5039544a --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.3.1 @@ -0,0 +1,19 @@ +echo +colorize 1 "WARNING" +echo ": Pyston only runs on x86_64 platforms, and only has been tested on Ubuntu" +echo "so, your mileage may vary with other Linux distributions." +echo + +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_2.3.1" "https://github.com/pyston/pyston/releases/download/pyston_2.3.1/pyston_2.3.1_portable.tar.gz#04ba4cb0249973870b8f198f05d6d22c054cb5b059865cacf7e623b3624949e8" "pyston" verify_py38 get_pip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston 2.3.1 binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 11c54713bbdca74c61c533b94e6dc9a749311571 Mon Sep 17 00:00:00 2001 From: Kevin Modzelewski Date: Fri, 24 Sep 2021 17:23:35 -0400 Subject: [PATCH 0308/1324] This looks unnecessary now --- plugins/python-build/bin/python-build | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 47ca56a1fd..4e23d342fd 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -881,18 +881,6 @@ build_package_pyston() { build_package_copy mv "${PREFIX_PATH}/usr/bin" "${PREFIX_PATH}/bin" mv "${PREFIX_PATH}/usr/lib" "${PREFIX_PATH}/lib" - local bin - shopt -s nullglob - for bin in "usr/bin/"*; do - if [ -f "${bin}" ] && [ -x "${bin}" ] && [ ! -L "${bin}" ]; then - case "${bin##*/}" in - "python"* ) - ( cd "${PREFIX_PATH}/bin" && ln -fs ../usr/bin/"${bin##*/}" "python" ) - ;; - esac - fi - done - shopt -u nullglob } build_package_ironpython() { From a7895e6ea828487bc63cb3bb589507fb82844b30 Mon Sep 17 00:00:00 2001 From: Kevin Modzelewski Date: Tue, 28 Sep 2021 14:12:46 -0400 Subject: [PATCH 0309/1324] Update to Pyston's v2 package of the 2.3.1 release (#2078) This one gets rid of the extra "usr" subdirectory that we had and now fits the format that pyenv expects --- plugins/python-build/bin/python-build | 4 +--- plugins/python-build/share/python-build/pyston-2.3.1 | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4e23d342fd..2c7176eeb8 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -877,10 +877,8 @@ build_package_pyston2.2() { } build_package_pyston() { - # currently supported version 2.3.1 and higher + # currently supported version 2.3.1v2 and higher build_package_copy - mv "${PREFIX_PATH}/usr/bin" "${PREFIX_PATH}/bin" - mv "${PREFIX_PATH}/usr/lib" "${PREFIX_PATH}/lib" } build_package_ironpython() { diff --git a/plugins/python-build/share/python-build/pyston-2.3.1 b/plugins/python-build/share/python-build/pyston-2.3.1 index 7a5039544a..c6a4435050 100644 --- a/plugins/python-build/share/python-build/pyston-2.3.1 +++ b/plugins/python-build/share/python-build/pyston-2.3.1 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3.1" "https://github.com/pyston/pyston/releases/download/pyston_2.3.1/pyston_2.3.1_portable.tar.gz#04ba4cb0249973870b8f198f05d6d22c054cb5b059865cacf7e623b3624949e8" "pyston" verify_py38 get_pip + install_package "pyston_2.3.1" "https://github.com/pyston/pyston/releases/download/pyston_2.3.1/pyston_2.3.1_portable_v2.tar.gz#4e16df1eaf5f226c0629f2db1e63033454c94cb9e29f50154177819662df5b15" "pyston" verify_py38 get_pip ;; * ) { echo From 9985f7b436bd8bea5d1a6c898c908534db476b13 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 1 Oct 2021 02:30:28 +0300 Subject: [PATCH 0310/1324] Honor CONFIGURE_OPTS as well as PYTHON_CONFIGURE_OPTS when detecting options --- plugins/python-build/bin/python-build | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4e23d342fd..c04c79d668 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1656,7 +1656,7 @@ apply_python_patch() { } build_package_symlink_version_suffix() { - if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then + if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if [ -e "${PREFIX_PATH}/bin" ]; then # Always create `bin` as symlink to framework path if the version was built with `--enable-frameowrk` (#590) rm -rf "${PREFIX_PATH}/bin.orig" @@ -2105,7 +2105,7 @@ fi package_option python configure --libdir="${PREFIX_PATH}/lib" # python-build: Set `RPATH` if `--enable-shared` was given (#65, #66, #82) -if [[ "$CONFIGURE_OPTS" == *"--enable-shared"* ]] || [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-shared"* ]]; then +if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-shared"* ]]; then # The ld on Darwin embeds the full paths to each dylib by default if [[ "$LDFLAGS" != *"-rpath="* ]] && ! is_mac; then export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}" @@ -2118,7 +2118,7 @@ if [[ "$PYPY_OPTS" == *"--shared"* ]]; then fi # Add support for framework installation (`--enable-framework`) of CPython (#55, #99) -if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then +if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if ! is_mac; then echo "python-build: framework installation is not supported." >&2 exit 1 @@ -2139,7 +2139,7 @@ if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then fi # Build against universal SDK (#219, #220) -if [[ "$PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then +if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then if ! is_mac; then echo "python-build: universal installation is not supported." >&2 exit 1 From 6139b51af43eaa2d3c6ad2c8d522dae4e17974eb Mon Sep 17 00:00:00 2001 From: sandipanpanda <87253083+sandipanpanda@users.noreply.github.com> Date: Sat, 2 Oct 2021 22:24:12 +0530 Subject: [PATCH 0311/1324] Add documentaion for prefix command (#2087) --- COMMANDS.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/COMMANDS.md b/COMMANDS.md index 6da9c0e414..d138e6d254 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -16,6 +16,7 @@ The most common subcommands are: * [`pyenv versions`](#pyenv-versions) * [`pyenv which`](#pyenv-which) * [`pyenv whence`](#pyenv-whence) +* [`pyenv prefix`](#pyenv-prefix) ## `pyenv commands` @@ -278,3 +279,12 @@ Lists all Python versions with the given command installed. 2.6.8 2.7.6 3.3.3 + +## `pyenv prefix` + +Displays the directory where a Python version is installed. If no +version is given, `pyenv prefix` displays the location of the +currently selected version. + + $ pyenv prefix 3.9.7 + /home/user/.pyenv/versions/3.9.7 From 3b1bc86031a053b4d1a0c83bd552c6111765c69e Mon Sep 17 00:00:00 2001 From: sandipanpanda <87253083+sandipanpanda@users.noreply.github.com> Date: Sat, 2 Oct 2021 22:28:56 +0530 Subject: [PATCH 0312/1324] Add documentation for root command (#2088) * Add documentation for root command --- COMMANDS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/COMMANDS.md b/COMMANDS.md index d138e6d254..34db5a6ed5 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -16,6 +16,7 @@ The most common subcommands are: * [`pyenv versions`](#pyenv-versions) * [`pyenv which`](#pyenv-which) * [`pyenv whence`](#pyenv-whence) +* [`pyenv root`](#pyenv-root) * [`pyenv prefix`](#pyenv-prefix) @@ -280,6 +281,13 @@ Lists all Python versions with the given command installed. 2.7.6 3.3.3 +## `pyenv root` + +Displays the root directory where versions and shims are kept. + + $ pyenv root + /home/user/.pyenv + ## `pyenv prefix` Displays the directory where a Python version is installed. If no From 681d31bc369d8d44f9bb697eef1152f38372edb6 Mon Sep 17 00:00:00 2001 From: sandipanpanda <87253083+sandipanpanda@users.noreply.github.com> Date: Sat, 2 Oct 2021 22:30:24 +0530 Subject: [PATCH 0313/1324] Add documentation for hooks command (#2089) --- COMMANDS.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/COMMANDS.md b/COMMANDS.md index 34db5a6ed5..ffa51dd2f5 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -18,7 +18,7 @@ The most common subcommands are: * [`pyenv whence`](#pyenv-whence) * [`pyenv root`](#pyenv-root) * [`pyenv prefix`](#pyenv-prefix) - +* [`pyenv hooks`](#pyenv-hooks) ## `pyenv commands` @@ -296,3 +296,9 @@ currently selected version. $ pyenv prefix 3.9.7 /home/user/.pyenv/versions/3.9.7 + +## `pyenv hooks` + + Usage: $ pyenv hooks + +Lists installed hook scripts for a given pyenv command. From bb6a747c028b841715d14147a87f659a8afefac4 Mon Sep 17 00:00:00 2001 From: sandipanpanda <87253083+sandipanpanda@users.noreply.github.com> Date: Sun, 3 Oct 2021 01:40:37 +0530 Subject: [PATCH 0314/1324] Add documentation for shims command (#2091) --- COMMANDS.md | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index ffa51dd2f5..0a55f21c78 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -19,6 +19,7 @@ The most common subcommands are: * [`pyenv root`](#pyenv-root) * [`pyenv prefix`](#pyenv-prefix) * [`pyenv hooks`](#pyenv-hooks) +* [`pyenv shims`](#pyenv-shims) ## `pyenv commands` @@ -299,6 +300,32 @@ currently selected version. ## `pyenv hooks` - Usage: $ pyenv hooks - Lists installed hook scripts for a given pyenv command. + + Usage: pyenv hooks + +## `pyenv shims` + +List existing pyenv shims. + + Usage: pyenv shims [--short] + + $ pyenv shims + /home/user/.pyenv/shims/2to3 + /home/user/.pyenv/shims/2to3-3.9 + /home/user/.pyenv/shims/idle + /home/user/.pyenv/shims/idle3 + /home/user/.pyenv/shims/idle3.9 + /home/user/.pyenv/shims/pip + /home/user/.pyenv/shims/pip3 + /home/user/.pyenv/shims/pip3.9 + /home/user/.pyenv/shims/pydoc + /home/user/.pyenv/shims/pydoc3 + /home/user/.pyenv/shims/pydoc3.9 + /home/user/.pyenv/shims/python + /home/user/.pyenv/shims/python3 + /home/user/.pyenv/shims/python3.9 + /home/user/.pyenv/shims/python3.9-config + /home/user/.pyenv/shims/python3.9-gdb.py + /home/user/.pyenv/shims/python3-config + /home/user/.pyenv/shims/python-config From 0688b17cc15201248194d57248339041a6939bdd Mon Sep 17 00:00:00 2001 From: sandipanpanda <87253083+sandipanpanda@users.noreply.github.com> Date: Sun, 3 Oct 2021 01:45:18 +0530 Subject: [PATCH 0315/1324] Add documentation for exec command (#2090) --- COMMANDS.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/COMMANDS.md b/COMMANDS.md index 0a55f21c78..97d31721df 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -16,6 +16,7 @@ The most common subcommands are: * [`pyenv versions`](#pyenv-versions) * [`pyenv which`](#pyenv-which) * [`pyenv whence`](#pyenv-whence) +* [`pyenv exec`](#pyenv-exec) * [`pyenv root`](#pyenv-root) * [`pyenv prefix`](#pyenv-prefix) * [`pyenv hooks`](#pyenv-hooks) @@ -282,6 +283,21 @@ Lists all Python versions with the given command installed. 2.7.6 3.3.3 +## `pyenv exec` + + `Usage: pyenv exec [arg1 arg2...]` + +Runs an executable by first preparing PATH so that the selected Python +version's `bin` directory is at the front. + +For example, if the currently selected Python version is 3.9.7: + + `pyenv exec pip install -r requirements.txt` + +is equivalent to: + + `PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt` + ## `pyenv root` Displays the root directory where versions and shims are kept. From d601efa0d536d1a216f5776ed20538685ea4f0b9 Mon Sep 17 00:00:00 2001 From: Parnassius Date: Mon, 4 Oct 2021 20:58:46 +0200 Subject: [PATCH 0316/1324] Add Python 3.10.0 --- .github/workflows/ubuntu_tests.yml | 2 +- plugins/python-build/share/python-build/{3.10.0rc2 => 3.10.0} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename plugins/python-build/share/python-build/{3.10.0rc2 => 3.10.0} (53%) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 665e6f1624..81bab71304 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -12,7 +12,7 @@ jobs: - 3.7.10 - 3.8.10 - 3.9.5 - - 3.10.0rc2 + - 3.10.0 runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 diff --git a/plugins/python-build/share/python-build/3.10.0rc2 b/plugins/python-build/share/python-build/3.10.0 similarity index 53% rename from plugins/python-build/share/python-build/3.10.0rc2 rename to plugins/python-build/share/python-build/3.10.0 index 86c3c48938..8542079c1d 100644 --- a/plugins/python-build/share/python-build/3.10.0rc2 +++ b/plugins/python-build/share/python-build/3.10.0 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.0rc2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc2.tar.xz#e75b56088548b7b9ad1f2571e6f5a2315e4808cb6b5fbe8288502afc802b2f24" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz#5a99f8e7a6a11a7b98b4e75e0d1303d3832cada5534068f69c7b6222a7b1b002" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.0rc2" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0rc2.tgz#0f8bf53dbe6f85785d502e73984aa3f12f67ac4958d9b8d8012019c35c646fe2" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.0" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz#c4e0cbad57c90690cb813fb4663ef670b4d0f587d8171e2c42bd4c9245bd2758" standard verify_py310 copy_python_gdb ensurepip fi From 8315e1528bad880f318bbc62327e4f7b2c5c46ba Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 5 Oct 2021 12:27:48 +0300 Subject: [PATCH 0317/1324] Create FUNDING.yml --- .github/FUNDING.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000000..8914ef4817 --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [pyenv] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: pyenv # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 2a9c18372a50fb3772ab6939782b0de782ac1fef Mon Sep 17 00:00:00 2001 From: "Ashwin V. Mohanan" <9155111+ashwinvis@users.noreply.github.com> Date: Tue, 5 Oct 2021 15:28:13 +0200 Subject: [PATCH 0318/1324] Update mambaforge-pypy3 Fix typo `ase` -> `case` --- plugins/python-build/share/python-build/mambaforge-pypy3 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/mambaforge-pypy3 b/plugins/python-build/share/python-build/mambaforge-pypy3 index c42197d8ed..fb493e4e68 100644 --- a/plugins/python-build/share/python-build/mambaforge-pypy3 +++ b/plugins/python-build/share/python-build/mambaforge-pypy3 @@ -1,4 +1,4 @@ -ase "$(anaconda_architecture 2>/dev/null || true)" in +case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-ppc64le" ) install_script "Mambaforge-pypy3-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-pypy3-Linux-ppc64le.sh" "miniconda" verify_py3_latest ;; From 108a10a198720568c9247e2aa6f403ea839d5ed8 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 5 Oct 2021 17:32:15 +0300 Subject: [PATCH 0319/1324] Update CHANGELOG.md --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3964e9b80..e66691e56c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ ## Version History +## Release 2.1.0 +* Fix mambaforge-pypy3 build (#2096) +* Add Python 3.10.0 (#2093) +* Add documentation for exec command (#2090) +* Add documentation for shims command (#2091) +* Add documentation for hooks command (#2089) +* Add documentation for root command (#2088) +* Add documentaion for prefix command (#2087) +* Update to Pyston's v2 package of the 2.3.1 release (#2078) +* Add pyston-2.3.1 support (#2075) +* Don't update conda when installing pip (#2074) +* Improve `add_miniconda.py` (#2072) +* GitHub actions tests (#2073) +* Fix sed commands (#2071) +* macOS: fix the build of Python 2.7.18 on macOS 11.5.2 (Big Sur) + Apple Silicon (#2061) + ## Release 2.0.7 * Update setup instructions in the Readme (#2067) * Allow tcl-tk as argument or try with homebrew by default (#1646) From 05ca057bb28dce41cf64b1bd91c61eb261956481 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 5 Oct 2021 17:32:37 +0300 Subject: [PATCH 0320/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 86fb741dde..e09f99fdf1 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.0.7" +version="2.1.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 483d95d6d203e3dd9972f5d14c87e35d4febefb0 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 5 Oct 2021 17:49:38 +0300 Subject: [PATCH 0321/1324] Remove travis build status --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 1a7ebf99fc..e7234cc084 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,6 @@ [![Join the chat at https://gitter.im/yyuu/pyenv](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/yyuu/pyenv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![Build Status](https://travis-ci.org/pyenv/pyenv.svg?branch=master)](https://travis-ci.org/pyenv/pyenv) - pyenv lets you easily switch between multiple versions of Python. It's simple, unobtrusive, and follows the UNIX tradition of single-purpose tools that do one thing well. From 9c72c27d768c20e995b188c3849bdbf76bff3c5b Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 6 Oct 2021 07:25:55 -0400 Subject: [PATCH 0322/1324] Add CPython 3.11.0a1 --- plugins/python-build/share/python-build/3.11.0a1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.0a1 diff --git a/plugins/python-build/share/python-build/3.11.0a1 b/plugins/python-build/share/python-build/3.11.0a1 new file mode 100644 index 0000000000..5305ec03d8 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.0a1 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.11.0a1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a1.tar.xz#966319daafa40f337e4d85a0b26fbdd919135c321eb3961a9b3d758abbc95376" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.0a1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a1.tgz#d2c83771a671d0755d1cda5d82aaea70ef32d337fe5bf87036bd113fc088edff" standard verify_py311 copy_python_gdb ensurepip +fi From f5cc25ed14294115811b6b9112f17258b7801a90 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 7 Oct 2021 02:36:50 +0300 Subject: [PATCH 0323/1324] Fix "`build_package_pyston2.2': not a valid identifier" --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/share/python-build/pyston-2.2 | 2 +- plugins/python-build/share/python-build/pyston-2.3 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4f8485af0c..4095ad2169 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -858,7 +858,7 @@ build_package_jython_builder() { ( cd "dist" && build_package_jython ) } -build_package_pyston2.2() { +build_package_pyston2_2() { # currently supported version 2.2 and 2.3 build_package_copy mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib" diff --git a/plugins/python-build/share/python-build/pyston-2.2 b/plugins/python-build/share/python-build/pyston-2.2 index 667e3af51d..31a5c15ad3 100644 --- a/plugins/python-build/share/python-build/pyston-2.2 +++ b/plugins/python-build/share/python-build/pyston-2.2 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston2.2" verify_py38 get_pip + install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston2_2" verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3 b/plugins/python-build/share/python-build/pyston-2.3 index ae4c4dc2bd..25d5b41317 100644 --- a/plugins/python-build/share/python-build/pyston-2.3 +++ b/plugins/python-build/share/python-build/pyston-2.3 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" "pyston2.2" verify_py38 get_pip + install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" "pyston2_2" verify_py38 get_pip ;; * ) { echo From 3a35f43eb4714c677a1165a0cdef1437b9a62655 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 8 Oct 2021 11:47:01 +0300 Subject: [PATCH 0324/1324] Update FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 8914ef4817..8f0876a901 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +custom: ['https://www.bountysource.com/teams/yyuu-pyenv/issues'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 88c3404997248427d5962d90d7f2651491480955 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 8 Oct 2021 11:56:08 +0300 Subject: [PATCH 0325/1324] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 21ba97a77a..f023b45f66 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -18,4 +18,11 @@ Make sure you have checked all steps below. - [ ] Python version: - [ ] C Compiler information (e.g. gcc 7.3): - [ ] Please attach verbose build log as gist - * You can turn on verbose debug logging using by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` + * If the problem happens in a Pyenv invocation, you can turn on debug logging by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` + * If the problem happens outside of a Pyenv invocation, get the debug log like this: + ``` + export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + set -x + + set +x + ``` From 07aa659dbb106ef48fceba8c91574ed84cdc65c7 Mon Sep 17 00:00:00 2001 From: Marcin Konowalczyk Date: Tue, 12 Oct 2021 12:09:15 +0100 Subject: [PATCH 0326/1324] fish installation instructions (#2104) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e7234cc084..35d090b9e9 100644 --- a/README.md +++ b/README.md @@ -347,7 +347,7 @@ easy to fork and contribute any changes back upstream. echo 'eval "$(pyenv init -)"' >> ~/.zshrc ~~~ - - For **Fish shell**: + - For **Fish shell**: Execute this interactively: From 208be7d6af9bc58078bc9caf34002efcbfefbc4f Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 14 Oct 2021 12:13:46 +0300 Subject: [PATCH 0327/1324] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index f023b45f66..d3f06c72d1 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -17,7 +17,7 @@ Make sure you have checked all steps below. - [ ] pyenv version: - [ ] Python version: - [ ] C Compiler information (e.g. gcc 7.3): -- [ ] Please attach verbose build log as gist +- [ ] Please attach a debug trace log as gist * If the problem happens in a Pyenv invocation, you can turn on debug logging by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` * If the problem happens outside of a Pyenv invocation, get the debug log like this: ``` From ed38af64090e985ce0e71087a6f6663600188a09 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 15 Oct 2021 22:15:25 +0300 Subject: [PATCH 0328/1324] Add Homerew alias to fix `brew doctor`'s warning Closes #106 --- README.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/README.md b/README.md index 35d090b9e9..0189090ecb 100644 --- a/README.md +++ b/README.md @@ -183,6 +183,28 @@ For pyenv to install python correctly you should [**install the Python build dep ``` 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #2 ("Configure your shell's environment for Pyenv"). + 3. **OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_** + + If you're going to build Homebrew formulae from source that link against `libpython` + like Tkinter or NumPy + _(This is only generally the case if you are a developer of such a formula, + or if you have an EOL version of MacOS for which prebuilt bottles are no longer available + and are using such a formula)._ + + To avoid them accidentally linking against a Pyenv-provided Python, + add the following line into your interactive shell's configuration: + + * Bash/Zsh: + + ~~~bash + alias brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew' + ~~~ + + * Fish: + + ~~~fish + alias brew="env PATH=(string replace (pyenv root)/shims '' \"\$PATH\") brew" + ~~~ ### Windows From 0915c5b7b6b56b20e0de48edcc3ab3b94f33bbb8 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 16 Oct 2021 01:57:05 +0300 Subject: [PATCH 0329/1324] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0189090ecb..7aeeac61cb 100644 --- a/README.md +++ b/README.md @@ -183,7 +183,7 @@ For pyenv to install python correctly you should [**install the Python build dep ``` 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #2 ("Configure your shell's environment for Pyenv"). - 3. **OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_** + 3. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_ If you're going to build Homebrew formulae from source that link against `libpython` like Tkinter or NumPy From 5963dc4f617497513f550ea63e90d277432f26eb Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 16 Oct 2021 14:51:39 +0300 Subject: [PATCH 0330/1324] Discover Tcl/Tk reliably and use active version (#2106) Link to the active version like other Homebrew deps -- this won't break when another binary-compatible version is installed. Use a discovery method that doesn't break when other versions are present alongside. --- plugins/python-build/bin/python-build | 13 +++++++------ plugins/python-build/test/build.bats | 15 ++++++--------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4095ad2169..fdd7aec248 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1533,12 +1533,13 @@ use_xcode_sdk_zlib() { use_homebrew_tcltk() { # get the version from the folder that homebrew versions - local tcltk_version_long="$(ls "$(brew --cellar tcl-tk)")" - local tcltk_version="${tcltk_version_long%.*}" - local tcltk_flags="--with-tcltk-includes=-I$tcltk_libdir/include --with-tcltk-libs=-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" - echo "python-build: use tcl-tk from homebrew" - 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" + local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" + if [ -d "$tcltk_libdir" ]; then + echo "python-build: use tcl-tk from homebrew" + 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" + fi } # FIXME: this function is a workaround for #1125 diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index e2f953310e..f30ce9f8f6 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -242,18 +242,15 @@ OUT @test "tcl-tk is linked from Homebrew" { cached_tarball "Python-3.6.2" - - # python build + tcl_tk_version=8.6 tcl_tk_libdir="$TMP/homebrew-tcl-tk" - tcl_tk_version_long="8.6.10" - tcl_tk_version="${tcl_tk_version_long%.*}" - mkdir -p "$tcl_tk_libdir" - mkdir -p "$tcl_tk_libdir/$tcl_tk_version_long" + mkdir -p "$tcl_tk_libdir/lib" + echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh" - # pyenv/pyenv#1026 - stub uname false false + stub uname false - stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'" "--cellar tcl-tk : echo '$TMP/homebrew-tcl-tk'" false + for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done + stub brew false stub_make_install run_inline_definition < Date: Tue, 19 Oct 2021 09:19:08 -0400 Subject: [PATCH 0331/1324] pypy3.7-7.3.6 --- .../share/python-build/pypy3.7-7.3.6 | 43 +++++++++++++++++++ .../share/python-build/pypy3.7-7.3.6-src | 7 +++ 2 files changed, 50 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.6 create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.6-src diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.6 b/plugins/python-build/share/python-build/pypy3.7-7.3.6 new file mode 100644 index 0000000000..53c471f38a --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.6 @@ -0,0 +1,43 @@ +VERSION='7.3.6' +PYVER='3.7' +# https://www.pypy.org/checksums.html + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#459e77c845b31fa9367f7b1b1122155f0ba7888b1d4ce4455c35d2111eeeb275" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#c41d07063b1d002a91ad2a0763b4baaca2b306ec635889c2e4826e706cc7f9ca" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#d446b6987eeaa03d706603863e83d6b99df69232cf1e06d3ee5706add6a84cd6" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#26f0c5c2a5f4a2ce35281d2fa760aa10715300dd110387eac43699a78ed32365" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"s390x" ) + install_package "pypy${PYVER}-v${VERSION}-s390x" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-s390x.tar.bz2#3659bf96a177a53426ffc38d3619c6ee307e600c80e924edc9cee604680c141d" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"win64" ) + install_zip "pypy${PYVER}-v${VERSION}-win64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win64.zip#341e69a369da5a1f4f69dbbd47e7dff5e745439b203e28c7afcf98308a24b003" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.6-src b/plugins/python-build/share/python-build/pypy3.7-7.3.6-src new file mode 100644 index 0000000000..fc910d4eec --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.6-src @@ -0,0 +1,7 @@ +VERSION='7.3.6' +PYVER='3.7' + +#require_gcc +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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#9252ccaa130094205b3c7f0a2cad5adc0d9dfba31658ff3172f788dec1fdb348" "pypy_builder" "verify_py${PYVER//./}" ensurepip From 09877f45cb215033c905eec7082a75a992716467 Mon Sep 17 00:00:00 2001 From: Dan Dees Date: Tue, 19 Oct 2021 09:35:23 -0400 Subject: [PATCH 0332/1324] pypy3.8-7.3.6 --- .../share/python-build/pypy3.8-7.3.6 | 43 +++++++++++++++++++ .../share/python-build/pypy3.8-7.3.6-src | 8 ++++ 2 files changed, 51 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.6 create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.6-src diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.6 b/plugins/python-build/share/python-build/pypy3.8-7.3.6 new file mode 100644 index 0000000000..5f26156d9e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.6 @@ -0,0 +1,43 @@ +VERSION='7.3.6' +PYVER='3.8' +# https://www.pypy.org/checksums.html + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#e857a04a76285f0ef5bae84f6f5e9943ca415d499204c531b1c33fe8f015b48d" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#8579ea990e95d2b7e101ef47fd9ebf25a9500d5086e8f708c43f9bae83306ece" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#704d5303096e8a3173e73435f3bb204e31a8bf02ed5ba617a4a0f1e7491edf50" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#8195e52a20cf2a4f42c2d7e4969fbf44fe349c1f80f758e20525dd0f8c134bec" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"s390x" ) + install_package "pypy${PYVER}-v${VERSION}-s390x" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-s390x.zip#a36208d5e950ec4b630b33d0aede8ca3da383d973fc5ca387082c7e5bad8d245" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"win64" ) + install_zip "pypy${PYVER}-v${VERSION}-win64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win64.zip#1b216fd75f8f0a48633cc21dce7d6f25ba65016142df758842e1df661269b458" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.6-src b/plugins/python-build/share/python-build/pypy3.8-7.3.6-src new file mode 100644 index 0000000000..37fccdb4ce --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.6-src @@ -0,0 +1,8 @@ +VERSION='7.3.6' +PYVER='3.8' +# https://www.pypy.org/checksums.html + +#require_gcc +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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#f234c56eb0d4ab0afb196232fb38cd1ca8e19b1c65cf7b65eb691695499be259" "pypy_builder" "verify_py${PYVER//./}" ensurepip From d4f45b0096895769f0789674867b57c8555fa625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Thu, 21 Oct 2021 17:04:03 +0200 Subject: [PATCH 0333/1324] Add GraalPython 21.3.0 (#2117) --- .../share/python-build/graalpython-21.3.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-21.3.0 diff --git a/plugins/python-build/share/python-build/graalpython-21.3.0 b/plugins/python-build/share/python-build/graalpython-21.3.0 new file mode 100644 index 0000000000..866d4de16d --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-21.3.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2021, 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='21.3.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="b17bbc9753fb04f03290660952acfd212020676603970323780f190509b061b9" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="feecbd2567a43aeaeb5ca6a7385ef3d5bd2c94e563b64afee7dcce0c8f87a1c9" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From a0157608546c3b685815d030dc471255ff0e0a45 Mon Sep 17 00:00:00 2001 From: Khushl Vora <67469072+K-Titan@users.noreply.github.com> Date: Sat, 23 Oct 2021 20:03:18 +0530 Subject: [PATCH 0334/1324] Update README.md (#2120) Minor changes to make the docs better. --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7aeeac61cb..4dee783c29 100644 --- a/README.md +++ b/README.md @@ -12,13 +12,13 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and ![Terminal output example](/terminal_output.png) -### pyenv _does..._ +### what pyenv _does..._ -* Let you **change the global Python version** on a per-user basis. -* Provide support for **per-project Python versions**. -* Allow you to **override the Python version** with an environment +* Lets you **change the global Python version** on a per-user basis. +* Provides support for **per-project Python versions**. +* Allows you to **override the Python version** with an environment variable. -* Search commands from **multiple versions of Python at a time**. +* Searches for commands from **multiple versions of Python at a time**. This may be helpful to test across Python versions with [tox](https://pypi.python.org/pypi/tox). From 8db91d5516b4cc84f060e0e1a24a5ab6e6927b1b Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 23 Oct 2021 22:01:57 +0300 Subject: [PATCH 0335/1324] Default --with-universal-archs to universal2 on Apple Silicon (#2122) Don't override a user-supplied value --- plugins/python-build/bin/python-build | 12 ++++++++-- plugins/python-build/test/pyenv_ext.bats | 30 +++++++++++++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index fdd7aec248..e7f79a450a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2137,13 +2137,21 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; the package_option python configure --enable-framework="${PREFIX_PATH}/Library/Frameworks" fi -# Build against universal SDK (#219, #220) +# Build against universal SDK if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then if ! is_mac; then echo "python-build: universal installation is not supported." >&2 exit 1 fi - package_option python configure --enable-universalsdk=/ --with-universal-archs=intel + package_option python configure --enable-universalsdk=/ + if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--enable-universal-archs"* ]]; then + # in CPython's configure.ac, --with-universal-archs defaults to 'intel' which means i386 + x86_64 + # since 2.7.5 and 3.3.0 -- i.e. in all non-EOL versions + # Apple Silicon cannot build these, in it, it rather makes sense to default to Universal2 binaries + if [[ $(arch) == "arm64" ]]; then + package_option python configure --with-universal-archs=universal2 + fi + fi fi # Compile with `--enable-unicode=ucs4` by default (#257) diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 9afb0ac739..74a590fbaa 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -273,13 +273,41 @@ EOS @test "enable universalsdk" { for i in {1..3}; do stub uname '-s : echo Darwin'; done + stub arch "echo x86_64" PYTHON_CONFIGURE_OPTS="--enable-universalsdk" TMPDIR="$TMP" run_inline_definition < Date: Sun, 24 Oct 2021 23:33:32 +0300 Subject: [PATCH 0336/1324] Add documentation for completions command (#2126) --- COMMANDS.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/COMMANDS.md b/COMMANDS.md index 97d31721df..240cd667e2 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -21,6 +21,7 @@ The most common subcommands are: * [`pyenv prefix`](#pyenv-prefix) * [`pyenv hooks`](#pyenv-hooks) * [`pyenv shims`](#pyenv-shims) +* [`pyenv completions`](#pyenv-completions) ## `pyenv commands` @@ -345,3 +346,9 @@ List existing pyenv shims. /home/user/.pyenv/shims/python3.9-gdb.py /home/user/.pyenv/shims/python3-config /home/user/.pyenv/shims/python-config + +## `pyenv completions` + +Lists available completions for a given pyenv command. + + Usage: pyenv completions [arg1 arg2...] \ No newline at end of file From 0388da7d0b42574e08cbe82aed7de711ae4b116f Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 25 Oct 2021 01:08:57 +0300 Subject: [PATCH 0337/1324] Add setup instructions for the case when one installs Pyenv as part of a batch job (#2127) --- README.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4dee783c29..06a978b444 100644 --- a/README.md +++ b/README.md @@ -311,7 +311,7 @@ easy to fork and contribute any changes back upstream. In MacOS, make sure that your terminal app runs the shell as a login shell. - - **Temporary environments (CI, batch jobs):** + - **Temporary environments (CI, Docker, batch jobs):** In CI/build environments, paths and the environment are usually already set up for you in one of the above ways. @@ -323,6 +323,18 @@ easy to fork and contribute any changes back upstream. echo 'eval "$(pyenv init -)"' ~~~ + If you are installing Pyenv yourself as part of the batch job, + after installing the files, run the following in the job's shell + to be able to use it. + + ~~~bash + export PYENV_ROOT="$HOME/.pyenv" + export PATH="$PYENV_ROOT/bin:$PATH" # if `pyenv` is not already on PATH + eval "$(pyenv init --path)" + eval "$(pyenv init -)" + ~~~ + + **General Bash warning**: There are some systems where the `BASH_ENV` variable is configured to point to `.bashrc`. On such systems, you should almost certainly put the `eval "$(pyenv init -)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you From c0d8b9cfe85c814ecf4407efa66f9ee75716ce28 Mon Sep 17 00:00:00 2001 From: amd-9 Date: Mon, 25 Oct 2021 15:30:50 +0300 Subject: [PATCH 0338/1324] Add documentation for init command (#2125) --- COMMANDS.md | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/COMMANDS.md b/COMMANDS.md index 240cd667e2..b07e088335 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -21,6 +21,7 @@ The most common subcommands are: * [`pyenv prefix`](#pyenv-prefix) * [`pyenv hooks`](#pyenv-hooks) * [`pyenv shims`](#pyenv-shims) +* [`pyenv init`](#pyenv-init) * [`pyenv completions`](#pyenv-completions) ## `pyenv commands` @@ -347,8 +348,19 @@ List existing pyenv shims. /home/user/.pyenv/shims/python3-config /home/user/.pyenv/shims/python-config +## `pyenv init` + +Configure the shell environment for pyenv + + Usage: eval "$(pyenv init [-|--path] [--no-rehash] [])" + + - Initialize shims directory, print PYENV_SHELL variable, completions path + and shell function + --path Print shims path + --no-rehash Add no rehash command to output + ## `pyenv completions` Lists available completions for a given pyenv command. - Usage: pyenv completions [arg1 arg2...] \ No newline at end of file + Usage: pyenv completions [arg1 arg2...] From 4b82f575c7bdef378bcc40ca6b032a8e95c66bc6 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 26 Oct 2021 04:36:01 +0300 Subject: [PATCH 0339/1324] Append Homebrew custom prefix to search path (#1957) This is needed to find other Python deps (e.g. libintl) in Homebrew if it has nonstandard prefix (e.g. in Apple M1) * Re-allow to search Homebrew for zlib everywhere --- plugins/python-build/bin/python-build | 20 +++++++- plugins/python-build/test/build.bats | 58 ++++++++++++++++-------- plugins/python-build/test/pyenv_ext.bats | 2 +- 3 files changed, 59 insertions(+), 21 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index e7f79a450a..6c5dfcc8bc 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -773,10 +773,13 @@ build_package_standard_build() { local PACKAGE_CFLAGS="${package_var_name}_CFLAGS" if [ "$package_var_name" = "PYTHON" ]; then - use_tcltk || true - use_homebrew_readline || use_freebsd_pkg || true + use_homebrew || true + use_tcltk || true + use_homebrew_readline || use_freebsd_pkg || true if is_mac -ge 1014; then use_xcode_sdk_zlib || use_homebrew_zlib || true + else + use_homebrew_zlib || true fi fi @@ -1325,6 +1328,19 @@ configured_with_package_dir() { return 1 } +use_homebrew() { + # unless Homebrew is at the default /usr/local, need to add its paths to + # compiler search to be able to use non-keg-only deps from there + if command -v brew &>/dev/null; then + local brew_prefix="$(brew --prefix 2>/dev/null || true)" + # /usr/local/lib:/usr/lib is the default library search path + if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then + export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I${brew_prefix}/include" + export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L${brew_prefix}/lib" + fi + fi +} + needs_yaml() { ! configured_with_package_dir "python" "yaml.h" && ! use_homebrew_yaml diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index f30ce9f8f6..bcf656c262 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -62,10 +62,7 @@ assert_build_log() { cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - # pyenv/pyenv#1026 - stub uname false false - - stub uname '-s : echo Linux' '-s : echo Linux' + for i in {1..4}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -92,10 +89,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - # pyenv/pyenv#1026 - stub uname false false - - stub uname '-s : echo Linux' '-s : echo Linux' + for i in {1..4}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -154,6 +148,34 @@ make install OUT } +@test "homebrew with uncommon prefix is added to search path" { + cached_tarball "Python-3.6.2" + + BREW_PREFIX="$TMP/homebrew-prefix" + mkdir -p "$BREW_PREFIX" + + for i in {1..4}; do stub uname '-s : echo Darwin'; done + for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub brew "--prefix : echo '$BREW_PREFIX'" false + stub_make_install + + run_inline_definition <>"$tcl_tk_libdir/lib/tclConfig.sh" stub uname false - - for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done stub brew false + for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done + for i in {1..2}; do stub brew false; done stub_make_install run_inline_definition <> build.log" \ From 4bbf7d7bb0a24f8c6829cf63ff84210992fd0750 Mon Sep 17 00:00:00 2001 From: Danny Hermes Date: Mon, 25 Oct 2021 21:09:48 -0500 Subject: [PATCH 0340/1324] Adding PyPy release 7.3.7 (Python 3.7 and 3.8). (#2132) --- .../share/python-build/pypy3.7-7.3.7 | 43 +++++++++++++++++++ .../share/python-build/pypy3.7-7.3.7-src | 7 +++ .../share/python-build/pypy3.8-7.3.7 | 43 +++++++++++++++++++ .../share/python-build/pypy3.8-7.3.7-src | 8 ++++ 4 files changed, 101 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.7 create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.7-src create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.7 create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.7-src diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.7 b/plugins/python-build/share/python-build/pypy3.7-7.3.7 new file mode 100644 index 0000000000..73dc42de38 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.7 @@ -0,0 +1,43 @@ +VERSION='7.3.7' +PYVER='3.7' +# https://www.pypy.org/checksums.html + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#0ab9e2e8ae1ac463bb811b9d3ba24d138f41f7378c17ca9e2d8dee51bf151d19" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#8332f923755441fedfe4767a84601c94f4d6f8475384406cb5f259ad8d0b2002" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#a1a84882525dd574c4b051b66e9b7ef0e132392acc2f729420d7825f96835216" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#edc9df7d0f7c56f7ee05b24117bdb6c03aa65e768471e210c05ccdbbfd11a866" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"s390x" ) + install_package "pypy${PYVER}-v${VERSION}-s390x" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-s390x.tar.bz2#7f91efc65a69e727519cc885ca6351f4bfdd6b90580dced2fdcc9ae1bf10013b" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"win64" ) + install_zip "pypy${PYVER}-v${VERSION}-win64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win64.zip#53505dc0b57590290efd7656117ee5384bcd036f7f7c4f0bc3f5cd10299037d1" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.7-src b/plugins/python-build/share/python-build/pypy3.7-7.3.7-src new file mode 100644 index 0000000000..81b0145559 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.7-src @@ -0,0 +1,7 @@ +VERSION='7.3.7' +PYVER='3.7' + +#require_gcc +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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#2ed02ac9e710859c41bc82deafb08619792bb9a27eeaa1676c741ededd214dd7" "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.7 b/plugins/python-build/share/python-build/pypy3.8-7.3.7 new file mode 100644 index 0000000000..dbc4683d0e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.7 @@ -0,0 +1,43 @@ +VERSION='7.3.7' +PYVER='3.8' +# https://www.pypy.org/checksums.html + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#dfb9d005f0fc917edc60fd618143e4934c412f9168b55166f5519ba0a3b1a835" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#5dee37c7c3cb8b160028fbde3a5901c68043dfa545a16794502b897d4bc40d7e" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#cbd44e0a9146b3c03a9d14b265774a848f387ed846316c3e984847e278d0efd3" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#1f044fe7bbdd443b7913ecf554683dab6dade5dcd7f47d4e6d01f4bb4cf84836" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"s390x" ) + install_package "pypy${PYVER}-v${VERSION}-s390x" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-s390x.zip#ae7d6a76490b317a74b87788d596610c7ffd0ae2d3ffa2433d5bb5300f6b4b77" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"win64" ) + install_zip "pypy${PYVER}-v${VERSION}-win64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win64.zip#8ceb03d2f7b73c6ce0758290bc42ba366a45c46e033eda36f1779d957a905735" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.7-src b/plugins/python-build/share/python-build/pypy3.8-7.3.7-src new file mode 100644 index 0000000000..4ac447ea30 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.7-src @@ -0,0 +1,8 @@ +VERSION='7.3.7' +PYVER='3.8' +# https://www.pypy.org/checksums.html + +#require_gcc +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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#21ae339f4f5016d6ca7300305f3e3b554373835cb3c39a9041fe30e6811c80c6" "pypy_builder" "verify_py${PYVER//./}" ensurepip From a0cc289d156506b031762b2de7aec1046d6027e3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 27 Oct 2021 00:26:19 +0300 Subject: [PATCH 0341/1324] Added a wiki page on how to setup shell as a login shell in MacOS --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 06a978b444..2349d6bb5f 100644 --- a/README.md +++ b/README.md @@ -248,7 +248,7 @@ easy to fork and contribute any changes back upstream. section below to figure out what you need to do in your specific case. **General MacOS note:** - Make sure that your terminal app is configured to run the shell as a login shell + [Make sure that your terminal app is configured to run the shell as a login shell](https://github.com/pyenv/pyenv/wiki/MacOS-login-shell) (especially if you're using an alternative terminal app and/or shell). The configuration samples for MacOS are written under this assumption and won't work otherwise. From 1fa027af1ec247f78309616b3029c62c5994982e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 27 Oct 2021 11:15:29 +0300 Subject: [PATCH 0342/1324] Update CHANGELOG.md --- CHANGELOG.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e66691e56c..710b26d050 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ ## Version History +## Release 2.2.0 +* Adding PyPy release 7.3.7 (Python 3.7 and 3.8). (#2132) +* Append Homebrew custom prefix to search path (#1957) +* Add documentation for init command (#2125) +* Add setup instructions for the case when one installs Pyenv as part of a batch job (#2127) +* Add documentation for completions command (#2126) +* Default --with-universal-archs to universal2 on Apple Silicon (#2122) +* Update README.md (#2120) +* Add GraalPython 21.3.0 (#2117) +* Pypy ver 7.3.6 - python 3.7 and python 3.8 (#2111) +* Discover Tcl/Tk reliably and use active version (#2106) +* Fish installation instructions (#2104) +* Add CPython 3.11.0a1 (#2099) + ## Release 2.1.0 * Fix mambaforge-pypy3 build (#2096) * Add Python 3.10.0 (#2093) From 066c05336f3ac6c17e7e696abf0d7de1c3d61ae8 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 27 Oct 2021 11:15:57 +0300 Subject: [PATCH 0343/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e09f99fdf1..982f69eabe 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.1.0" +version="2.2.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From abfa1c6d92bc00adec93da67a73714898112298d Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 29 Oct 2021 01:21:23 +0300 Subject: [PATCH 0344/1324] Explicitly state to enable verbose mode --- .github/ISSUE_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index d3f06c72d1..7e57cf49ea 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -19,6 +19,7 @@ Make sure you have checked all steps below. - [ ] C Compiler information (e.g. gcc 7.3): - [ ] Please attach a debug trace log as gist * If the problem happens in a Pyenv invocation, you can turn on debug logging by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` + * If the problem is with `pyenv install`, make sure to also enable its verbose mode (`-v`) * If the problem happens outside of a Pyenv invocation, get the debug log like this: ``` export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' From 6e214570d1c76bb4c8ee0120b0604887d625286d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 29 Oct 2021 12:20:20 +0300 Subject: [PATCH 0345/1324] Use OpenSSL 1 for 2.7.18 --- plugins/python-build/share/python-build/2.7.18 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/2.7.18 b/plugins/python-build/share/python-build/2.7.18 index 40703c7453..544f3a7e4e 100644 --- a/plugins/python-build/share/python-build/2.7.18 +++ b/plugins/python-build/share/python-build/2.7.18 @@ -1,4 +1,4 @@ -#require_gcc +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="openssl@1.1 openssl@1.0 openssl" install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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 From cfe2aba6702897d697e97a5f232514467de71d99 Mon Sep 17 00:00:00 2001 From: sandipanpanda <87253083+sandipanpanda@users.noreply.github.com> Date: Sun, 31 Oct 2021 00:41:42 +0530 Subject: [PATCH 0346/1324] Add definition of pyenv help in COMMANDS.md (#2139) --- COMMANDS.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index b07e088335..5dc784f65e 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -5,6 +5,7 @@ first argument. The most common subcommands are: +* [`pyenv help`](#pyenv-help) * [`pyenv commands`](#pyenv-commands) * [`pyenv local`](#pyenv-local) * [`pyenv global`](#pyenv-global) @@ -24,6 +25,11 @@ The most common subcommands are: * [`pyenv init`](#pyenv-init) * [`pyenv completions`](#pyenv-completions) +## `pyenv help` + +List all available pyenv commands along with a brief description of what they do. Run `pyenv help ` for information on a specific command. For full documentation, see: https://github.com/pyenv/pyenv#readme + + ## `pyenv commands` Lists all available pyenv commands. @@ -287,18 +293,18 @@ Lists all Python versions with the given command installed. ## `pyenv exec` - `Usage: pyenv exec [arg1 arg2...]` + Usage: pyenv exec [arg1 arg2...] Runs an executable by first preparing PATH so that the selected Python version's `bin` directory is at the front. For example, if the currently selected Python version is 3.9.7: - `pyenv exec pip install -r requirements.txt` + pyenv exec pip install -r requirements.txt is equivalent to: - `PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt` + PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt ## `pyenv root` From 54889eb87a10cb7731b44d31fa9e151e1ebf1f41 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 31 Oct 2021 05:14:03 +0300 Subject: [PATCH 0347/1324] Make gist generation instructions more explicit; add Zsh PS4 --- .github/ISSUE_TEMPLATE.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 7e57cf49ea..23ec14bbc5 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -17,12 +17,13 @@ Make sure you have checked all steps below. - [ ] pyenv version: - [ ] Python version: - [ ] C Compiler information (e.g. gcc 7.3): -- [ ] Please attach a debug trace log as gist - * If the problem happens in a Pyenv invocation, you can turn on debug logging by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` +- [ ] Please reproduce the problem with debug tracing enabled and attach the resulting output as a gist + * If the problem happens in a Pyenv invocation, you can turn on tracing by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` * If the problem is with `pyenv install`, make sure to also enable its verbose mode (`-v`) - * If the problem happens outside of a Pyenv invocation, get the debug log like this: - ``` - export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + * If the problem happens outside of a Pyenv invocation, enable shell trace output like this: + ```sh + export PS4='+(${(%):-%x}:${LINENO}): ${funcstack[0]:+${funcstack[0]}(): }' #Zsh + export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' #Bash set -x set +x From 748261869ad29c2ff5fc0f9e2d7cf01e8c0bc2b3 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sat, 6 Nov 2021 04:21:35 -0700 Subject: [PATCH 0348/1324] CPython 3.11.0a2 (#2150) --- .../python-build/share/python-build/{3.11.0a1 => 3.11.0a2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a1 => 3.11.0a2} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a1 b/plugins/python-build/share/python-build/3.11.0a2 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a1 rename to plugins/python-build/share/python-build/3.11.0a2 index 5305ec03d8..bf58447252 100644 --- a/plugins/python-build/share/python-build/3.11.0a1 +++ b/plugins/python-build/share/python-build/3.11.0a2 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.11.0a1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a1.tar.xz#966319daafa40f337e4d85a0b26fbdd919135c321eb3961a9b3d758abbc95376" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a2.tar.xz#68a8c4d6ce2548a7b617d699fbdb348937bdace0cf96db1aa083849df5dad13f" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a1.tgz#d2c83771a671d0755d1cda5d82aaea70ef32d337fe5bf87036bd113fc088edff" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a2.tgz#673911e7d5ec0e2ba0449e1d82318014b11d239f3fb2ff4a189c5d131c71bf15" standard verify_py311 copy_python_gdb ensurepip fi From 663abeb5fad82e4a15fa07dafd89de2d41f217a6 Mon Sep 17 00:00:00 2001 From: Parnassius Date: Sun, 7 Nov 2021 15:43:58 +0100 Subject: [PATCH 0349/1324] Add CPython 3.9.8 (#2152) --- plugins/python-build/share/python-build/3.9.8 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.8 diff --git a/plugins/python-build/share/python-build/3.9.8 b/plugins/python-build/share/python-build/3.9.8 new file mode 100644 index 0000000000..5757252ea9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.8 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.8" "https://www.python.org/ftp/python/3.9.8/Python-3.9.8.tar.xz#675ce09bf23c09836bf1969b744b1ea4c1a18c32788626632525f08444ebad5c" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.8" "https://www.python.org/ftp/python/3.9.8/Python-3.9.8.tgz#7447fb8bb270942d620dd24faa7814b1383b61fa99029a240025fd81c1db8283" standard verify_py39 copy_python_gdb ensurepip +fi From 552d943762a25e06c984e935bdce2e4bfa7b27ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?O=C4=9Fuzhan=20=C3=87elikarslan?= Date: Tue, 9 Nov 2021 09:50:29 +0300 Subject: [PATCH 0350/1324] Fix typos in command examples (#2147) --- libexec/pyenv-exec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-exec b/libexec/pyenv-exec index 2681627166..251a4f7cb8 100755 --- a/libexec/pyenv-exec +++ b/libexec/pyenv-exec @@ -8,10 +8,10 @@ # version's `bin' directory is at the front. # # For example, if the currently selected Python version is 2.7.6: -# pyenv exec pip install -rrequirements.txt +# pyenv exec pip install -r requirements.txt # # is equivalent to: -# PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -rrequirements.txt +# PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -r requirements.txt set -e [ -n "$PYENV_DEBUG" ] && set -x From d79bda4602c6983993b59bce8770b1ee4df5fe70 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 9 Nov 2021 19:06:42 +0300 Subject: [PATCH 0351/1324] Patch 3.10.0 configure (#2155) * Fix "PKG_PROG_PKG_CONFIG: command not found" Apply https://github.com/python/cpython/commit/f146ca36f81075f222aa3a1595042597d96dfad3 * bpo-45350: Rerun autoreconf with the pkg-config macros (GH-28707) --- ...autoreconf-with-the-pkg-config-macro.patch | 535 ++++++++++++++++++ 1 file changed, 535 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0001-bpo-45350-Rerun-autoreconf-with-the-pkg-config-macro.patch diff --git a/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0001-bpo-45350-Rerun-autoreconf-with-the-pkg-config-macro.patch b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0001-bpo-45350-Rerun-autoreconf-with-the-pkg-config-macro.patch new file mode 100644 index 0000000000..a87681e609 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0001-bpo-45350-Rerun-autoreconf-with-the-pkg-config-macro.patch @@ -0,0 +1,535 @@ +From f146ca36f81075f222aa3a1595042597d96dfad3 Mon Sep 17 00:00:00 2001 +From: Pablo Galindo Salgado +Date: Mon, 4 Oct 2021 00:39:54 +0100 +Subject: [PATCH] bpo-45350: Rerun autoreconf with the pkg-config macros + (GH-28707) + +diff --git a/aclocal.m4 b/aclocal.m4 +index 987bfdf215..2f1bd37528 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -275,3 +275,347 @@ AC_DEFUN([AX_CHECK_OPENSSL], [ + AC_SUBST([OPENSSL_LDFLAGS]) + ]) + ++# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- ++# serial 11 (pkg-config-0.29.1) ++ ++dnl Copyright © 2004 Scott James Remnant . ++dnl Copyright © 2012-2015 Dan Nicholson ++dnl ++dnl This program is free software; you can redistribute it and/or modify ++dnl it under the terms of the GNU General Public License as published by ++dnl the Free Software Foundation; either version 2 of the License, or ++dnl (at your option) any later version. ++dnl ++dnl This program is distributed in the hope that it will be useful, but ++dnl WITHOUT ANY WARRANTY; without even the implied warranty of ++dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++dnl General Public License for more details. ++dnl ++dnl You should have received a copy of the GNU General Public License ++dnl along with this program; if not, write to the Free Software ++dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++dnl 02111-1307, USA. ++dnl ++dnl As a special exception to the GNU General Public License, if you ++dnl distribute this file as part of a program that contains a ++dnl configuration script generated by Autoconf, you may include it under ++dnl the same distribution terms that you use for the rest of that ++dnl program. ++ ++dnl PKG_PREREQ(MIN-VERSION) ++dnl ----------------------- ++dnl Since: 0.29 ++dnl ++dnl Verify that the version of the pkg-config macros are at least ++dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's ++dnl installed version of pkg-config, this checks the developer's version ++dnl of pkg.m4 when generating configure. ++dnl ++dnl To ensure that this macro is defined, also add: ++dnl m4_ifndef([PKG_PREREQ], ++dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])]) ++dnl ++dnl See the "Since" comment for each macro you use to see what version ++dnl of the macros you require. ++m4_defun([PKG_PREREQ], ++[m4_define([PKG_MACROS_VERSION], [0.29.1]) ++m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1, ++ [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])]) ++])dnl PKG_PREREQ ++ ++dnl PKG_PROG_PKG_CONFIG([MIN-VERSION]) ++dnl ---------------------------------- ++dnl Since: 0.16 ++dnl ++dnl Search for the pkg-config tool and set the PKG_CONFIG variable to ++dnl first found in the path. Checks that the version of pkg-config found ++dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is ++dnl used since that's the first version where most current features of ++dnl pkg-config existed. ++AC_DEFUN([PKG_PROG_PKG_CONFIG], ++[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) ++m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$]) ++m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$]) ++AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility]) ++AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path]) ++AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path]) ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=m4_default([$1], [0.9.0]) ++ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ AC_MSG_RESULT([yes]) ++ else ++ AC_MSG_RESULT([no]) ++ PKG_CONFIG="" ++ fi ++fi[]dnl ++])dnl PKG_PROG_PKG_CONFIG ++ ++dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++dnl ------------------------------------------------------------------- ++dnl Since: 0.18 ++dnl ++dnl Check to see whether a particular set of modules exists. Similar to ++dnl PKG_CHECK_MODULES(), but does not set variables or print errors. ++dnl ++dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++dnl only at the first occurence in configure.ac, so if the first place ++dnl it's called might be skipped (such as if it is within an "if", you ++dnl have to call PKG_CHECK_EXISTS manually ++AC_DEFUN([PKG_CHECK_EXISTS], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++if test -n "$PKG_CONFIG" && \ ++ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then ++ m4_default([$2], [:]) ++m4_ifvaln([$3], [else ++ $3])dnl ++fi]) ++ ++dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) ++dnl --------------------------------------------- ++dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting ++dnl pkg_failed based on the result. ++m4_define([_PKG_CONFIG], ++[if test -n "$$1"; then ++ pkg_cv_[]$1="$$1" ++ elif test -n "$PKG_CONFIG"; then ++ PKG_CHECK_EXISTS([$3], ++ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null` ++ test "x$?" != "x0" && pkg_failed=yes ], ++ [pkg_failed=yes]) ++ else ++ pkg_failed=untried ++fi[]dnl ++])dnl _PKG_CONFIG ++ ++dnl _PKG_SHORT_ERRORS_SUPPORTED ++dnl --------------------------- ++dnl Internal check to see if pkg-config supports short errors. ++AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) ++if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then ++ _pkg_short_errors_supported=yes ++else ++ _pkg_short_errors_supported=no ++fi[]dnl ++])dnl _PKG_SHORT_ERRORS_SUPPORTED ++ ++ ++dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], ++dnl [ACTION-IF-NOT-FOUND]) ++dnl -------------------------------------------------------------- ++dnl Since: 0.4.0 ++dnl ++dnl Note that if there is a possibility the first call to ++dnl PKG_CHECK_MODULES might not happen, you should be sure to include an ++dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac ++AC_DEFUN([PKG_CHECK_MODULES], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl ++AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl ++ ++pkg_failed=no ++AC_MSG_CHECKING([for $1]) ++ ++_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) ++_PKG_CONFIG([$1][_LIBS], [libs], [$2]) ++ ++m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS ++and $1[]_LIBS to avoid the need to call pkg-config. ++See the pkg-config man page for more details.]) ++ ++if test $pkg_failed = yes; then ++ AC_MSG_RESULT([no]) ++ _PKG_SHORT_ERRORS_SUPPORTED ++ if test $_pkg_short_errors_supported = yes; then ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1` ++ else ++ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1` ++ fi ++ # Put the nasty error message in config.log where it belongs ++ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD ++ ++ m4_default([$4], [AC_MSG_ERROR( ++[Package requirements ($2) were not met: ++ ++$$1_PKG_ERRORS ++ ++Consider adjusting the PKG_CONFIG_PATH environment variable if you ++installed software in a non-standard prefix. ++ ++_PKG_TEXT])[]dnl ++ ]) ++elif test $pkg_failed = untried; then ++ AC_MSG_RESULT([no]) ++ m4_default([$4], [AC_MSG_FAILURE( ++[The pkg-config script could not be found or is too old. Make sure it ++is in your PATH or set the PKG_CONFIG environment variable to the full ++path to pkg-config. ++ ++_PKG_TEXT ++ ++To get pkg-config, see .])[]dnl ++ ]) ++else ++ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS ++ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS ++ AC_MSG_RESULT([yes]) ++ $3 ++fi[]dnl ++])dnl PKG_CHECK_MODULES ++ ++ ++dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], ++dnl [ACTION-IF-NOT-FOUND]) ++dnl --------------------------------------------------------------------- ++dnl Since: 0.29 ++dnl ++dnl Checks for existence of MODULES and gathers its build flags with ++dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags ++dnl and VARIABLE-PREFIX_LIBS from --libs. ++dnl ++dnl Note that if there is a possibility the first call to ++dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to ++dnl include an explicit call to PKG_PROG_PKG_CONFIG in your ++dnl configure.ac. ++AC_DEFUN([PKG_CHECK_MODULES_STATIC], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++_save_PKG_CONFIG=$PKG_CONFIG ++PKG_CONFIG="$PKG_CONFIG --static" ++PKG_CHECK_MODULES($@) ++PKG_CONFIG=$_save_PKG_CONFIG[]dnl ++])dnl PKG_CHECK_MODULES_STATIC ++ ++ ++dnl PKG_INSTALLDIR([DIRECTORY]) ++dnl ------------------------- ++dnl Since: 0.27 ++dnl ++dnl Substitutes the variable pkgconfigdir as the location where a module ++dnl should install pkg-config .pc files. By default the directory is ++dnl $libdir/pkgconfig, but the default can be changed by passing ++dnl DIRECTORY. The user can override through the --with-pkgconfigdir ++dnl parameter. ++AC_DEFUN([PKG_INSTALLDIR], ++[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])]) ++m4_pushdef([pkg_description], ++ [pkg-config installation directory @<:@]pkg_default[@:>@]) ++AC_ARG_WITH([pkgconfigdir], ++ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],, ++ [with_pkgconfigdir=]pkg_default) ++AC_SUBST([pkgconfigdir], [$with_pkgconfigdir]) ++m4_popdef([pkg_default]) ++m4_popdef([pkg_description]) ++])dnl PKG_INSTALLDIR ++ ++ ++dnl PKG_NOARCH_INSTALLDIR([DIRECTORY]) ++dnl -------------------------------- ++dnl Since: 0.27 ++dnl ++dnl Substitutes the variable noarch_pkgconfigdir as the location where a ++dnl module should install arch-independent pkg-config .pc files. By ++dnl default the directory is $datadir/pkgconfig, but the default can be ++dnl changed by passing DIRECTORY. The user can override through the ++dnl --with-noarch-pkgconfigdir parameter. ++AC_DEFUN([PKG_NOARCH_INSTALLDIR], ++[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])]) ++m4_pushdef([pkg_description], ++ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@]) ++AC_ARG_WITH([noarch-pkgconfigdir], ++ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],, ++ [with_noarch_pkgconfigdir=]pkg_default) ++AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir]) ++m4_popdef([pkg_default]) ++m4_popdef([pkg_description]) ++])dnl PKG_NOARCH_INSTALLDIR ++ ++ ++dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE, ++dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) ++dnl ------------------------------------------- ++dnl Since: 0.28 ++dnl ++dnl Retrieves the value of the pkg-config variable for the given module. ++AC_DEFUN([PKG_CHECK_VAR], ++[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl ++AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl ++ ++_PKG_CONFIG([$1], [variable="][$3]["], [$2]) ++AS_VAR_COPY([$1], [pkg_cv_][$1]) ++ ++AS_VAR_IF([$1], [""], [$5], [$4])dnl ++])dnl PKG_CHECK_VAR ++ ++dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES, ++dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND], ++dnl [DESCRIPTION], [DEFAULT]) ++dnl ------------------------------------------ ++dnl ++dnl Prepare a "--with-" configure option using the lowercase ++dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and ++dnl PKG_CHECK_MODULES in a single macro. ++AC_DEFUN([PKG_WITH_MODULES], ++[ ++m4_pushdef([with_arg], m4_tolower([$1])) ++ ++m4_pushdef([description], ++ [m4_default([$5], [build with ]with_arg[ support])]) ++ ++m4_pushdef([def_arg], [m4_default([$6], [auto])]) ++m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes]) ++m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no]) ++ ++m4_case(def_arg, ++ [yes],[m4_pushdef([with_without], [--without-]with_arg)], ++ [m4_pushdef([with_without],[--with-]with_arg)]) ++ ++AC_ARG_WITH(with_arg, ++ AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),, ++ [AS_TR_SH([with_]with_arg)=def_arg]) ++ ++AS_CASE([$AS_TR_SH([with_]with_arg)], ++ [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)], ++ [auto],[PKG_CHECK_MODULES([$1],[$2], ++ [m4_n([def_action_if_found]) $3], ++ [m4_n([def_action_if_not_found]) $4])]) ++ ++m4_popdef([with_arg]) ++m4_popdef([description]) ++m4_popdef([def_arg]) ++ ++])dnl PKG_WITH_MODULES ++ ++dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES, ++dnl [DESCRIPTION], [DEFAULT]) ++dnl ----------------------------------------------- ++dnl ++dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES ++dnl check._[VARIABLE-PREFIX] is exported as make variable. ++AC_DEFUN([PKG_HAVE_WITH_MODULES], ++[ ++PKG_WITH_MODULES([$1],[$2],,,[$3],[$4]) ++ ++AM_CONDITIONAL([HAVE_][$1], ++ [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"]) ++])dnl PKG_HAVE_WITH_MODULES ++ ++dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES, ++dnl [DESCRIPTION], [DEFAULT]) ++dnl ------------------------------------------------------ ++dnl ++dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after ++dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make ++dnl and preprocessor variable. ++AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES], ++[ ++PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4]) ++ ++AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"], ++ [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])]) ++])dnl PKG_HAVE_DEFINE_WITH_MODULES ++ +diff --git a/configure b/configure +index 753f956469..02d882ed39 100755 +--- a/configure ++++ b/configure +@@ -630,7 +630,6 @@ OPENSSL_RPATH + OPENSSL_LDFLAGS + OPENSSL_LIBS + OPENSSL_INCLUDES +-PKG_CONFIG + ENSUREPIP + SRCDIRS + THREADHEADERS +@@ -662,6 +661,9 @@ DTRACE + TCLTK_LIBS + TCLTK_INCLUDES + LIBFFI_INCLUDEDIR ++PKG_CONFIG_LIBDIR ++PKG_CONFIG_PATH ++PKG_CONFIG + TZPATH + SHLIBS + CFLAGSFORSHARED +@@ -873,7 +875,10 @@ LDFLAGS + LIBS + CPPFLAGS + CPP +-PROFILE_TASK' ++PROFILE_TASK ++PKG_CONFIG ++PKG_CONFIG_PATH ++PKG_CONFIG_LIBDIR' + + + # Initialize some variables set by options. +@@ -1637,6 +1642,11 @@ Some influential environment variables: + CPP C preprocessor + PROFILE_TASK + Python args for PGO generation task ++ PKG_CONFIG path to pkg-config utility ++ PKG_CONFIG_PATH ++ directories to add to pkg-config's search path ++ PKG_CONFIG_LIBDIR ++ path overriding pkg-config's built-in search path + + Use these variables to override the choices made by `configure' or to help + it to find libraries and programs with nonstandard names/locations. +@@ -10542,7 +10552,126 @@ $as_echo "no" >&6; } + fi + + +-PKG_PROG_PKG_CONFIG ++ ++ ++ ++ ++ ++ ++ ++if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. ++set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_path_PKG_CONFIG+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++fi ++PKG_CONFIG=$ac_cv_path_PKG_CONFIG ++if test -n "$PKG_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 ++$as_echo "$PKG_CONFIG" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ ++fi ++if test -z "$ac_cv_path_PKG_CONFIG"; then ++ ac_pt_PKG_CONFIG=$PKG_CONFIG ++ # Extract the first word of "pkg-config", so it can be a program name with args. ++set dummy pkg-config; ac_word=$2 ++{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 ++$as_echo_n "checking for $ac_word... " >&6; } ++if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : ++ $as_echo_n "(cached) " >&6 ++else ++ case $ac_pt_PKG_CONFIG in ++ [\\/]* | ?:[\\/]*) ++ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. ++ ;; ++ *) ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" ++ $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++ done ++IFS=$as_save_IFS ++ ++ ;; ++esac ++fi ++ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG ++if test -n "$ac_pt_PKG_CONFIG"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 ++$as_echo "$ac_pt_PKG_CONFIG" >&6; } ++else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++fi ++ ++ if test "x$ac_pt_PKG_CONFIG" = x; then ++ PKG_CONFIG="" ++ else ++ case $cross_compiling:$ac_tool_warned in ++yes:) ++{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 ++$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ++ac_tool_warned=yes ;; ++esac ++ PKG_CONFIG=$ac_pt_PKG_CONFIG ++ fi ++else ++ PKG_CONFIG="$ac_cv_path_PKG_CONFIG" ++fi ++ ++fi ++if test -n "$PKG_CONFIG"; then ++ _pkg_min_version=0.9.0 ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 ++$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } ++ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ else ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ PKG_CONFIG="" ++ fi ++fi + + # Check for use of the system expat library + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for --with-system-expat" >&5 +-- +2.29.2.windows.2 + From 4adc45ef8a50f45363c3e4a157d5dda6ff9b1490 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 9 Nov 2021 20:19:16 +0300 Subject: [PATCH 0352/1324] Dummy for https://github.com/pyenv/pyenv/issues/106 From 5b7c140f5b768141ce749c3254fe00abd593128a Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 9 Nov 2021 20:48:12 +0300 Subject: [PATCH 0353/1324] Dummy for https://github.com/pyenv/pyenv/issues/106 (#2156) The issue has been resolved in ed38af64090e985ce0e71087a6f6663600188a09 but the bounty didn't trigger -- allegedly 'cuz it's not a PR. Bountysource support replied "we're looking" but never did anything so I'm going to try to trigger it via a dummy PR. From a9e11ba164c4fb209c9b8ba66d99ed78526d7d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Thu, 11 Nov 2021 20:08:12 +0200 Subject: [PATCH 0354/1324] Use `command` and `type` instead of `which` (#2144) `which` has been deprecated in Debian's debianutils 5.0+ They suggest using `type` and `command` as replacements: https://salsa.debian.org/debian/debianutils/-/commit/3a8dd10b4502f7bae8fc6973c13ce23fc9da7efb , https://salsa.debian.org/debian/debianutils/-/commit/610a65c6ef040872a124576ddb504c2d4918e880 --- plugins/python-build/test/pyenv.bats | 4 ++-- test/test_helper.bash | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 8ed632078d..4d228a655a 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -183,7 +183,7 @@ OUT } @test "pyenv-install has usage help preface" { - run head "$(which pyenv-install)" + run head "$(command -v pyenv-install)" assert_output_contains 'Usage: pyenv install' } @@ -212,6 +212,6 @@ OUT } @test "pyenv-uninstall has usage help preface" { - run head "$(which pyenv-uninstall)" + run head "$(command -v pyenv-uninstall)" assert_output_contains 'Usage: pyenv uninstall' } diff --git a/test/test_helper.bash b/test/test_helper.bash index 30615cd389..a0fb24cbb1 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -116,12 +116,12 @@ path_without() { local path=":${PATH}:" for exe; do local found alt util - for found in $(PATH="$path" which -a "$exe"); do + for found in $(PATH="$path" type -aP "$exe"); do found="${found%/*}" if [ "$found" != "${PYENV_ROOT}/shims" ]; then alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" mkdir -p "$alt" - for util in bash head cut readlink greadlink which; do + for util in bash head cut readlink greadlink; do if [ -x "${found}/$util" ]; then ln -s "${found}/$util" "${alt}/$util" fi From 80ec30615510c915dc7b482302896bfbd00af551 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 13 Nov 2021 22:56:42 +0200 Subject: [PATCH 0355/1324] Add micropython 1.16 --- plugins/python-build/share/python-build/micropython-1.16 | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/micropython-1.16 diff --git a/plugins/python-build/share/python-build/micropython-1.16 b/plugins/python-build/share/python-build/micropython-1.16 new file mode 100644 index 0000000000..f383f08020 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.16 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.16.tar.xz#48271fb5da97efc22325c3fc1d87ba45b32bab25673206d8d8136c25e4ff29a9"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.16.zip#427adc00d2a99d102e4ce46d9eb4933d168e863f859bb3ce5b84735f0899c1ed"; } +$install micropython-1.16 "$src" micropython From e54cd5f49d7d68412115d3a1a3a78b98ca08d989 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Sat, 13 Nov 2021 22:56:51 +0200 Subject: [PATCH 0356/1324] Add micropython 1.17 --- plugins/python-build/share/python-build/micropython-1.17 | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 plugins/python-build/share/python-build/micropython-1.17 diff --git a/plugins/python-build/share/python-build/micropython-1.17 b/plugins/python-build/share/python-build/micropython-1.17 new file mode 100644 index 0000000000..8bb47c44ab --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.17 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.17.tar.xz#e322f915cee784de0f8614779cdb88fce175956975b3864e2d1898a53638a2f7"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.17.zip#4dfc60e2ba67e89c0b794c0533bb4e43a10d4e38095d0640b64b4faa9160f244"; } +$install micropython-1.17 "$src" micropython From df7ccfe0e89a6e7026518c992bf6ee107c6df26a Mon Sep 17 00:00:00 2001 From: Illia Volochii Date: Tue, 16 Nov 2021 18:17:00 +0200 Subject: [PATCH 0357/1324] Add CPython 3.9.9 (#2162) --- plugins/python-build/share/python-build/3.9.9 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.9 diff --git a/plugins/python-build/share/python-build/3.9.9 b/plugins/python-build/share/python-build/3.9.9 new file mode 100644 index 0000000000..71437275f4 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.9 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.9" "https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tar.xz#06828c04a573c073a4e51c4292a27c1be4ae26621c3edc7cf9318418ce3b6d27" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.9" "https://www.python.org/ftp/python/3.9.9/Python-3.9.9.tgz#2cc7b67c1f3f66c571acc42479cdf691d8ed6b47bee12c9b68430413a17a44ea" standard verify_py39 copy_python_gdb ensurepip +fi From 23dfe75b7385ba4a99eea9c874f9f0cf00428172 Mon Sep 17 00:00:00 2001 From: Josh Friend Date: Sat, 20 Nov 2021 09:04:59 -0500 Subject: [PATCH 0358/1324] v2.2.1 --- CHANGELOG.md | 17 ++++++++++++++--- libexec/pyenv---version | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 710b26d050..d334e5e4e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,14 +1,25 @@ ## Version History +## Release 2.2.1 + +* Add CPython 3.9.9 (#2162) +* Add CPython 3.9.8 (#2152) +* Add Add micropython 1.17 (#2158) +* Add Add micropython 1.16 (#2158) +* Patch 3.10.0 configure, fixes https://bugs.python.org/issue45350 (#2155) +* Use command and type instead of which (#2144) +* Add definition of pyenv help in COMMANDS.md #2139 +* Use OpenSSL 1.0 for CPython 2.7.18 + ## Release 2.2.0 * Adding PyPy release 7.3.7 (Python 3.7 and 3.8). (#2132) * Append Homebrew custom prefix to search path (#1957) -* Add documentation for init command (#2125) -* Add setup instructions for the case when one installs Pyenv as part of a batch job (#2127) +* Add documentation for init command (#2125) +* Add setup instructions for the case when one installs Pyenv as part of a batch job (#2127) * Add documentation for completions command (#2126) * Default --with-universal-archs to universal2 on Apple Silicon (#2122) * Update README.md (#2120) -* Add GraalPython 21.3.0 (#2117) +* Add GraalPython 21.3.0 (#2117) * Pypy ver 7.3.6 - python 3.7 and python 3.8 (#2111) * Discover Tcl/Tk reliably and use active version (#2106) * Fish installation instructions (#2104) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 982f69eabe..9f418a56b1 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.2.0" +version="2.2.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 7706a4508091a69123cb0acfaf2abddeb6d19eba Mon Sep 17 00:00:00 2001 From: Xiangyu Xu Date: Sat, 20 Nov 2021 14:58:42 -0600 Subject: [PATCH 0359/1324] Add macOS Apple M1 to Miniconda-latest (#2164) [source](https://www.anaconda.com/blog/anaconda-individual-edition-2021-11#:~:text=Update%20on%20macOS%20Apple%20M1%20Support) --- plugins/python-build/share/python-build/miniconda3-latest | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/share/python-build/miniconda3-latest b/plugins/python-build/share/python-build/miniconda3-latest index cd85681a12..df753a49bd 100644 --- a/plugins/python-build/share/python-build/miniconda3-latest +++ b/plugins/python-build/share/python-build/miniconda3-latest @@ -8,6 +8,9 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "MacOSX-x86_64" ) install_script "Miniconda3-latest-MacOSX-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" "miniconda" verify_py3_latest ;; +"MacOSX-arm64" ) + install_script "Miniconda3-latest-MacOSX-arm64" "https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-arm64.sh" "miniconda" verify_py3_latest + ;; * ) { echo colorize 1 "ERROR" From dc3a2013011b03390ec4cbe90aeedffcbcae6e23 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 22 Nov 2021 22:33:10 +0300 Subject: [PATCH 0360/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 9f418a56b1..cd333341f7 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.2.1" +version="2.2.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From a681e756e1c603d99b15ef13aeaa2fcbc38c5384 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 22 Nov 2021 22:35:16 +0300 Subject: [PATCH 0361/1324] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d334e5e4e3..54e6f59bb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ ## Version History +## Release 2.2.2 + +* Add support for macOS Apple M1 (#2164) + ## Release 2.2.1 * Add CPython 3.9.9 (#2162) From f2925393e4930f9e7e40898dca2f256013a32660 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 23 Nov 2021 20:22:59 +0300 Subject: [PATCH 0362/1324] update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 23ec14bbc5..bcc909e645 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -17,14 +17,5 @@ Make sure you have checked all steps below. - [ ] pyenv version: - [ ] Python version: - [ ] C Compiler information (e.g. gcc 7.3): -- [ ] Please reproduce the problem with debug tracing enabled and attach the resulting output as a gist - * If the problem happens in a Pyenv invocation, you can turn on tracing by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv install -v 3.6.4` - * If the problem is with `pyenv install`, make sure to also enable its verbose mode (`-v`) - * If the problem happens outside of a Pyenv invocation, enable shell trace output like this: - ```sh - export PS4='+(${(%):-%x}:${LINENO}): ${funcstack[0]:+${funcstack[0]}(): }' #Zsh - export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' #Bash - set -x - - set +x - ``` +- [ ] Please attach the debug trace of the failing command as a gist: + * Run `env PYENV_DEBUG=1 2>&1 | tee trace.log` and attach `trace.log`. E.g. if you have a problem with installing Python, run `env PYENV_DEBUG=1 pyenv install -v 2>&1 | tee trace.log` (note the `-v` option to `pyenv install`). From 3d4fc164a2ab83240f902f46c54f9c9aca67d95e Mon Sep 17 00:00:00 2001 From: James Morris Date: Fri, 3 Dec 2021 16:02:42 -0500 Subject: [PATCH 0363/1324] Update Python 3.6 in Ubuntu tests --- .github/workflows/ubuntu_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 81bab71304..3c6572f428 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -8,7 +8,7 @@ jobs: python-version: - 2.7.18 - 3.5.10 - - 3.6.13 + - 3.6.15 - 3.7.10 - 3.8.10 - 3.9.5 From 07b747181948df7baed5d4f24e239c10320de621 Mon Sep 17 00:00:00 2001 From: James Morris Date: Fri, 3 Dec 2021 16:17:19 -0500 Subject: [PATCH 0364/1324] Add macOS tests --- .github/workflows/macos_tests.yml | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 .github/workflows/macos_tests.yml diff --git a/.github/workflows/macos_tests.yml b/.github/workflows/macos_tests.yml new file mode 100644 index 0000000000..d6e75169f2 --- /dev/null +++ b/.github/workflows/macos_tests.yml @@ -0,0 +1,41 @@ +name: macos_tests +on: [pull_request, push] +jobs: + macos_tests: + strategy: + fail-fast: false + matrix: + python-version: + - 2.7.18 + - 3.5.10 + - 3.6.15 + - 3.7.10 + - 3.8.10 + - 3.9.5 + - 3.10.0 + runs-on: macos-10.15 + steps: + - uses: actions/checkout@v2 + # Normally, we would use the superbly maintained... + # - uses: actions/setup-python@v2 + # with: + # python-version: ${{ matrix.python-version }} + # ... but in the repo, we want to test pyenv builds on macOS + - run: | + brew install autoconf openssl@1.1 pkg-config readline + # https://github.com/pyenv/pyenv#installation + - run: pwd + - env: + PYENV_ROOT: /Users/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash + - run: python --version + - run: python -m pip --version + - shell: python # Prove that actual Python == expected Python + env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) From 4d5694727733dde10cbe6eef162e4b325d66031f Mon Sep 17 00:00:00 2001 From: James Morris Date: Fri, 3 Dec 2021 16:50:13 -0500 Subject: [PATCH 0365/1324] Fix Python 3.6.15 build --- plugins/python-build/share/python-build/3.6.15 | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.6.15 b/plugins/python-build/share/python-build/3.6.15 index 7a9526bb9b..a305fbd2c8 100644 --- a/plugins/python-build/share/python-build/3.6.15 +++ b/plugins/python-build/share/python-build/3.6.15 @@ -1,6 +1,5 @@ #require_gcc prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then From a7e09ce2ea2331ebc8052307d052c6bba1bd1692 Mon Sep 17 00:00:00 2001 From: James Morris Date: Sun, 5 Dec 2021 19:23:21 -0500 Subject: [PATCH 0366/1324] Update macOS test dependencies --- .github/workflows/macos_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos_tests.yml b/.github/workflows/macos_tests.yml index d6e75169f2..060af25158 100644 --- a/.github/workflows/macos_tests.yml +++ b/.github/workflows/macos_tests.yml @@ -22,7 +22,7 @@ jobs: # python-version: ${{ matrix.python-version }} # ... but in the repo, we want to test pyenv builds on macOS - run: | - brew install autoconf openssl@1.1 pkg-config readline + brew install openssl readline sqlite3 xz zlib # https://github.com/pyenv/pyenv#installation - run: pwd - env: From 631bf6a23a1e6954626b2ccff0eaa6e8cf86df78 Mon Sep 17 00:00:00 2001 From: Ricardo Madriz Date: Tue, 7 Dec 2021 07:50:30 -0600 Subject: [PATCH 0367/1324] Add CPython 3.10.1 (#2183) --- plugins/python-build/share/python-build/3.10.1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.1 diff --git a/plugins/python-build/share/python-build/3.10.1 b/plugins/python-build/share/python-build/3.10.1 new file mode 100644 index 0000000000..7d406481bc --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.1 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.1" "https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tar.xz#a7f1265b6e1a5de1ec5c3ec7019ab53413469934758311e9d240c46e5ae6e177" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.1" "https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tgz#b76117670e7c5064344b9c138e141a377e686b9063f3a8a620ff674fa8ec90d3" standard verify_py310 copy_python_gdb ensurepip +fi From 15677f7f5a113b1b2a8d1ea75a8082d7b2ef742d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Luis=20Cano=20Rodr=C3=ADguez?= Date: Tue, 7 Dec 2021 19:39:30 +0100 Subject: [PATCH 0368/1324] Add Miniforge and Mambaforge 4.10.3-10 (#2184) --- .../share/python-build/mambaforge-4.10.3-10 | 22 ++++++++++++++++ .../share/python-build/miniforge3-4.10.3-10 | 25 +++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-10 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-10 diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-10 b/plugins/python-build/share/python-build/mambaforge-4.10.3-10 new file mode 100644 index 0000000000..4001247431 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-10 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-10-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Mambaforge-4.10.3-10-Linux-x86_64.sh#8b789c619d03760e606a9c9b3d098414653f6037b80f16174ad94f0ee0c679d8" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-10-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Mambaforge-4.10.3-10-Linux-aarch64.sh#60a1d50c92fe1d48e2744effca9e7b51bfd5cc4e863dbcdb762ed48020703e3a" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-10-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Mambaforge-4.10.3-10-MacOSX-arm64.sh#72bc86612ab9435915b616c2edb076737cbabe2c33fd684d58c2f9ae72e1957c" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-10-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Mambaforge-4.10.3-10-MacOSX-x86_64.sh#7c44259a0982cd3ef212649678af5f0dd4e0bb7306e8fffc93601dd1d739ec0b" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-10 b/plugins/python-build/share/python-build/miniforge3-4.10.3-10 new file mode 100644 index 0000000000..786ef01c9e --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-10 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-10-Linux-ppc64le" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Miniforge3-4.10.3-10-Linux-ppc64le.sh#8df85d4af3d2d24f86bb6784d4c196b770b7b9c0be8917d79aec9e08f517d0e9" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-10-Linux-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Miniforge3-4.10.3-10-Linux-x86_64.sh#8ed8cd582d16cd58e0ccd87e692fbe71de6365a51678b579b2f40d8d6f6e5771" "miniconda" verify_py38 + ;; +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-10-Linux-aarch64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Miniforge3-4.10.3-10-Linux-aarch64.sh#b2d510c6cd0aac3964a7a7838a7f7376b804fbdd0ba04909ece53f883f624233" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-10-MacOSX-arm64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Miniforge3-4.10.3-10-MacOSX-arm64.sh#bd4d59ead779a6e2d9af69fd8cdcaac8e1446191c59ab446ae8547a1aecd75b7" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-10-MacOSX-x86_64" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-10/Miniforge3-4.10.3-10-MacOSX-x86_64.sh#7d325a5370664ec2fe1c09c3066c22fd905431f338c7eed31ad7e14c7ce4bd83" "miniconda" verify_py38 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From c80b1cdfb9e8db0b9d9911d68f27a1145f11edec Mon Sep 17 00:00:00 2001 From: John Miller Date: Tue, 7 Dec 2021 20:12:53 -0800 Subject: [PATCH 0369/1324] Fix errant "echo" in build env install instructions (#2185) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2349d6bb5f..3bedf8b65a 100644 --- a/README.md +++ b/README.md @@ -320,7 +320,7 @@ easy to fork and contribute any changes back upstream. to be a shell function (e.g. `shell` and Pyenv-Virtualenv's `activate`). ~~~bash - echo 'eval "$(pyenv init -)"' + eval "$(pyenv init -)" ~~~ If you are installing Pyenv yourself as part of the batch job, From 943c5f995d0ecdc957ca365aa79a9ce3294652bf Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 9 Dec 2021 10:41:09 -0800 Subject: [PATCH 0370/1324] Add CPython 3.11.0a3 (#2187) --- .../python-build/share/python-build/{3.11.0a2 => 3.11.0a3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a2 => 3.11.0a3} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a2 b/plugins/python-build/share/python-build/3.11.0a3 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a2 rename to plugins/python-build/share/python-build/3.11.0a3 index bf58447252..bb9003f8d5 100644 --- a/plugins/python-build/share/python-build/3.11.0a2 +++ b/plugins/python-build/share/python-build/3.11.0a3 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.11.0a2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a2.tar.xz#68a8c4d6ce2548a7b617d699fbdb348937bdace0cf96db1aa083849df5dad13f" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a3.tar.xz#96fbe735d377dec46a007974d1315868bde9f06aea5e56dee99500d620d814a3" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a2.tgz#673911e7d5ec0e2ba0449e1d82318014b11d239f3fb2ff4a189c5d131c71bf15" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a3.tgz#8af25618be3901a60d0d82176b91476c93dd8c086f40b849e9c4811424d13c35" standard verify_py311 copy_python_gdb ensurepip fi From 86ca164a11b862650383a2c8094dc113c370bad3 Mon Sep 17 00:00:00 2001 From: SouthWolf Date: Sun, 19 Dec 2021 23:43:01 +0800 Subject: [PATCH 0371/1324] Add Anaconda3-2021.11 (#2193) * Use verify_py39 since anaconda3-2021.11 is using python-3.9 according to release notes --- .../share/python-build/anaconda3-2021.11 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2021.11 diff --git a/plugins/python-build/share/python-build/anaconda3-2021.11 b/plugins/python-build/share/python-build/anaconda3-2021.11 new file mode 100644 index 0000000000..b9ffb627f2 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2021.11 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Anaconda3-2021.11-Linux-ppc64le" "https://repo.continuum.io/archive/Anaconda3-2021.11-Linux-ppc64le.sh#7eb6a95925ee756240818599f8dcbba7a155adfb05ef6cd5336aa3c083de65f3" "anaconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2021.11-Linux-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.11-Linux-x86_64.sh#fedf9e340039557f7b5e8a8a86affa9d299f5e9820144bd7b92ae9f7ee08ac60" "anaconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2021.11-MacOSX-x86_64" "https://repo.continuum.io/archive/Anaconda3-2021.11-MacOSX-x86_64.sh#6a9217d1a08c599f860045d56ef64fc6c3e3112b55cc97f3d07c573d7bbcdb58" "anaconda" verify_py39 + ;; +* ) + { 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 From 152457a42890dcde043831004933d860f0c0461a Mon Sep 17 00:00:00 2001 From: Christian Hammond Date: Sun, 19 Dec 2021 20:09:38 -0800 Subject: [PATCH 0372/1324] Fix Python 3.6.15 compilation on macOS arm64/M1. (#2189) This change ports several established patches to the Python 3.6.15 build, enabling compilation on arm64/Apple M1 architectures: 1. `0001-Detect-arm64-in-configure.patch` - Updates configure to detect arm64 architectures (port of an existing pyenv patch for 2.7.18). 2. `0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch` - Adds macOS SDK root computation logic for determining include paths (port of existing Python patches introduced in 2.7.17 and 3.7.4). 3. `0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch` - Fixes Tcl/Tk support on macOS (port of an existing pyenv patch for 2.7.18). 4. `0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch` - Fixes system `ffi.h`/`libffi` path determination and usage and enables calling of variadic functions, fixing ctypes support (consolidated port of existing pyenv patches for 2.7.18 that iterate on this logic). 5. `0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch` - Updates Darwin version checks to handle macOS 11's major version bump (port of Python patches introduced in 3.7.0 and 3.9.0). 6. `0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch` - Adds arm64 to the list of allowable architectures for the `decimal` module (port of Python patch introduced in 3.8.10). --- .../0001-Detect-arm64-in-configure.patch | 41 +++ ...t-building-on-macOS-without-usr-incl.patch | 93 ++++++ ...er-use-of-Tck-Tk-in-Library-Framewor.patch | 240 +++++++++++++ ...system-libffi-patches-for-arm64-macO.patch | 315 ++++++++++++++++++ ...port-macOS-11-when-building-GH-21113.patch | 48 +++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 37 ++ 6 files changed, 774 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0001-Detect-arm64-in-configure.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0001-Detect-arm64-in-configure.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0001-Detect-arm64-in-configure.patch new file mode 100644 index 0000000000..d87123f7ad --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0001-Detect-arm64-in-configure.patch @@ -0,0 +1,41 @@ +From 002501946bad91a308f37a09204393c172f03c3e Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 16:50:14 +0900 +Subject: [PATCH 2/6] Detect arm64 in configure + +--- + configure | 3 +++ + configure.ac | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/configure b/configure +index e39c16eee2..8dc1fc7595 100755 +--- a/configure ++++ b/configure +@@ -9230,6 +9230,9 @@ fi + ppc) + MACOSX_DEFAULT_ARCH="ppc64" + ;; ++ arm64) ++ MACOSX_DEFAULT_ARCH="arm64" ++ ;; + *) + as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5 + ;; +diff --git a/configure.ac b/configure.ac +index cf280506bd..34846a7df3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2435,6 +2435,9 @@ case $ac_sys_system/$ac_sys_release in + ppc) + MACOSX_DEFAULT_ARCH="ppc64" + ;; ++ arm64) ++ MACOSX_DEFAULT_ARCH="arm64" ++ ;; + *) + AC_MSG_ERROR([Unexpected output of 'arch' on OSX]) + ;; +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch new file mode 100644 index 0000000000..f95099a134 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0002-bpo-36231-Support-building-on-macOS-without-usr-incl.patch @@ -0,0 +1,93 @@ +From c7302116573d853d3181133477d9d0e4d4d3abfd Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Tue, 18 Jun 2019 16:28:13 -0400 +Subject: [PATCH] bpo-36231: Support building on macOS without /usr/include + (GH-13773) (GH-14208) + +--- + .../2019-06-03-05-49-49.bpo-36231.RfmW_p.rst | 3 ++ + setup.py | 53 ++++++++++++++++--- + 2 files changed, 49 insertions(+), 7 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst + +diff --git a/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst b/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst +new file mode 100644 +index 0000000000..c82e54c12c +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst +@@ -0,0 +1,3 @@ ++Support building Python on macOS without /usr/include installed. As of macOS ++10.14, system header files are only available within an SDK provided by ++either the Command Line Tools or the Xcode app. +diff --git a/setup.py b/setup.py +index bcc4bfa89d..5e0cd02430 100644 +--- a/setup.py ++++ b/setup.py +@@ -90,18 +90,57 @@ def sysroot_paths(make_vars, subdirs): + break + return dirs + ++MACOS_SDK_ROOT = None ++ + def macosx_sdk_root(): ++ """Return the directory of the current macOS SDK. ++ ++ If no SDK was explicitly configured, call the compiler to find which ++ include files paths are being searched by default. Use '/' if the ++ compiler is searching /usr/include (meaning system header files are ++ installed) or use the root of an SDK if that is being searched. ++ (The SDK may be supplied via Xcode or via the Command Line Tools). ++ The SDK paths used by Apple-supplied tool chains depend on the ++ setting of various variables; see the xcrun man page for more info. + """ +- Return the directory of the current OSX SDK, +- or '/' if no SDK was specified. +- """ ++ global MACOS_SDK_ROOT ++ ++ # If already called, return cached result. ++ if MACOS_SDK_ROOT: ++ return MACOS_SDK_ROOT ++ + cflags = sysconfig.get_config_var('CFLAGS') + m = re.search(r'-isysroot\s+(\S+)', cflags) +- if m is None: +- sysroot = '/' ++ if m is not None: ++ MACOS_SDK_ROOT = m.group(1) + else: +- sysroot = m.group(1) +- return sysroot ++ MACOS_SDK_ROOT = '/' ++ cc = sysconfig.get_config_var('CC') ++ tmpfile = '/tmp/setup_sdk_root.%d' % os.getpid() ++ try: ++ os.unlink(tmpfile) ++ except: ++ pass ++ ret = os.system('%s -E -v - %s 1>/dev/null' % (cc, tmpfile)) ++ in_incdirs = False ++ try: ++ if ret >> 8 == 0: ++ with open(tmpfile) as fp: ++ for line in fp.readlines(): ++ if line.startswith("#include <...>"): ++ in_incdirs = True ++ elif line.startswith("End of search list"): ++ in_incdirs = False ++ elif in_incdirs: ++ line = line.strip() ++ if line == '/usr/include': ++ MACOS_SDK_ROOT = '/' ++ elif line.endswith(".sdk/usr/include"): ++ MACOS_SDK_ROOT = line[:-12] ++ finally: ++ os.unlink(tmpfile) ++ ++ return MACOS_SDK_ROOT + + def is_macosx_sdk_path(path): + """ +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch new file mode 100644 index 0000000000..62da083e7b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0003-Fix-macOS-_tkinter-use-of-Tck-Tk-in-Library-Framewor.patch @@ -0,0 +1,240 @@ +From 942db3e6b96225ef8330f5329c702d62483c6ef8 Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 17:14:34 +0900 +Subject: [PATCH 3/6] Fix macOS _tkinter use of Tck/Tk in /Library/Framework + +Modified and imported from https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch +--- + setup.py | 147 ++++++++++++++++++++++++++++++++++++++++--------------- + 1 file changed, 107 insertions(+), 40 deletions(-) + +diff --git a/setup.py b/setup.py +index e2c1898253..8e03c77997 100644 +--- a/setup.py ++++ b/setup.py +@@ -91,6 +91,7 @@ def sysroot_paths(make_vars, subdirs): + return dirs + + MACOS_SDK_ROOT = None ++MACOS_SDK_SPECIFIED = None + + def macosx_sdk_root(): + """Return the directory of the current macOS SDK. +@@ -102,8 +103,9 @@ def macosx_sdk_root(): + (The SDK may be supplied via Xcode or via the Command Line Tools). + The SDK paths used by Apple-supplied tool chains depend on the + setting of various variables; see the xcrun man page for more info. ++ Also sets MACOS_SDK_SPECIFIED for use by macosx_sdk_specified(). + """ +- global MACOS_SDK_ROOT ++ global MACOS_SDK_ROOT, MACOS_SDK_SPECIFIED + + # If already called, return cached result. + if MACOS_SDK_ROOT: +@@ -113,8 +115,10 @@ def macosx_sdk_root(): + m = re.search(r'-isysroot\s+(\S+)', cflags) + if m is not None: + MACOS_SDK_ROOT = m.group(1) ++ MACOS_SDK_SPECIFIED = MACOS_SDK_ROOT != '/' + else: + MACOS_SDK_ROOT = '/' ++ MACOS_SDK_SPECIFIED = False + cc = sysconfig.get_config_var('CC') + tmpfile = '/tmp/setup_sdk_root.%d' % os.getpid() + try: +@@ -142,6 +146,27 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def macosx_sdk_specified(): ++ """Returns true if an SDK was explicitly configured. ++ ++ True if an SDK was selected at configure time, either by specifying ++ --enable-universalsdk=(something other than no or /) or by adding a ++ -isysroot option to CFLAGS. In some cases, like when making ++ decisions about macOS Tk framework paths, we need to be able to ++ know whether the user explicitly asked to build with an SDK versus ++ the implicit use of an SDK when header files are no longer ++ installed on a running system by the Command Line Tools. ++ """ ++ global MACOS_SDK_SPECIFIED ++ ++ # If already called, return cached result. ++ if MACOS_SDK_SPECIFIED: ++ return MACOS_SDK_SPECIFIED ++ ++ # Find the sdk root and set MACOS_SDK_SPECIFIED ++ macosx_sdk_root() ++ return MACOS_SDK_SPECIFIED ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -1758,31 +1783,72 @@ class PyBuildExt(build_ext): + return 1 + + def detect_tkinter_darwin(self, inc_dirs, lib_dirs): +- # The _tkinter module, using frameworks. Since frameworks are quite +- # different the UNIX search logic is not sharable. +- from os.path import join, exists +- framework_dirs = [ +- '/Library/Frameworks', +- '/System/Library/Frameworks/', +- join(os.getenv('HOME'), '/Library/Frameworks') +- ] ++ # Build default _tkinter on macOS using Tcl and Tk frameworks. ++ # ++ # The macOS native Tk (AKA Aqua Tk) and Tcl are most commonly ++ # built and installed as macOS framework bundles. However, ++ # for several reasons, we cannot take full advantage of the ++ # Apple-supplied compiler chain's -framework options here. ++ # Instead, we need to find and pass to the compiler the ++ # absolute paths of the Tcl and Tk headers files we want to use ++ # and the absolute path to the directory containing the Tcl ++ # and Tk frameworks for linking. ++ # ++ # We want to handle here two common use cases on macOS: ++ # 1. Build and link with system-wide third-party or user-built ++ # Tcl and Tk frameworks installed in /Library/Frameworks. ++ # 2. Build and link using a user-specified macOS SDK so that the ++ # built Python can be exported to other systems. In this case, ++ # search only the SDK's /Library/Frameworks (normally empty) ++ # and /System/Library/Frameworks. ++ # ++ # Any other use case should be able to be handled explicitly by ++ # using the options described above in detect_tkinter_explicitly(). ++ # In particular it would be good to handle here the case where ++ # you want to build and link with a framework build of Tcl and Tk ++ # that is not in /Library/Frameworks, say, in your private ++ # $HOME/Library/Frameworks directory or elsewhere. It turns ++ # out to be difficult to make that work automtically here ++ # without bringing into play more tools and magic. That case ++ # can be hamdled using a recipe with the right arguments ++ # to detect_tkinter_explicitly(). ++ # ++ # Note also that the fallback case here is to try to use the ++ # Apple-supplied Tcl and Tk frameworks in /System/Library but ++ # be forewarned that they are deprecated by Apple and typically ++ # out-of-date and buggy; their use should be avoided if at ++ # all possible by installing a newer version of Tcl and Tk in ++ # /Library/Frameworks before bwfore building Python without ++ # an explicit SDK or by configuring build arguments explicitly. + +- sysroot = macosx_sdk_root() ++ from os.path import join, exists ++ sysroot = macosx_sdk_root() # path to the SDK or '/' ++ ++ if macosx_sdk_specified(): ++ # Use case #2: an SDK other than '/' was specified. ++ # Only search there. ++ framework_dirs = [ ++ join(sysroot, 'Library', 'Frameworks'), ++ join(sysroot, 'System', 'Library', 'Frameworks'), ++ ] ++ else: ++ # Use case #1: no explicit SDK selected. ++ # Search the local system-wide /Library/Frameworks, ++ # not the one in the default SDK, othewise fall back to ++ # /System/Library/Frameworks whose header files may be in ++ # the default SDK or, on older systems, actually installed. ++ framework_dirs = [ ++ join('/', 'Library', 'Frameworks'), ++ join(sysroot, 'System', 'Library', 'Frameworks'), ++ ] + +- # Find the directory that contains the Tcl.framework and Tk.framework +- # bundles. +- # XXX distutils should support -F! ++ # Find the directory that contains the Tcl.framework and ++ # Tk.framework bundles. + for F in framework_dirs: + # both Tcl.framework and Tk.framework should be present +- +- + for fw in 'Tcl', 'Tk': +- if is_macosx_sdk_path(F): +- if not exists(join(sysroot, F[1:], fw + '.framework')): +- break +- else: +- if not exists(join(F, fw + '.framework')): +- break ++ if not exists(join(F, fw + '.framework')): ++ break + else: + # ok, F is now directory with both frameworks. Continure + # building +@@ -1792,24 +1858,16 @@ class PyBuildExt(build_ext): + # will now resume. + return 0 + +- # For 8.4a2, we must add -I options that point inside the Tcl and Tk +- # frameworks. In later release we should hopefully be able to pass +- # the -F option to gcc, which specifies a framework lookup path. +- # + include_dirs = [ + join(F, fw + '.framework', H) + for fw in ('Tcl', 'Tk') +- for H in ('Headers', 'Versions/Current/PrivateHeaders') ++ for H in ('Headers',) + ] + +- # For 8.4a2, the X11 headers are not included. Rather than include a +- # complicated search, this is a hard-coded path. It could bail out +- # if X11 libs are not found... +- include_dirs.append('/usr/X11R6/include') +- frameworks = ['-framework', 'Tcl', '-framework', 'Tk'] ++ # Add the base framework directory as well ++ compile_args = ['-F', F] + +- # All existing framework builds of Tcl/Tk don't support 64-bit +- # architectures. ++ # Do not build tkinter for archs that this Tk was not built with. + cflags = sysconfig.get_config_vars('CFLAGS')[0] + archs = re.findall(r'-arch\s+(\w+)', cflags) + +@@ -1819,10 +1877,7 @@ class PyBuildExt(build_ext): + + # Note: cannot use os.popen or subprocess here, that + # requires extensions that are not available here. +- if is_macosx_sdk_path(F): +- os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(os.path.join(sysroot, F[1:]), tmpfile)) +- else: +- os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F, tmpfile)) ++ os.system("file %s/Tk.framework/Tk | grep 'for architecture' > %s"%(F, tmpfile)) + + with open(tmpfile) as fp: + detected_archs = [] +@@ -1832,16 +1887,26 @@ class PyBuildExt(build_ext): + detected_archs.append(ln.split()[-1]) + os.unlink(tmpfile) + ++ arch_args = [] + for a in detected_archs: +- frameworks.append('-arch') +- frameworks.append(a) ++ arch_args.append('-arch') ++ arch_args.append(a) ++ ++ compile_args += arch_args ++ link_args = [','.join(['-Wl', '-F', F, '-framework', 'Tcl', '-framework', 'Tk'])] + arch_args ++ ++ # The X11/xlib.h file bundled in the Tk sources can cause function ++ # prototype warnings from the compiler. Since we cannot easily fix ++ # that, suppress the warnings here instead. ++ if '-Wstrict-prototypes' in cflags.split(): ++ compile_args.append('-Wno-strict-prototypes') + + ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'], + define_macros=[('WITH_APPINIT', 1)], + include_dirs = include_dirs, + libraries = [], +- extra_compile_args = frameworks[2:], +- extra_link_args = frameworks, ++ extra_compile_args = compile_args, ++ extra_link_args = link_args, + ) + self.extensions.append(ext) + return 1 +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..ae8a90cbf0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,315 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.6.15 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.6.15: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.6.15 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index a7cc0c84df..f25f3c78d9 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 56ab0ad732..013b1e9ce7 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2443,11 +2443,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index 24d64858ed..351f274ad3 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3120,6 +3120,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3166,6 +3194,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5576,6 +5606,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 2bb289bce0..12951eadbf 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -752,7 +754,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + #ifdef WITH_THREAD + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1181,9 +1208,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index 5d3b966338..1299ec25aa 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index 8e03c77997..3b124c4b7b 100644 +--- a/setup.py ++++ b/setup.py +@@ -167,6 +167,13 @@ def macosx_sdk_specified(): + macosx_sdk_root() + return MACOS_SDK_SPECIFIED + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -175,6 +182,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -2115,7 +2129,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2162,20 +2180,30 @@ class PyBuildExt(build_ext): + libraries=math_libs) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ inc_dirs = self.compiler.include_dirs[:] ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): +- return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') ++ if not self.use_system_libffi: ++ return ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') + elif '--without-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): + return + +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + with open(ffi_h) as f: + for line in f: + line = line.strip() +@@ -2186,15 +2214,22 @@ class PyBuildExt(build_ext): + ffi_inc = None + print('Header file {} does not define LIBFFI_H or ' + 'ffi_wrapper_h'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: ++ if ffi_lib is None and ffi_inc is not None: + for lib_name in ('ffi', 'ffi_pic'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch new file mode 100644 index 0000000000..9d48c81dbf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch @@ -0,0 +1,48 @@ +From 8ea6353f60625c96ce96588c70ff24a77f8c71f9 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 25 Jun 2020 16:55:48 +0200 +Subject: [PATCH] BPO-41100: Support macOS 11 when building (GH-21113) + +--- + Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst | 1 + + configure | 2 +- + configure.ac | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst + +diff --git a/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst +new file mode 100644 +index 0000000000..ded66b567a +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst +@@ -0,0 +1 @@ ++Support macOS 11 when building. +diff --git a/configure b/configure +index c51f396824..5024860ca4 100755 +--- a/configure ++++ b/configure +@@ -3375,7 +3375,7 @@ $as_echo "#define _BSD_SOURCE 1" >>confdefs.h + # has no effect, don't bother defining them + Darwin/[6789].*) + define_xopen_source=no;; +- Darwin/1[0-9].*) ++ Darwin/[12][0-9].*) + define_xopen_source=no;; + # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but + # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined +diff --git a/configure.ac b/configure.ac +index 70deefb6b9..5a3e340aa3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -495,7 +495,7 @@ case $ac_sys_system/$ac_sys_release in + # has no effect, don't bother defining them + Darwin/@<:@6789@:>@.*) + define_xopen_source=no;; +- Darwin/1@<:@0-9@:>@.*) ++ Darwin/@<:@[12]@:>@@<:@0-9@:>@.*) + define_xopen_source=no;; + # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but + # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..12022a4f47 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,37 @@ +From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index 108b76efa8..35ce429f60 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.30.1 (Apple Git-130) + From 2d9e981d6072f36798ddf000fefa31a251d2e3f4 Mon Sep 17 00:00:00 2001 From: Christian Hammond Date: Sun, 19 Dec 2021 20:14:14 -0800 Subject: [PATCH 0373/1324] Fix Python 3.7.12 compilation on macOS arm64/M1. (#2190) This change ports pyenv and Python patches to 3.7.12 to enable the `ctypes `and `decimal` modules to compile. While Python 3.7.12 itself compiles on arm64/M1, both of these modules fail to compile, due to missing support for locating system libffi and due to architecture gate-keeping. These issues have been fixed in newer releases of Python, and in other pyenv patch bundles. The following patches are provided: 1. `0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch` - Fixes system `ffi.h`/`libffi` path determination and usage and enables calling of variadic functions, fixing ctypes support (consolidated port of existing pyenv patches for 2.7.18 that iterate on this logic). 2. `0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch` - Adds arm64 to the list of allowable architectures for the `decimal` module (port of Python patch introduced in 3.8.10). --- ...system-libffi-patches-for-arm64-macO.patch | 312 ++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 36 ++ 2 files changed, 348 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch diff --git a/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..983a8d15ce --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,312 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,49 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ ++ #inc_dirs = self.inc_dirs.copy() ++ inc_dirs = self.compiler.include_dirs[:] + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..dd4766050b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,36 @@ +From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index 108b76efa8..35ce429f60 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.30.1 (Apple Git-130) From 381002dbe20192a9598973882a8674f77c8e220d Mon Sep 17 00:00:00 2001 From: Yudai Hayashi <34836226+Hayashi-Yudai@users.noreply.github.com> Date: Mon, 20 Dec 2021 19:51:28 +0900 Subject: [PATCH 0374/1324] Add pypy2.7-7.3.2~7.3.6 (#2194) --- .../share/python-build/pypy2.7-7.3.2 | 39 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.2-src | 4 ++ .../share/python-build/pypy2.7-7.3.3 | 39 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.3-src | 4 ++ .../share/python-build/pypy2.7-7.3.4 | 39 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.4-src | 4 ++ .../share/python-build/pypy2.7-7.3.5 | 39 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.5-src | 4 ++ .../share/python-build/pypy2.7-7.3.6 | 39 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.6-src | 4 ++ 10 files changed, 215 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.2 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.2-src create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.3 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.3-src create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.4 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.4-src create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.5 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.5-src create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.6 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.6-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.2 b/plugins/python-build/share/python-build/pypy2.7-7.3.2 new file mode 100644 index 0000000000..17f7d385d6 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.2 @@ -0,0 +1,39 @@ +VERSION='7.3.2' +PYVER='2.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#78f30ac17abe3cc077fc2456ef55adb51b052c5126011b2a32bacc858acaca7d" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#8d4f08116a97153a0f739de8981874d544b564cbc87dd064cca33f36c29da13b" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#fce1f06f20ab8bcacb9ac1c33572d6425033de53c3a93fbd5391189cc3e106cb" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#10ca57050793923aea3808b9c8669cf53b7342c90c091244e9660bf797d397c7" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#0fd62265e0421a02432f10a294a712a5e784a8e061375e6d8ea5fd619be1be62" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.2-src b/plugins/python-build/share/python-build/pypy2.7-7.3.2-src new file mode 100644 index 0000000000..fecfe431ff --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.2-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy2.7-v7.3.2-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.2-src.tar.bz2#8189480d8350ad6364d05c2b39fd7d832644d4b1cd018f785126389df45928d1" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.3 b/plugins/python-build/share/python-build/pypy2.7-7.3.3 new file mode 100644 index 0000000000..7bf6c58b7f --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.3 @@ -0,0 +1,39 @@ +VERSION='7.3.3' +PYVER='2.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#bfbc81874b137837a8ba8c517b97de29f5a336f7ec500c52f2bfdbd3580d1703" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#f412b602ccd6912ddee0e7523e0e38f4b2c7a144449c2cad078cffbdb66fd7b1" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#23b145b7cfbaeefb6ee76fc8216c83b652ab1daffac490558718edbbd60082d8" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#f34dc4f5ded1f6bcea05841aa9781b9307329e3ab755607917148568824ae0b0" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#b3e660dae8d25d8278fd6a0db77e76a16ac9a8c1dca22e7e103d39ed696dc69e" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.3-src b/plugins/python-build/share/python-build/pypy2.7-7.3.3-src new file mode 100644 index 0000000000..b557648b48 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.3-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy2.7-v7.3.3-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.3-src.tar.bz2#f63488051ba877fd65840bf8d53822a9c6423d947839023b8720139f4b6e2336" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.4 b/plugins/python-build/share/python-build/pypy2.7-7.3.4 new file mode 100644 index 0000000000..e373b35d27 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.4 @@ -0,0 +1,39 @@ +VERSION='7.3.4' +PYVER='2.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#653cc3f0612399e494021027f4463d62639dffa4345736a16d0704f3f8a61d5f" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#d3f7b0625e770d9be62201765d7d2316febc463372fba9c93a12969d26ae03dd" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#9e741162ce486b14fbcf5aa377796d26b0529a9352fb602ee8b66c005f8420d1" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#ee7bf42ce843596521e02c763408a5164d18f23c9617f1b8e032ce0675686582" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#1080012d7a3cea65182528259b51d52b1f61a3717377c2d9ba11ef36e06162d5" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.4-src b/plugins/python-build/share/python-build/pypy2.7-7.3.4-src new file mode 100644 index 0000000000..89fd610158 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.4-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy2.7-v7.3.4-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.4-src.tar.bz2#ff9b928237767efe08ccfba79dae489519b3c768fb6e3af52d39c2a8a1c21ca4" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.5 b/plugins/python-build/share/python-build/pypy2.7-7.3.5 new file mode 100644 index 0000000000..280411e988 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.5 @@ -0,0 +1,39 @@ +VERSION='7.3.5' +PYVER='2.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#35bb5cb1dcca8e05dc58ba0a4b4d54f8b4787f24dfc93f7562f049190e4f0d94" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#4858b347801fba3249ad90af015b3aaec9d57f54d038a58d806a1bd3217d5150" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#8dc2c753f8a94eca1a304d7736c99b439c09274f492eaa3446770c6c32ed010e" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#8b10442ef31c3b28048816f858adde6d6858a190d9367001a49648e669cbebb6" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#0b90eded11ba89a526c4288f17fff7e75000914ac071bd6d67912748ae89d761" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.5-src b/plugins/python-build/share/python-build/pypy2.7-7.3.5-src new file mode 100644 index 0000000000..f7bee16b6c --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.5-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy2.7-v7.3.5-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.5-src.tar.bz2#c0444fd9873058c1c0d99e13a934e92285cb05992c9968bf523c32bf9bec0a9d" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.6 b/plugins/python-build/share/python-build/pypy2.7-7.3.6 new file mode 100644 index 0000000000..c9de63dc9e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.6 @@ -0,0 +1,39 @@ +VERSION='7.3.6' +PYVER='2.7' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux" ) + install_package "pypy${PYVER}-v${VERSION}-linux32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux32.tar.bz2#7a1145f3a278ffab4da0e2d4c4bd024ab8d67106a502e4bb7f6d67337e7af2b7" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux64" ) + install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#82127f43fae6ce75d47d6c4539f8c1ea372e9c2dbfa40fae8b58351d522793a4" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"linux-aarch64" ) + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#9a97de82037d4be1949ec0c35a4d638ba635e8b34948549ae2fa08abd2cbaa8c" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +"osx64" ) + if require_osx_version "10.13"; then + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#8b10442ef31c3b28048816f858adde6d6858a190d9367001a49648e669cbebb6" "pypy" "verify_py${PYVER//./}" ensurepip + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + fi + ;; +"win32" ) + install_zip "pypy${PYVER}-v${VERSION}-win32" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-win32.zip#fcc8f6b3b472a77eaa754951f288fe234b4953bfba845888dd839b9b862cb891" "pypy" "verify_py${PYVER//./}" ensurepip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try 'pypy${PYVER}-${VERSION}-src' to build from source." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.6-src b/plugins/python-build/share/python-build/pypy2.7-7.3.6-src new file mode 100644 index 0000000000..433b6c81f7 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.6-src @@ -0,0 +1,4 @@ +#require_gcc +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 "pypy2.7-v7.3.6-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.6-src.tar.bz2#0114473c8c57169cdcab1a69c60ad7fef7089731fdbe6f46af55060b29be41e4" "pypy_builder" verify_py27 ensurepip From 8675031879d8f502ba05ea4300c42fe8323b1593 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 22 Dec 2021 09:48:21 +0300 Subject: [PATCH 0375/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index cd333341f7..4595ad921d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.2.2" +version="2.2.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 40d35f84b4de9e022c13489a663457a4fdaa342c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 22 Dec 2021 09:48:46 +0300 Subject: [PATCH 0376/1324] Update CHANGELOG.md --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 54e6f59bb7..e4d7c998f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ ## Version History +## Release 2.2.3 + +* Add new pypy versions (pypy2.7-7.3.2~7.3.5) to the version list (#2194) +* Fix Python 3.7.12 compilation on macOS arm64/M1. (#2190) +* Fix Python 3.6.15 compilation on macOS arm64/M1. (#2189) +* Add Anaconda3-2021.11 (#2193) +* CPython 3.11.0a3 (#2187) +* Fix errant "echo" in README install instructions (#2185) +* Add Miniforge and Mambaforge 4.10.3-10 (#2184) +* Add CPython 3.10.1 (#2183) +* Fix 3.6.15 build on macOS (#2182) + ## Release 2.2.2 * Add support for macOS Apple M1 (#2164) From 423de9ae8d34693496952e1ccbfcb97baa9dc051 Mon Sep 17 00:00:00 2001 From: Fluency <93673101+fluencydoc@users.noreply.github.com> Date: Thu, 23 Dec 2021 14:01:28 -0400 Subject: [PATCH 0377/1324] add-miniconda: add docstrings to several key functions (#2197) --- plugins/python-build/scripts/add_miniconda.py | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index bed6f591a3..0cacdcc007 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -130,6 +130,9 @@ class MinicondaVersion(NamedTuple): @classmethod def from_str(cls, s): + """ + Convert a string of the form "miniconda_n-ver" or "miniconda_n-py_ver-ver" to a :class:`MinicondaVersion` object. + """ components = s.split("-") if len(components) == 3: miniconda_n, py_ver, ver = components @@ -146,6 +149,9 @@ def to_filename(self): return f"miniconda{self.suffix}-{self.version_str}" def default_py_version(self): + """ + :class:`PyVersion` of Python used with this Miniconda version + """ if self.py_version: return self.py_version elif self.suffix == Suffix.TWO: @@ -188,6 +194,9 @@ def from_filestem(cls, stem, md5, py_version=None): return spec def to_install_lines(self): + """ + Installation command for this version of Miniconda for use in a Pyenv installation script + """ return install_line_fmt.format( repo=MINICONDA_REPO, suffix=self.version.suffix, @@ -213,6 +222,11 @@ def make_script(specs: List[MinicondaSpec]): def get_existing_minicondas(): + """ + Enumerate existing Miniconda installation scripts in share/python-build/ except rolling releases. + + :returns: A generator of :class:`MinicondaVersion` objects. + """ logger.info("Getting known miniconda versions") for p in out_dir.iterdir(): name = p.name @@ -228,6 +242,12 @@ def get_existing_minicondas(): def get_available_minicondas(): + """ + Fetch remote miniconda versions. + + :returns: A generator of :class:`MinicondaSpec` objects for each release available for download + except rolling releases. + """ logger.info("Fetching remote miniconda versions") session = requests_html.HTMLSession() response = session.get(MINICONDA_REPO) From 162fea40f7e157407ffe9e23d3681e06edeafa42 Mon Sep 17 00:00:00 2001 From: Joseph Strach Date: Wed, 5 Jan 2022 15:46:06 -0500 Subject: [PATCH 0378/1324] Fix incorrect pypy 2.7-7.3.6 sha256 hashes (#2208) --- plugins/python-build/share/python-build/pypy2.7-7.3.6 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.6 b/plugins/python-build/share/python-build/pypy2.7-7.3.6 index c9de63dc9e..b1040e1639 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.6 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.6 @@ -9,11 +9,11 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy${PYVER}-v${VERSION}-linux64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-linux64.tar.bz2#82127f43fae6ce75d47d6c4539f8c1ea372e9c2dbfa40fae8b58351d522793a4" "pypy" "verify_py${PYVER//./}" ensurepip ;; "linux-aarch64" ) - install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#9a97de82037d4be1949ec0c35a4d638ba635e8b34948549ae2fa08abd2cbaa8c" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-aarch64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-aarch64.tar.bz2#90e9aafb310314938f54678d4d6d7db1163b57c9343e640b447112f74d7f9151" "pypy" "verify_py${PYVER//./}" ensurepip ;; "osx64" ) if require_osx_version "10.13"; then - install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#8b10442ef31c3b28048816f858adde6d6858a190d9367001a49648e669cbebb6" "pypy" "verify_py${PYVER//./}" ensurepip + install_package "pypy${PYVER}-v${VERSION}-osx64" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-osx64.tar.bz2#9a97de82037d4be1949ec0c35a4d638ba635e8b34948549ae2fa08abd2cbaa8c" "pypy" "verify_py${PYVER//./}" ensurepip else { echo colorize 1 "ERROR" From 867909c93333d0dfd44e7610f6924b80f4040659 Mon Sep 17 00:00:00 2001 From: Christian Hammond Date: Thu, 6 Jan 2022 18:14:22 -0800 Subject: [PATCH 0379/1324] Fix a regression in include paths when compiling ctypes in 3.6.15/3.7.12. (#2209) In my previous work on getting Python 3.6.15 and 3.7.12 to compile on Apple M1, I backported logic from newer 3.8.x releases to properly find libffi and related files on macOS. This regressed compilation on Linux. The include search path was incomplete, and `ffi.h` could not be found, resulting in `ctypes` being disabled. There was a key difference between the old logic and new logic that led to this regression: 1. In 3.8 and newer, `detect_ctypes()` in `setup.py` took no arguments, and was expected to access instance variables for the include search path. 2. In 3.7 and earlier, `detect_ctypes()` took the path as an argument, and was expected to make use of it. The backport made use of the instance variables, overriding the provided include path. These were not equivalent. The one on the instance was not complete, lacking the necessary directories to find `ffi.h`. Since this could not be found, `ctypes` support was disabled. The fix is to simply not overwrite the variables passed to the function, and resume using them as before. Fixes #2207 --- ...ort-ctypes-and-system-libffi-patches-for-arm64-macO.patch | 5 ++--- ...ort-ctypes-and-system-libffi-patches-for-arm64-macO.patch | 4 +--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch index ae8a90cbf0..c69db8b85e 100644 --- a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -243,13 +243,12 @@ index 8e03c77997..3b124c4b7b 100644 include_dirs = [] extra_compile_args = [] extra_link_args = [] -@@ -2162,20 +2180,30 @@ class PyBuildExt(build_ext): +@@ -2162,20 +2180,29 @@ class PyBuildExt(build_ext): libraries=math_libs) self.extensions.extend([ext, ext_test]) + ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") + ffi_lib = None -+ inc_dirs = self.compiler.include_dirs[:] + if host_platform == 'darwin': - if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): @@ -284,7 +283,7 @@ index 8e03c77997..3b124c4b7b 100644 with open(ffi_h) as f: for line in f: line = line.strip() -@@ -2186,15 +2214,22 @@ class PyBuildExt(build_ext): +@@ -2186,15 +2213,22 @@ class PyBuildExt(build_ext): ffi_inc = None print('Header file {} does not define LIBFFI_H or ' 'ffi_wrapper_h'.format(ffi_h)) diff --git a/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch index 983a8d15ce..f23946d0fb 100644 --- a/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch +++ b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -243,15 +243,13 @@ index bf90600eaa..48ff120e9a 100644 include_dirs = [] extra_compile_args = [] extra_link_args = [] -@@ -2018,30 +2036,49 @@ class PyBuildExt(build_ext): +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): libraries=['m']) self.extensions.extend([ext, ext_test]) + ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") + ffi_lib = None + -+ #inc_dirs = self.inc_dirs.copy() -+ inc_dirs = self.compiler.include_dirs[:] if host_platform == 'darwin': - if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): + if not self.use_system_libffi: From 971397dd4e8144a15b47e248b1ad6641fb44318e Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 8 Jan 2022 13:56:56 +0300 Subject: [PATCH 0380/1324] Revert "Disable coreutils on M1 Apple Silicon with arm64 (#2020)" (#2212) This reverts commit 90d0d20508a91e7ea1e609e8aa9f9d1a28bb563e. After further consideration, we've decided to remove this workaround: * It only has an effect if the user has added `gnubin` from Homebrew Coreutils to PATH which is an unsupported setup * It was intended to be applied only to a few select 3.8 and 3.9 versions that officially support Apple Silicon and only fail with Homebrew Coreutils in PATH because they have `config.*` from a too old version of Autoconf that doesn't support the Arm64 arch -- but * CPython devs [didn't actually fix the problem in 3.10, either, only in 3.11](https://github.com/pyenv/pyenv/pull/2157#issuecomment-968055387), so we'd need to apply it to all 3.10 releases, too * users started pushing this workaround into other unrelated branches because they were using the above unsupported setup. See https://github.com/pyenv/pyenv/pull/2190#pullrequestreview-835221952 for discussion. --- plugins/python-build/bin/python-build | 30 ------------------- .../python-build/share/python-build/3.8-dev | 2 +- .../python-build/share/python-build/3.8.10 | 4 +-- .../python-build/share/python-build/3.8.11 | 4 +-- .../python-build/share/python-build/3.9-dev | 2 +- plugins/python-build/share/python-build/3.9.1 | 4 +-- plugins/python-build/share/python-build/3.9.2 | 4 +-- plugins/python-build/share/python-build/3.9.4 | 4 +-- plugins/python-build/share/python-build/3.9.5 | 4 +-- plugins/python-build/share/python-build/3.9.6 | 4 +-- 10 files changed, 16 insertions(+), 46 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 6c5dfcc8bc..7e3834f0e6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -112,13 +112,6 @@ is_mac() { [ $# -eq 0 ] || [ "$(osx_version)" "$@" ] } -is_arm64_apple() { - if [ "$(uname -s)" = "Darwin" ] && [ "$(uname -m)" = "arm64" ]; then - return 0 - fi - return 1 -} - # 9.1 -> 901 # 10.9 -> 1009 # 10.10 -> 1010 @@ -1617,29 +1610,6 @@ use_tcltk() { fi } -# CPython 3.9.1+ and 3.8.10+ have old config.sub that doesn't support "arm64" arch -# which is what Gnu uname (but not Apple uname) produces on Apple M1 -# (https://github.com/pyenv/pyenv/pull/2020#issuecomment-891911842) -build_package_arm64_apple_disable_homebrew_coreutils() { - if is_arm64_apple; then - local brew_coreutils="$(brew --prefix coreutils 2>/dev/null || true)" - if [ -d "$brew_coreutils" ]; then - local after_list=() - # Bash 3 ignores IFS set for command when doing expansions so have to set it separately - IFS=':'; local -a list=(${PATH}); IFS="$OLDIFS" - for str in "${list[@]}"; do - if [[ "$str" != "$brew_coreutils"/* ]]; then - after_list+=("$str") - else - echo "python-build: excluding \`$str' from PATH" - fi - done - # Bash 3 ignores IFS set for command when doing expansions so have to set it separately - IFS=':'; export PATH="${after_list[*]}"; IFS="$OLDIFS" - fi - fi -} - build_package_enable_shared() { package_option python configure --enable-shared } diff --git a/plugins/python-build/share/python-build/3.8-dev b/plugins/python-build/share/python-build/3.8-dev index 4a8dea248e..14c5795ad6 100644 --- a/plugins/python-build/share/python-build/3.8-dev +++ b/plugins/python-build/share/python-build/3.8-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.8-dev" "https://github.com/python/cpython" "3.8" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip +install_git "Python-3.8-dev" "https://github.com/python/cpython" "3.8" standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.10 b/plugins/python-build/share/python-build/3.8.10 index 5bb4e1d8a5..c2d72b9d88 100644 --- a/plugins/python-build/share/python-build/3.8.10 +++ b/plugins/python-build/share/python-build/3.8.10 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tar.xz#6af24a66093dd840bcccf371d4044a3027e655cf24591ce26e48022bc79219d9" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.10" "https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz#b37ac74d2cbad2590e7cd0dd2b3826c29afe89a734090a87bf8c03c45066cb65" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.8.11 b/plugins/python-build/share/python-build/3.8.11 index 4533744870..5657747e05 100644 --- a/plugins/python-build/share/python-build/3.8.11 +++ b/plugins/python-build/share/python-build/3.8.11 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tar.xz#fb1a1114ebfe9e97199603c6083e20b236a0e007a2c51f29283ffb50c1420fb2" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tar.xz#fb1a1114ebfe9e97199603c6083e20b236a0e007a2c51f29283ffb50c1420fb2" standard verify_py38 copy_python_gdb ensurepip else - install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz#b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393" arm64_apple_disable_homebrew_coreutils standard verify_py38 copy_python_gdb ensurepip + install_package "Python-3.8.11" "https://www.python.org/ftp/python/3.8.11/Python-3.8.11.tgz#b77464ea80cec14581b86aeb7fb2ff02830e0abc7bcdc752b7b4bdfcd8f3e393" standard verify_py38 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9-dev b/plugins/python-build/share/python-build/3.9-dev index a421b19585..9019194d39 100644 --- a/plugins/python-build/share/python-build/3.9-dev +++ b/plugins/python-build/share/python-build/3.9-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.9-dev" "https://github.com/python/cpython" 3.9 arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip +install_git "Python-3.9-dev" "https://github.com/python/cpython" 3.9 standard verify_py39 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 index 3af8d4c46d..ba0a7989e6 100644 --- a/plugins/python-build/share/python-build/3.9.1 +++ b/plugins/python-build/share/python-build/3.9.1 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tar.xz#991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.1" "https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz#29cb91ba038346da0bd9ab84a0a55a845d872c341a4da6879f462e94c741f117" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 index 93875f8bf1..3d741d2fa6 100644 --- a/plugins/python-build/share/python-build/3.9.2 +++ b/plugins/python-build/share/python-build/3.9.2 @@ -4,8 +4,8 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tar.xz#3c2034c54f811448f516668dce09d24008a0716c3a794dd8639b5388cbde247d" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.2" "https://www.python.org/ftp/python/3.9.2/Python-3.9.2.tgz#7899e8a6f7946748830d66739f2d8f2b30214dad956e56b9ba216b3de5581519" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.4 b/plugins/python-build/share/python-build/3.9.4 index ccde10207c..9f164b30be 100644 --- a/plugins/python-build/share/python-build/3.9.4 +++ b/plugins/python-build/share/python-build/3.9.4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tar.xz#4b0e6644a76f8df864ae24ac500a51bbf68bd098f6a173e27d3b61cdca9aa134" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.4" "https://www.python.org/ftp/python/3.9.4/Python-3.9.4.tgz#66c4de16daa74a825cf9da9ddae1fe020b72c3854b73b1762011cc33f9e4592f" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 index 5b31a531b3..f6390889e1 100644 --- a/plugins/python-build/share/python-build/3.9.5 +++ b/plugins/python-build/share/python-build/3.9.5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tar.xz#0c5a140665436ec3dbfbb79e2dfb6d192655f26ef4a29aeffcb6d1820d716d83" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.5" "https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz#e0fbd5b6e1ee242524430dee3c91baf4cbbaba4a72dd1674b90fda87b713c7ab" standard verify_py39 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.9.6 b/plugins/python-build/share/python-build/3.9.6 index cbfd237323..0de2f2456d 100644 --- a/plugins/python-build/share/python-build/3.9.6 +++ b/plugins/python-build/share/python-build/3.9.6 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz#397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz#397920af33efc5b97f2e0b57e91923512ef89fc5b3c1d21dbfc8c4828ce0108a" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz#d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866" arm64_apple_disable_homebrew_coreutils standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.6" "https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz#d0a35182e19e416fc8eae25a3dcd4d02d4997333e4ad1f2eee6010aadc3fe866" standard verify_py39 copy_python_gdb ensurepip fi From 9f5aa953b459fbd3391c15a07a6ba1c41133f65c Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Fri, 14 Jan 2022 23:51:28 -0800 Subject: [PATCH 0381/1324] CPython 3.11.0a4 (#2217) --- .../python-build/share/python-build/{3.11.0a3 => 3.11.0a4} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a3 => 3.11.0a4} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a3 b/plugins/python-build/share/python-build/3.11.0a4 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a3 rename to plugins/python-build/share/python-build/3.11.0a4 index bb9003f8d5..b2bdc553e6 100644 --- a/plugins/python-build/share/python-build/3.11.0a3 +++ b/plugins/python-build/share/python-build/3.11.0a4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.11.0a3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a3.tar.xz#96fbe735d377dec46a007974d1315868bde9f06aea5e56dee99500d620d814a3" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a4.tar.xz#437fe7376c363dafaf34ce80f0446b41fc9a42c0e2a8c7e519d3f0a0b7cfb3ed" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a3.tgz#8af25618be3901a60d0d82176b91476c93dd8c086f40b849e9c4811424d13c35" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a4.tgz#1ae9cfbf06ac2e40c7f51e86ad9c7e821f5a33b6c1aa7473b46126e3112aa4a0" standard verify_py311 copy_python_gdb ensurepip fi From a55dd92436863cae0e2af1c1e051ee5f8853c005 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sat, 15 Jan 2022 05:27:08 -0800 Subject: [PATCH 0382/1324] CPython 3.9.10 and 3.10.2 (#2219) --- plugins/python-build/share/python-build/3.10.2 | 10 ++++++++++ plugins/python-build/share/python-build/3.9.10 | 10 ++++++++++ 2 files changed, 20 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.2 create mode 100644 plugins/python-build/share/python-build/3.9.10 diff --git a/plugins/python-build/share/python-build/3.10.2 b/plugins/python-build/share/python-build/3.10.2 new file mode 100644 index 0000000000..4d4cd28e9a --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.2 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.10.2" "https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz#17de3ac7da9f2519aa9d64378c603a73a0e9ad58dffa8812e45160c086de64c7" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.2" "https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tgz#3c0ede893011319f9b0a56b44953a3d52c7abf9657c23fb4bc9ced93b86e9c97" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.10 b/plugins/python-build/share/python-build/3.9.10 new file mode 100644 index 0000000000..40c6a3c3dd --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.10 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.10" "https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tar.xz#0a8fbfb5287ebc3a13e9baf3d54e08fa06778ffeccf6311aef821bb3a6586cc8" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.10" "https://www.python.org/ftp/python/3.9.10/Python-3.9.10.tgz#1aa9c0702edbae8f6a2c95f70a49da8420aaa76b7889d3419c186bfc8c0e571e" standard verify_py39 copy_python_gdb ensurepip +fi From 39f1b141effebbffafbdc6befc7129ae5e77be01 Mon Sep 17 00:00:00 2001 From: Verdi March Date: Tue, 18 Jan 2022 00:44:59 +0800 Subject: [PATCH 0383/1324] miniconda3-latest: added Linux-aarch64 (#2221) --- plugins/python-build/share/python-build/miniconda3-latest | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/share/python-build/miniconda3-latest b/plugins/python-build/share/python-build/miniconda3-latest index df753a49bd..edae374646 100644 --- a/plugins/python-build/share/python-build/miniconda3-latest +++ b/plugins/python-build/share/python-build/miniconda3-latest @@ -5,6 +5,9 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86_64" ) install_script "Miniconda3-latest-Linux-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh" "miniconda" verify_py3_latest ;; +"Linux-aarch64" ) + install_script "Miniconda3-latest-Linux-aarch64" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-aarch64.sh" "miniconda" verify_py3_latest + ;; "MacOSX-x86_64" ) install_script "Miniconda3-latest-MacOSX-x86_64" "https://repo.continuum.io/miniconda/Miniconda3-latest-MacOSX-x86_64.sh" "miniconda" verify_py3_latest ;; From 8aa8d84e0961fbea6dea28c175db0a5da7bf49c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 26 Jan 2022 10:12:55 +0100 Subject: [PATCH 0384/1324] Add GraalPython 22.0.0 (#2226) --- .../share/python-build/graalpython-22.0.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-22.0.0 diff --git a/plugins/python-build/share/python-build/graalpython-22.0.0 b/plugins/python-build/share/python-build/graalpython-22.0.0 new file mode 100644 index 0000000000..bd7817ef2d --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-22.0.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2021, 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='22.0.0.2' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="e80c6051a609e7e1403b96992951814e967cf6deb9ca2507e691769d01970d55" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="5b0476321162557a7b43e6cdadfc187280bc40a3452d327a4ae8d624afaa5336" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From 6f7a29c3f4a4a5931a28666ec02c262546f333a0 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 27 Jan 2022 18:46:17 +0300 Subject: [PATCH 0385/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 4595ad921d..0debf45d3a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.2.3" +version="2.2.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 42e6409f6c25e58233be7f4a2c9a9d50f8ed6a3e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 27 Jan 2022 18:51:13 +0300 Subject: [PATCH 0386/1324] Update CHANGELOG.md --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4d7c998f1..9bc3e5d9aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ ## Version History +## Release 2.2.4 + +* Added docstrings to several undocumented functions (#2197) +* Fix incorrect pypy 2.7-7.3.6 sha256 hashes (#2208) +* Fix a regression in include paths when compiling ctypes in 3.6.15/3.7.12 (#2209) +* Revert "Disable coreutils on M1 Apple Silicon with arm64 (#2020)" (#2212) +* CPython 3.11.0a4 (#2217) +* CPython 3.9.10 and 3.10.2 (#2219) +* miniconda3-latest: added Linux-aarch64 (#2221) +* Add GraalPython 22.0.0 (#2226) + + ## Release 2.2.3 * Add new pypy versions (pypy2.7-7.3.2~7.3.5) to the version list (#2194) From 7ea0408966d8a7cae0c48c3e785ba22e1861e6b2 Mon Sep 17 00:00:00 2001 From: Pedro Fonini Date: Wed, 2 Feb 2022 09:56:12 -0300 Subject: [PATCH 0387/1324] Fix UnicodeDecodeError for CPython 3.6.15 and 3.7.12 (#2237) --- ...error-when-opening-header-with-non-U.patch | 30 +++++++++++++++++++ ...error-when-opening-header-with-non-U.patch | 30 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0007-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0007-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0007-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..ea673435db --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0007-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From d9782f66445c9fa5d835ad29c23b22be85cde354 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 4aaa51e0d4..3556bbe041 100644 +--- a/setup.py ++++ b/setup.py +@@ -184,7 +184,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + diff --git a/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..773b69fa0e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From a98fee0555627a8760667d9f6a9a8e94a4ce5395 Mon Sep 17 00:00:00 2001 From: Pedro Fonini Date: Wed, 2 Feb 2022 21:20:52 -0300 Subject: [PATCH 0388/1324] python-build: add URL for get-pip for Python 3.6 (#2238) --- plugins/python-build/bin/python-build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 7e3834f0e6..39886b1b3a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2204,6 +2204,9 @@ if [ -z "${GET_PIP_URL}" ]; then 3.5 | 3.5.* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/3.5/get-pip.py" ;; + 3.6 | 3.6.* ) + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.6/get-pip.py" + ;; * ) GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py" ;; From d29feab2c8cc8aec2b886b60197e15f16e4c418e Mon Sep 17 00:00:00 2001 From: David Lawson Date: Thu, 3 Feb 2022 13:07:56 +0000 Subject: [PATCH 0389/1324] Add pyston-2.3.2 (#2240) --- .../share/python-build/pyston-2.3.2 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/pyston-2.3.2 diff --git a/plugins/python-build/share/python-build/pyston-2.3.2 b/plugins/python-build/share/python-build/pyston-2.3.2 new file mode 100644 index 0000000000..38717b5ca9 --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.3.2 @@ -0,0 +1,19 @@ +echo +colorize 1 "WARNING" +echo ": Pyston only runs on x86_64 platforms, and only has been tested on Ubuntu" +echo "so, your mileage may vary with other Linux distributions." +echo + +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_2.3.2" "https://github.com/pyston/pyston/releases/download/pyston_2.3.2/pyston_2.3.2_portable.tar.gz#80e71dd2db504e09951ee835e04c9e1183c79412da9aa11d98a6d3f44b95bec1" "pyston" verify_py38 get_pip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston 2.3.2 binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 1e79a5222bd00b95c11155f33646cd6b477c12f3 Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Fri, 4 Feb 2022 05:34:53 +0530 Subject: [PATCH 0390/1324] Add CPython 3.11.0a5 (#2241) --- .../python-build/share/python-build/{3.11.0a4 => 3.11.0a5} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a4 => 3.11.0a5} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a4 b/plugins/python-build/share/python-build/3.11.0a5 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a4 rename to plugins/python-build/share/python-build/3.11.0a5 index b2bdc553e6..1242927430 100644 --- a/plugins/python-build/share/python-build/3.11.0a4 +++ b/plugins/python-build/share/python-build/3.11.0a5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.11.0a4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a4.tar.xz#437fe7376c363dafaf34ce80f0446b41fc9a42c0e2a8c7e519d3f0a0b7cfb3ed" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a5.tar.xz#3dab241811e83f1eae691fd5b567c52b864db0b236ebf245e839250bc3ac399f" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a4.tgz#1ae9cfbf06ac2e40c7f51e86ad9c7e821f5a33b6c1aa7473b46126e3112aa4a0" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a5.tgz#017ae04911b6b2f7695fae2af625c3e74e88db15b4a3aca28ed1530090f02a8d" standard verify_py311 copy_python_gdb ensurepip fi From 49d955d584194e2db4b5053b45287f65190dd2c0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 1 Mar 2022 09:25:20 +0300 Subject: [PATCH 0391/1324] Fix typo in looked-for argument name --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 39886b1b3a..cd333a4a75 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2130,7 +2130,7 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; exit 1 fi package_option python configure --enable-universalsdk=/ - if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--enable-universal-archs"* ]]; then + if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--with-universal-archs"* ]]; then # in CPython's configure.ac, --with-universal-archs defaults to 'intel' which means i386 + x86_64 # since 2.7.5 and 3.3.0 -- i.e. in all non-EOL versions # Apple Silicon cannot build these, in it, it rather makes sense to default to Universal2 binaries From 3b0ee099a82c2cf6a5a9ea62dae99a743889c548 Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Mon, 7 Mar 2022 23:53:04 +0530 Subject: [PATCH 0392/1324] Add CPython 3.11.0a6 (#2266) --- .../python-build/share/python-build/{3.11.0a5 => 3.11.0a6} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a5 => 3.11.0a6} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a5 b/plugins/python-build/share/python-build/3.11.0a6 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a5 rename to plugins/python-build/share/python-build/3.11.0a6 index 1242927430..258337a61c 100644 --- a/plugins/python-build/share/python-build/3.11.0a5 +++ b/plugins/python-build/share/python-build/3.11.0a6 @@ -4,7 +4,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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-3.11.0a5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a5.tar.xz#3dab241811e83f1eae691fd5b567c52b864db0b236ebf245e839250bc3ac399f" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a6" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a6.tar.xz#1c53a2ff75879633e30cac29d2aa6b7a010e355b95f0bf9ac691beccf5f9d12a" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a5.tgz#017ae04911b6b2f7695fae2af625c3e74e88db15b4a3aca28ed1530090f02a8d" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a6" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a6.tgz#1d57a89c40090740b19fbae6412a54f3f42adf49136235306d00badfd361247a" standard verify_py311 copy_python_gdb ensurepip fi From 7bc426e2bee6ff56ef7022d73b7e0d8dae4b679b Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 8 Mar 2022 09:37:39 -0500 Subject: [PATCH 0393/1324] Add miniconda3-3.7-4.11.0, miniconda3-3.8-4.11.0, miniconda3-3.9-4.11.0 (#2268) --- .../share/python-build/miniconda3-3.7-4.11.0 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-3.8-4.11.0 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-3.9-4.11.0 | 19 +++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 b/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 new file mode 100644 index 0000000000..3b6b12ccdc --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py37_4.11.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-ppc64le.sh#cf7cbccc16bf82365bbf0129f646ff45" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_4.11.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-x86_64.sh#7675bd23411179956bcc4692f16ef27d" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_4.11.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-MacOSX-x86_64.sh#0dde31d693fbcb4feb1eb4292cba4371" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 b/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 new file mode 100644 index 0000000000..d2c42d9742 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py38_4.11.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-ppc64le.sh#adec9893a69557f1eaadce56f24f6614" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_4.11.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-x86_64.sh#252d3b0c863333639f99fbc465ee1d61" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_4.11.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-MacOSX-x86_64.sh#e0ab9762f3d20d23bbff4b804a03cb08" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 b/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 new file mode 100644 index 0000000000..8f324c1210 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Miniconda3-py39_4.11.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-Linux-ppc64le.sh#305e55110a3ad9384230e5fe396ccd89" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_4.11.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-Linux-x86_64.sh#4e2f31e0b2598634c80daa12e4981647" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_4.11.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-MacOSX-x86_64.sh#d1303e5c7510b2ef444b9ba474551733" "miniconda" verify_py39 + ;; +* ) + { 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 From ee6ef20859038d2058ed571b76aea6f656ae58f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Wed, 9 Mar 2022 04:33:01 +0200 Subject: [PATCH 0394/1324] docs(pyenv-prefix): note support for multiple versions (#2270) --- COMMANDS.md | 6 +++--- libexec/pyenv-prefix | 10 +++++----- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 5dc784f65e..24a8d396e1 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -315,9 +315,9 @@ Displays the root directory where versions and shims are kept. ## `pyenv prefix` -Displays the directory where a Python version is installed. If no -version is given, `pyenv prefix` displays the location of the -currently selected version. +Displays the directories where the given Python versions are installed, +separated by colons. If no version is given, `pyenv prefix` displays the +locations of the currently selected versions. $ pyenv prefix 3.9.7 /home/user/.pyenv/versions/3.9.7 diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index 9cd0715d4f..e244e76a25 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -1,10 +1,10 @@ #!/usr/bin/env bash -# Summary: Display prefix for a Python version -# Usage: pyenv prefix [] +# Summary: Display prefixes for Python versions +# Usage: pyenv prefix [...] # -# Displays the directory where a Python version is installed. If no -# version is given, `pyenv prefix' displays the location of the -# currently selected version. +# Displays the directories where the given Python versions are installed, +# separated by colons. If no version is given, `pyenv prefix' displays the +# locations of the currently selected versions. set -e [ -n "$PYENV_DEBUG" ] && set -x From 0d949796ce695b0ad2616787ca44b0fef589f0e3 Mon Sep 17 00:00:00 2001 From: dand-oss Date: Wed, 9 Mar 2022 12:13:38 -0600 Subject: [PATCH 0395/1324] Add PyPy 7.3.8 (#2253) Co-authored-by: Dan Dees --- .../share/python-build/pypy2.7-7.3.8 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.8-src | 14 ++++ .../share/python-build/pypy3.7-7.3.7-src | 2 +- .../share/python-build/pypy3.7-7.3.8 | 81 +++++++++++++++++++ .../share/python-build/pypy3.7-7.3.8-src | 14 ++++ .../share/python-build/pypy3.8-7.3.8 | 81 +++++++++++++++++++ .../share/python-build/pypy3.8-7.3.8-src | 14 ++++ .../share/python-build/pypy3.9-7.3.8 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.8-src | 14 ++++ 9 files changed, 381 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.8 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.8-src create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.8 create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.8-src create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.8 create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.8-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.8 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.8-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.8 b/plugins/python-build/share/python-build/pypy2.7-7.3.8 new file mode 100644 index 0000000000..ff39e31240 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.8 @@ -0,0 +1,81 @@ +VERSION='7.3.8' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=ca1f8d3146c83002ee97615906b0930e821297dcce3063b5b28933a0690ef298 +linux32_hash=7c84f173bbcd73d0eb10909259d11b5cc253d4c6ea4492e6da8f2532df9b3da5 +linux64_hash=1f2e84fb539ffce233c34769d2f11647955f894be091e85419e05f48011e8940 +osx64_hash=e5c1ff39ad9916ea23e3deb8012fe42367b6b19284cf13b1a1ea2b2f53a43add +s390x_hash=b4ae4e708ba84602d976ad6ae391ef2eef4b1896d831b8f2b2ec69927dd92014 +win64_hash=806a29a6c5550b1e669d8870683d3379138d3d43eb1e07bdf26d65a0691265f2 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${hash}" +} + +# determine command, package directory, url+hash +declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" + +# install +${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.8-src b/plugins/python-build/share/python-build/pypy2.7-7.3.8-src new file mode 100644 index 0000000000..91dd043819 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.8-src @@ -0,0 +1,14 @@ +VERSION='7.3.8' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=0cdad270c62d3ccc53cc87eeb069a6dc46acaf95521b584624bcd6697d94fa1c + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.7-src b/plugins/python-build/share/python-build/pypy3.7-7.3.7-src index 81b0145559..c2faa3a58c 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.7-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.7-src @@ -1,7 +1,7 @@ VERSION='7.3.7' PYVER='3.7' +# https://www.pypy.org/checksums.html -#require_gcc 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#2ed02ac9e710859c41bc82deafb08619792bb9a27eeaa1676c741ededd214dd7" "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.8 b/plugins/python-build/share/python-build/pypy3.7-7.3.8 new file mode 100644 index 0000000000..cfe9940498 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.8 @@ -0,0 +1,81 @@ +VERSION='7.3.8' +PYVER='3.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=4fb2f8281f3aaca72e6fe62ecc5fc054fcc79cd061ca3e0eea730f7d82d610d4 +linux32_hash=38429ec6ea1aca391821ee4fbda7358ae86de4600146643f2af2fe2c085af839 +linux64_hash=409085db79a6d90bfcf4f576dca1538498e65937acfbe03bd4909bdc262ff378 +osx64_hash=76b8eef5b059a7e478f525615482d2a6e9feb83375e3f63c16381d80521a693f +s390x_hash=5c2cd3f7cf04cb96f6bcc6b02e271f5d7275867763978e66651b8d1605ef3141 +win64_hash=96df67492bc8d62b2e71dddf5f6c58965a26cac9799c5f4081401af0494b3bcc + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${hash}" +} + +# determine command, package directory, url+hash +declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" + +# install +${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.8-src b/plugins/python-build/share/python-build/pypy3.7-7.3.8-src new file mode 100644 index 0000000000..f120f5e365 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.8-src @@ -0,0 +1,14 @@ +VERSION='7.3.8' +PYVER='3.7' + +# https://www.pypy.org/checksums.html +hash=35752be62b148fa6f7fb69e58e1f993c7cc319bea54928eb03ed2e75b8248d5f + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.8 b/plugins/python-build/share/python-build/pypy3.8-7.3.8 new file mode 100644 index 0000000000..98cedf6ef7 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.8 @@ -0,0 +1,81 @@ +VERSION='7.3.8' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +aarch64_hash=fe41df391f87239925e573e195e631a9d03d37f471eb1479790ee13ca47a28af +linux32_hash=bea4b275decd492af6462157d293dd6fcf08a949859f8aec0959537b40afd032 +linux64_hash=089f8e3e357d6130815964ddd3507c13bd53e4976ccf0a89b5c36a9a6775a188 +osx64_hash=de1b283ff112d76395c0162a1cf11528e192bdc230ee3f1b237f7694c7518dee +s390x_hash=0c46527770ec1322b98942860ad3551767d3e09d4481bcb49abd92001a293840 +win64_hash=0894c468e7de758c509a602a28ef0ba4fbf197ccdf946c7853a7283d9bb2a345 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${hash}" +} + +# determine command, package directory, url+hash +declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" + +# install +${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.8-src b/plugins/python-build/share/python-build/pypy3.8-7.3.8-src new file mode 100644 index 0000000000..89c4c7c4cc --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.8-src @@ -0,0 +1,14 @@ +VERSION='7.3.8' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +hash=f1a378b264cdbfb0e03d77dfc4d105d02f91d542bd7c9c957d1f8083a9808f1f + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.8 b/plugins/python-build/share/python-build/pypy3.9-7.3.8 new file mode 100644 index 0000000000..11cd6b13f9 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.8 @@ -0,0 +1,81 @@ +VERSION='7.3.8' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=89d7ee12a8c416e83fae80af82482531fc6502321e75e5b7a0cc01d756ee5f0e +linux32_hash=0894c468e7de758c509a602a28ef0ba4fbf197ccdf946c7853a7283d9bb2a345 +linux64_hash=129a055032bba700cd1d0acacab3659cf6b7180e25b1b2f730e792f06d5b3010 +osx64_hash=95bd88ac8d6372cd5b7b5393de7b7d5c615a0c6e42fdb1eb67f2d2d510965aee +s390x_hash=37b596bfe76707ead38ffb565629697e9b6fa24e722acc3c632b41ec624f5d95 +win64_hash=c1b2e4cde2dcd1208d41ef7b7df8e5c90564a521e7a5db431673da335a1ba697 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${hash}" +} + +# determine command, package directory, url+hash +declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" + +# install +${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.8-src b/plugins/python-build/share/python-build/pypy3.9-7.3.8-src new file mode 100644 index 0000000000..ddd32e8116 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.8-src @@ -0,0 +1,14 @@ +VERSION='7.3.8' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=546b7fc3789728869d5ada7b6a95ce9d03047e8489b92ada84613c900e431ee9 + +### 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' From 3a95c969e122b1e0791cb8d6cc13063d3ae10857 Mon Sep 17 00:00:00 2001 From: Josh Friend Date: Wed, 16 Mar 2022 16:58:43 -0400 Subject: [PATCH 0396/1324] v2.2.5 Add new CPython versions --- CHANGELOG.md | 18 ++++++++++++++++-- libexec/pyenv---version | 2 +- .../python-build/share/python-build/3.10-dev | 2 +- plugins/python-build/share/python-build/3.10.0 | 2 +- plugins/python-build/share/python-build/3.10.1 | 2 +- plugins/python-build/share/python-build/3.10.2 | 2 +- plugins/python-build/share/python-build/3.10.3 | 10 ++++++++++ .../python-build/share/python-build/3.11.0a6 | 2 +- plugins/python-build/share/python-build/3.7.13 | 10 ++++++++++ plugins/python-build/share/python-build/3.8.13 | 10 ++++++++++ plugins/python-build/share/python-build/3.9.11 | 10 ++++++++++ 11 files changed, 62 insertions(+), 8 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.10.3 create mode 100644 plugins/python-build/share/python-build/3.7.13 create mode 100644 plugins/python-build/share/python-build/3.8.13 create mode 100644 plugins/python-build/share/python-build/3.9.11 diff --git a/CHANGELOG.md b/CHANGELOG.md index 9bc3e5d9aa..f5a1380be0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ ## Version History +## Release 2.2.5 + +* Add CPython 3.10.3 +* Add CPython 3.9.11 +* Add CPython 3.8.13 +* Add CPython 3.7.13 +* Add CPython 3.11.0a6 (#2266) +* Add PyPy 7.3.8 (#2253) +* Add miniconda3-3.7-4.11.0, miniconda3-3.8-4.11.0, miniconda3-3.9-4.11.0 (#2268) +* Add pyston-2.3.2 (#2240) +* Fix UnicodeDecodeError for CPython 3.6.15 and 3.7.12 (#2237) +* python-build: add URL for get-pip for Python 3.6 (#2238) +* Bump openssl to 1.1.1n for CPython 3.10.x + ## Release 2.2.4 * Added docstrings to several undocumented functions (#2197) @@ -16,8 +30,8 @@ * Add new pypy versions (pypy2.7-7.3.2~7.3.5) to the version list (#2194) * Fix Python 3.7.12 compilation on macOS arm64/M1. (#2190) -* Fix Python 3.6.15 compilation on macOS arm64/M1. (#2189) -* Add Anaconda3-2021.11 (#2193) +* Fix Python 3.6.15 compilation on macOS arm64/M1. (#2189) +* Add Anaconda3-2021.11 (#2193) * CPython 3.11.0a3 (#2187) * Fix errant "echo" in README install instructions (#2185) * Add Miniforge and Mambaforge 4.10.3-10 (#2184) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 0debf45d3a..8cfb8b2f3a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.2.4" +version="2.2.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index f02c4cbad2..125c71da36 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "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 "Python-3.10-dev" "https://github.com/python/cpython" 3.10 standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.0 b/plugins/python-build/share/python-build/3.10.0 index 8542079c1d..101b079669 100644 --- a/plugins/python-build/share/python-build/3.10.0 +++ b/plugins/python-build/share/python-build/3.10.0 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "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 if has_tar_xz_support; then install_package "Python-3.10.0" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz#5a99f8e7a6a11a7b98b4e75e0d1303d3832cada5534068f69c7b6222a7b1b002" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.1 b/plugins/python-build/share/python-build/3.10.1 index 7d406481bc..786b1451d4 100644 --- a/plugins/python-build/share/python-build/3.10.1 +++ b/plugins/python-build/share/python-build/3.10.1 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "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 if has_tar_xz_support; then install_package "Python-3.10.1" "https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tar.xz#a7f1265b6e1a5de1ec5c3ec7019ab53413469934758311e9d240c46e5ae6e177" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.2 b/plugins/python-build/share/python-build/3.10.2 index 4d4cd28e9a..aa22d14dc6 100644 --- a/plugins/python-build/share/python-build/3.10.2 +++ b/plugins/python-build/share/python-build/3.10.2 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "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 if has_tar_xz_support; then install_package "Python-3.10.2" "https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz#17de3ac7da9f2519aa9d64378c603a73a0e9ad58dffa8812e45160c086de64c7" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.3 b/plugins/python-build/share/python-build/3.10.3 new file mode 100644 index 0000000000..93d8ac5114 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.3 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "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 +if has_tar_xz_support; then + install_package "Python-3.10.3" "https://www.python.org/ftp/python/3.10.3/Python-3.10.3.tar.xz#596c72de998dc39205bc4f70ef0dbf7edec740a306d09b49a9bd0a77806730dc" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.3" "https://www.python.org/ftp/python/3.10.3/Python-3.10.3.tgz#5a3b029bad70ba2a019ebff08a65060a8b9b542ffc1a83c697f1449ecca9813b" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.0a6 b/plugins/python-build/share/python-build/3.11.0a6 index 258337a61c..7fc7cefe33 100644 --- a/plugins/python-build/share/python-build/3.11.0a6 +++ b/plugins/python-build/share/python-build/3.11.0a6 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1k" "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 if has_tar_xz_support; then install_package "Python-3.11.0a6" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a6.tar.xz#1c53a2ff75879633e30cac29d2aa6b7a010e355b95f0bf9ac691beccf5f9d12a" standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.7.13 b/plugins/python-build/share/python-build/3.7.13 new file mode 100644 index 0000000000..2a66ff049f --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.13 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.13" "https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tar.xz#99f106275df8899c3e8cb9d7c01ce686c202ef275953301427194693de5bef84" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.13" "https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tgz#e405417f50984bc5870c7e7a9f9aeb93e9d270f5ac67f667a0cd3a09439682b5" standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.13 b/plugins/python-build/share/python-build/3.8.13 new file mode 100644 index 0000000000..7d35d30340 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.13 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.13" "https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tar.xz#6f309077012040aa39fe8f0c61db8c0fa1c45136763299d375c9e5756f09cf57" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.13" "https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tgz#903b92d76354366b1d9c4434d0c81643345cef87c1600adfa36095d7b00eede4" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.11 b/plugins/python-build/share/python-build/3.9.11 new file mode 100644 index 0000000000..a1ea787d58 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.11 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.11" "https://www.python.org/ftp/python/3.9.11/Python-3.9.11.tar.xz#66767a35309d724f370df9e503c172b4ee444f49d62b98bc4eca725123e26c49" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.11" "https://www.python.org/ftp/python/3.9.11/Python-3.9.11.tgz#3442400072f582ac2f0df30895558f08883b416c8c7877ea55d40d00d8a93112" standard verify_py39 copy_python_gdb ensurepip +fi From a157725dbe92bb218e54ee6680c3ba34f91cdd43 Mon Sep 17 00:00:00 2001 From: tuzi3040 <28290621+tuzi3040@users.noreply.github.com> Date: Thu, 17 Mar 2022 05:47:09 +0800 Subject: [PATCH 0397/1324] Bump openssl 1.1 to 1.1.1n for CPython 3.7.13 3.8.13 3.9.11 3.10+ (#2276) --- plugins/python-build/share/python-build/3.10-dev | 2 +- plugins/python-build/share/python-build/3.10.0 | 2 +- plugins/python-build/share/python-build/3.10.1 | 2 +- plugins/python-build/share/python-build/3.10.2 | 2 +- plugins/python-build/share/python-build/3.10.3 | 2 +- plugins/python-build/share/python-build/3.11.0a6 | 2 +- plugins/python-build/share/python-build/3.7.13 | 2 +- plugins/python-build/share/python-build/3.8.13 | 2 +- plugins/python-build/share/python-build/3.9.11 | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index 125c71da36..516081b1d5 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -1,6 +1,6 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +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 "Python-3.10-dev" "https://github.com/python/cpython" 3.10 standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.0 b/plugins/python-build/share/python-build/3.10.0 index 101b079669..8ddbea6e0a 100644 --- a/plugins/python-build/share/python-build/3.10.0 +++ b/plugins/python-build/share/python-build/3.10.0 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +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 if has_tar_xz_support; then install_package "Python-3.10.0" "https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tar.xz#5a99f8e7a6a11a7b98b4e75e0d1303d3832cada5534068f69c7b6222a7b1b002" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.1 b/plugins/python-build/share/python-build/3.10.1 index 786b1451d4..244d6e75b0 100644 --- a/plugins/python-build/share/python-build/3.10.1 +++ b/plugins/python-build/share/python-build/3.10.1 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +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 if has_tar_xz_support; then install_package "Python-3.10.1" "https://www.python.org/ftp/python/3.10.1/Python-3.10.1.tar.xz#a7f1265b6e1a5de1ec5c3ec7019ab53413469934758311e9d240c46e5ae6e177" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.2 b/plugins/python-build/share/python-build/3.10.2 index aa22d14dc6..f911bcf7e5 100644 --- a/plugins/python-build/share/python-build/3.10.2 +++ b/plugins/python-build/share/python-build/3.10.2 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +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 if has_tar_xz_support; then install_package "Python-3.10.2" "https://www.python.org/ftp/python/3.10.2/Python-3.10.2.tar.xz#17de3ac7da9f2519aa9d64378c603a73a0e9ad58dffa8812e45160c086de64c7" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.10.3 b/plugins/python-build/share/python-build/3.10.3 index 93d8ac5114..9c0f27f384 100644 --- a/plugins/python-build/share/python-build/3.10.3 +++ b/plugins/python-build/share/python-build/3.10.3 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +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 if has_tar_xz_support; then install_package "Python-3.10.3" "https://www.python.org/ftp/python/3.10.3/Python-3.10.3.tar.xz#596c72de998dc39205bc4f70ef0dbf7edec740a306d09b49a9bd0a77806730dc" standard verify_py310 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.11.0a6 b/plugins/python-build/share/python-build/3.11.0a6 index 7fc7cefe33..eedc9d21bd 100644 --- a/plugins/python-build/share/python-build/3.11.0a6 +++ b/plugins/python-build/share/python-build/3.11.0a6 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1n.tar.gz#40dceb51a4f6a5275bde0e6bf20ef4b91bfc32ed57c0552e2e8e15463372b17a" mac_openssl --if has_broken_mac_openssl +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 if has_tar_xz_support; then install_package "Python-3.11.0a6" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a6.tar.xz#1c53a2ff75879633e30cac29d2aa6b7a010e355b95f0bf9ac691beccf5f9d12a" standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.7.13 b/plugins/python-build/share/python-build/3.7.13 index 2a66ff049f..bf898abd76 100644 --- a/plugins/python-build/share/python-build/3.7.13 +++ b/plugins/python-build/share/python-build/3.7.13 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.7.13" "https://www.python.org/ftp/python/3.7.13/Python-3.7.13.tar.xz#99f106275df8899c3e8cb9d7c01ce686c202ef275953301427194693de5bef84" standard verify_py37 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.13 b/plugins/python-build/share/python-build/3.8.13 index 7d35d30340..ab40129d34 100644 --- a/plugins/python-build/share/python-build/3.8.13 +++ b/plugins/python-build/share/python-build/3.8.13 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.8.13" "https://www.python.org/ftp/python/3.8.13/Python-3.8.13.tar.xz#6f309077012040aa39fe8f0c61db8c0fa1c45136763299d375c9e5756f09cf57" standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.11 b/plugins/python-build/share/python-build/3.9.11 index a1ea787d58..8179013a08 100644 --- a/plugins/python-build/share/python-build/3.9.11 +++ b/plugins/python-build/share/python-build/3.9.11 @@ -1,7 +1,7 @@ #require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.9.11" "https://www.python.org/ftp/python/3.9.11/Python-3.9.11.tar.xz#66767a35309d724f370df9e503c172b4ee444f49d62b98bc4eca725123e26c49" standard verify_py39 copy_python_gdb ensurepip From a43631d7c0182abab80bd3fbb51fca39644e51f8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 17 Mar 2022 14:48:33 +0300 Subject: [PATCH 0398/1324] Copy patches 3.7.12->3.7.13 All the patches still apply --- ...system-libffi-patches-for-arm64-macO.patch | 310 ++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 36 ++ ...error-when-opening-header-with-non-U.patch | 30 ++ 3 files changed, 376 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..524c13b221 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,310 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..efd7bd5901 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,36 @@ +From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index 108b76efa8..35ce429f60 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.30.1 (Apple Git-130) diff --git a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..74ea149211 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From bfe54c94598d67a24b961203428e9887833004f3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 18 Mar 2022 07:39:44 +0300 Subject: [PATCH 0399/1324] `declare -ar` causes "readonly variable" error in Bash 3.2 Fixes https://github.com/pyenv/pyenv/issues/2278 --- plugins/python-build/share/python-build/pypy2.7-7.3.8 | 2 +- plugins/python-build/share/python-build/pypy3.7-7.3.8 | 2 +- plugins/python-build/share/python-build/pypy3.8-7.3.8 | 2 +- plugins/python-build/share/python-build/pypy3.9-7.3.8 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.8 b/plugins/python-build/share/python-build/pypy2.7-7.3.8 index ff39e31240..ca2b4efcf6 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.8 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.8 @@ -75,7 +75,7 @@ function pypy_pkg_data { } # determine command, package directory, url+hash -declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" +declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" # install ${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.8 b/plugins/python-build/share/python-build/pypy3.7-7.3.8 index cfe9940498..c6e964b89d 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.8 +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.8 @@ -75,7 +75,7 @@ function pypy_pkg_data { } # determine command, package directory, url+hash -declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" +declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" # install ${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.8 b/plugins/python-build/share/python-build/pypy3.8-7.3.8 index 98cedf6ef7..2a4db0eed4 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.8 +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.8 @@ -75,7 +75,7 @@ function pypy_pkg_data { } # determine command, package directory, url+hash -declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" +declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" # install ${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.8 b/plugins/python-build/share/python-build/pypy3.9-7.3.8 index 11cd6b13f9..8d8c01ed13 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.8 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.8 @@ -75,7 +75,7 @@ function pypy_pkg_data { } # determine command, package directory, url+hash -declare -ar pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" +declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" # install ${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' From 986fe1a749b6c086b3906c965b661f15ba314d0e Mon Sep 17 00:00:00 2001 From: Ed Rogers Date: Thu, 17 Mar 2022 23:52:26 -0500 Subject: [PATCH 0400/1324] Prevent GitHub autolinking to an issue (#2282) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3bedf8b65a..4edfc617e1 100644 --- a/README.md +++ b/README.md @@ -181,7 +181,7 @@ For pyenv to install python correctly you should [**install the Python build dep brew update brew install pyenv ``` - 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #2 ("Configure your shell's environment for Pyenv"). + 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #​2 ("Configure your shell's environment for Pyenv"). 3. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_ From c0fef470cb0501a5b233914dccc683569abdb146 Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Thu, 24 Mar 2022 18:39:17 +0530 Subject: [PATCH 0401/1324] Add CPython 3.9.12 (#2296) --- plugins/python-build/share/python-build/3.9.12 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.12 diff --git a/plugins/python-build/share/python-build/3.9.12 b/plugins/python-build/share/python-build/3.9.12 new file mode 100644 index 0000000000..dc48da5984 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.12 @@ -0,0 +1,10 @@ +#require_gcc +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.12" "https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tar.xz#2cd94b20670e4159c6d9ab57f91dbf255b97d8c1a1451d1c35f4ec1968adf971" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.12" "https://www.python.org/ftp/python/3.9.12/Python-3.9.12.tgz#70e08462ebf265012bd2be88a63d2149d880c73e53f1712b7bbbe93750560ae8" standard verify_py39 copy_python_gdb ensurepip +fi From 45bb60dc397325aa883f7af4980935d8d993181d Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Thu, 24 Mar 2022 18:40:10 +0530 Subject: [PATCH 0402/1324] Add CPython 3.10.4 (#2295) --- plugins/python-build/share/python-build/3.10.4 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.4 diff --git a/plugins/python-build/share/python-build/3.10.4 b/plugins/python-build/share/python-build/3.10.4 new file mode 100644 index 0000000000..74f72306ac --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.4 @@ -0,0 +1,10 @@ +#require_gcc +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 +if has_tar_xz_support; then + install_package "Python-3.10.4" "https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tar.xz#80bf925f571da436b35210886cf79f6eb5fa5d6c571316b73568343451f77a19" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.4" "https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz#f3bcc65b1d5f1dc78675c746c98fcee823c038168fc629c5935b044d0911ad28" standard verify_py310 copy_python_gdb ensurepip +fi From 48b545345ec1c447decd7475f22a1180ae6c6f9c Mon Sep 17 00:00:00 2001 From: Netanel Shine Date: Thu, 24 Mar 2022 15:35:57 +0200 Subject: [PATCH 0403/1324] Support MacOS with CLang 3+ for CPython 3.6.15 (#2288) --- ...t-internal-configure-error-when-runn.patch | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0008-bpo-45405-Prevent-internal-configure-error-when-runn.patch diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0008-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0008-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..ccf192e908 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0008-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,86 @@ +From 655f26bb742d6bd32c388e9fea14b64eb25fd4de Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Tue, 15 Mar 2022 03:18:39 -0400 +Subject: [PATCH] bpo-45405: Prevent internal configure error when running + configure with recent versions of clang. (GH-28845) (GH-31890) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. +The Apple Clang included with Xcode 13.3 now supports --print-multiarch +causing configure to fail without this change. + +Co-authored-by: Ned Deily +(cherry picked from commit 9c4766772cda67648184f8ddba546a5fc0167f91) + +Co-authored-by: David Bohman +(cherry picked from commit 720bb456dc711b0776bae837d1f9a0b10c28ddf2) +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..13c93d1b8a +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of clang. Patch by David Bohman. +diff --git a/configure b/configure +index fb0a499145..67e6e69b5f 100755 +--- a/configure ++++ b/configure +@@ -5203,9 +5203,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index d86dad9a7c..468ad6070f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -747,9 +747,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.32.0 (Apple Git-132) + From fb97a9c2bd8c0e7b582d4b525cd348cc2ed5359a Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Thu, 24 Mar 2022 09:36:48 -0400 Subject: [PATCH 0404/1324] Support MacOS with CLang 3+ for CPython 3.7.12 (#2292) --- ...t-internal-configure-error-when-runn.patch | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0004-bpo-45405-Prevent-internal-configure-error-when-runn.patch diff --git a/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0004-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0004-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..d0ff77c04d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.12/Python-3.7.12/0004-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,43 @@ +From 720bb456dc711b0776bae837d1f9a0b10c28ddf2 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Tue, 15 Mar 2022 03:18:39 -0400 +Subject: [PATCH] bpo-45405: Prevent internal configure error when running + configure with recent versions of clang. (GH-28845) (GH-31890) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. +The Apple Clang included with Xcode 13.3 now supports --print-multiarch +causing configure to fail without this change. +--- + configure | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git configure configure +index 829dd69bb8..455481bc50 100755 +--- a/configure ++++ b/configure +@@ -5183,9 +5183,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +-- +2.35.1 + From 72757562c1850daf9144ad42bcbe192dbfcd6e59 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 24 Mar 2022 20:00:29 +0300 Subject: [PATCH 0405/1324] Remove bountysource since it has gone rogue I've never been able to activate (or refund) existing bounties on solved problems. Their support has been unhelpful. So I've given up on them. --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 8f0876a901..8914ef4817 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -9,4 +9,4 @@ community_bridge: # Replace with a single Community Bridge project-name e.g., cl liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username -custom: ['https://www.bountysource.com/teams/yyuu-pyenv/issues'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] From 58427b9a5cf30e30a1f32d57a644283d162fd68b Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 31 Mar 2022 05:28:28 +0300 Subject: [PATCH 0406/1324] Add CONTRIBUTING.md (#2287) --- CONTRIBUTING.md | 104 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..ed79a45181 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,104 @@ +General guidance +================ + +* The usual principes of respecting existing conventions and making sure that your changes + are in line with the overall product design apply when contributing code to Pyenv. + +* We are limited to Bash 3.2 features + + That's because that's the version shipped with MacOS. + (They didn't upgrade past it and switched to Zsh because later versions + are covered by GPLv3 which has additional restrictions unacceptable for Apple.) + +* Be extra careful when submitting logic specific for the Apple Silicon platform + + As of this writing, Github Actions do not support it and only one team member has the necessary hardware. + So we may be unable to test your changes and may have to take your word for it. + + +Formatting PRs +============== + +We strive to keep commit history one-concern-per-commit to keep it meaningful and easy to follow. +If a pull request (PR) addresses a single concern (the typical case), we usually squash commits +from it together when merging so its commit history doesn't matter. +If however a PR addresses multiple separate concerns, each of them should be presented as a separate commit. +Adding multiple new Python releases of the same flavor is okay with either a single or multiple commits. + + +Authoring installation scripts +============================== + +Adding new Python release support +--------------------------------- + +The easiest way to add support for a new Python release is to copy the script from the previous one +and adjust it as necessary. In many cases, just changing version numbers, URLs and hashes is enough. +Do pay attention to other "magic numbers" that may be present in a script -- +e.g. the set of architectures and OS versions supported by a release -- since those change from time to time, too. + +Make sure to also copy any patches for the previous release that still apply to the new one. +Typically, a patch no longer applies if it addresses a problem that's already fixed in the new release. + +For prereleases, we only create an entry for the latest prerelease in a specific version line. +When submitting a newer prerelease, replace the older one. + + +Adding version-specific fixes/patches +------------------------------------- + +We accept fixes to issues in specific Python releases that prevent users from using them with Pyenv. + +In the default configuration for a Python release, we strive to provide as close to vanilla experience as practical, +to maintain [the principle of the least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment). +As such, any such fixes: + +* Must not break or degrade (e.g. disable features) the build in any of the environments that the release officially supports +* Must not introduce incompatibilities with the vanilla release (including binary incompatibilities) +* Should not patch things unnecessarily, to minimize the risk of the aforementioned undesirable side effects. + * E.g. if the fix is for a specific environment, its logic ought to only fire in this specific environment and not touch execution paths for other environments. + * As such, it's advisable to briefly explain in the PR what each added patch does and why it is necessary to fix the declared problem + +Generally, version-specific fixes belong in the scripts for the affected releases and/or patches for them -- this guarantees that their effect is limited to only those releases. + +

Backporting upstream patches

+ +Usually, this is the easiest way to backport a fix for a problem that is fixed in a newer release. + +* Clone Python, check out the tag for the appropriate release and create a branch +* Apply existing patches if there are any (with either `patch` or `git am`) and commit +* Cherry-pick the upstream commit that fixes the problem in a newer release +* Commit and `git format-patch` +* Commit the generated patch file into Pyenv, test your changes and submit a PR + + +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. +In addition to the above general 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. +* We do not provide any guarantees from our side that any such fix works or will continue working going forward. It's up to the interested parties to maintain it. + + +Advanced changes / adding new Python flavor support +--------------------------------------------------- + +An installation script is sourced from `python-build`. All installation scripts are based on the same logic: + +1. Select the source to download and other variable parameters as needed. + + This includes showing an error if the user's environment (OS, architecture) is not supported by the release. + Binary releases that only officially support specific distro(s) typically show a warning in other distros instead. + +2. Run one of the `install_*` shell functions + +`install_*` shell functions defined in `python-build` install Python from different kinds of sources -- compressed package (binary or source), upstream installation script, VCS checkout. Pick one that's the most appropriate for your packaging. + +Each of them accepts a couple of function-specific arguments which are followed by arguments that constitute the build sequence. Each `` in the build sequence corresponds to the `install_*_` function in `python-build`. Check what's available and add any functions with logic specific to your flavor if needed. + +We strive to keep out of `python-build` parts of build logic that are release-specific and/or tend to change abruptly between releases -- e.g. sets of supported architectures and other software's versions. This results in logic duplication between installation scripts -- but since old releases never change once released, this doesn't really add to the maintenance burden. As a rule of thumb, `python-build` can host parts of logic that are expected to stay the same for an indefinite amount of time -- for an entire Python flavor or release line. From f0f2cdd1c6b3b272168b508610cfbbe0ccef8ea5 Mon Sep 17 00:00:00 2001 From: dand-oss Date: Fri, 1 Apr 2022 19:26:38 +0700 Subject: [PATCH 0407/1324] Add PyPy 7.3.9 (#2308) Co-authored-by: Dan Dees --- .../share/python-build/pypy2.7-7.3.9 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.9-src | 14 ++++ .../share/python-build/pypy3.7-7.3.9 | 81 +++++++++++++++++++ .../share/python-build/pypy3.7-7.3.9-src | 14 ++++ .../share/python-build/pypy3.8-7.3.9 | 81 +++++++++++++++++++ .../share/python-build/pypy3.8-7.3.9-src | 14 ++++ .../share/python-build/pypy3.9-7.3.9 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.9-src | 14 ++++ 8 files changed, 380 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.9 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.9-src create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.9 create mode 100644 plugins/python-build/share/python-build/pypy3.7-7.3.9-src create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.9 create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.9-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.9 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.9-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.9 b/plugins/python-build/share/python-build/pypy2.7-7.3.9 new file mode 100644 index 0000000000..99cfd12cfa --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.9 @@ -0,0 +1,81 @@ +VERSION='7.3.9' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=aff4e4dbab53448f662cd01acb2251571d60f836d2f48382a7d8da54ca5b3442 +linux32_hash=bbf4e7343d43c8217099a9bffeed6a1781f4b5a3e186ed1a0befca65e647aeb9 +linux64_hash=172a928b0096a7e00b7d58f523f57300c35c3de7f822491e2a7bc845375c23f8 +osx64_hash=77314f5a6b2cc35d24e6f952bef89f5da612b90e4127a8034aed708d9ae483c4 +s390x_hash=62481dd3c6472393ca05eb3a0880c96e4f5921747157607dbaa772a7369cab77 +win64_hash=ca7b0f4c576995b388cfb4c796e3f6f20b037e5314571bf267daa068a3a2af31 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.9-src b/plugins/python-build/share/python-build/pypy2.7-7.3.9-src new file mode 100644 index 0000000000..c0d4bb4874 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.9-src @@ -0,0 +1,14 @@ +VERSION='7.3.9' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=39b0972956f6548ce5828019dbae12503c32d6cbe91a2becf88d3e42cc52197b + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.9 b/plugins/python-build/share/python-build/pypy3.7-7.3.9 new file mode 100644 index 0000000000..83f2455cad --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.9 @@ -0,0 +1,81 @@ +VERSION='7.3.9' +PYVER='3.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=dfc62f2c453fb851d10a1879c6e75c31ffebbf2a44d181bb06fcac4750d023fc +linux32_hash=3398cece0167b81baa219c9cd54a549443d8c0a6b553ec8ec13236281e0d86cd +linux64_hash=c58195124d807ecc527499ee19bc511ed753f4f2e418203ca51bc7e3b124d5d1 +osx64_hash=12d92f578a200d50959e55074b20f29f93c538943e9a6e6522df1a1cc9cef542 +s390x_hash=fcab3b9e110379948217cf592229542f53c33bfe881006f95ce30ac815a6df48 +win64_hash=8acb184b48fb3c854de0662e4d23a66b90e73b1ab73a86695022c12c745d8b00 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${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' diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.9-src b/plugins/python-build/share/python-build/pypy3.7-7.3.9-src new file mode 100644 index 0000000000..e48b458a0e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.9-src @@ -0,0 +1,14 @@ +VERSION='7.3.9' +PYVER='3.7' + +# https://www.pypy.org/checksums.html +hash=70426163b194ee46009986eea6d9426098a3ffb552d9cdbd3dfaa64a47373f49 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.9 b/plugins/python-build/share/python-build/pypy3.8-7.3.9 new file mode 100644 index 0000000000..5b908ae8e8 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.9 @@ -0,0 +1,81 @@ +VERSION='7.3.9' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +aarch64_hash=5e124455e207425e80731dff317f0432fa0aba1f025845ffca813770e2447e32 +linux32_hash=4b261516c6c59078ab0c8bd7207327a1b97057b4ec1714ed5e79a026f9efd492 +linux64_hash=08be25ec82fc5d23b78563eda144923517daba481a90af0ace7a047c9c9a3c34 +osx64_hash=91a5c2c1facd5a4931a8682b7d792f7cf4f2ba25cd2e7e44e982139a6d5e4840 +s390x_hash=c6177a0016c9145c7b99fddb5d74cc2e518ccdb216a6deb51ef6a377510cc930 +win64_hash=05022baaa55db2b60880f2422312d9e4025e1267303ac57f33e8253559d0be88 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.9-src b/plugins/python-build/share/python-build/pypy3.8-7.3.9-src new file mode 100644 index 0000000000..21d2bfe547 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.9-src @@ -0,0 +1,14 @@ +VERSION='7.3.9' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +hash=5b5d9d9256f12a129af8384e2f581bdfab3bc0fbbe3a0a480d9c1d2e95490eb1 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.9 b/plugins/python-build/share/python-build/pypy3.9-7.3.9 new file mode 100644 index 0000000000..ec2df704e3 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.9 @@ -0,0 +1,81 @@ +VERSION='7.3.9' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=2e1ae193d98bc51439642a7618d521ea019f45b8fb226940f7e334c548d2b4b9 +linux32_hash=0de4b9501cf28524cdedcff5052deee9ea4630176a512bdc408edfa30914bae7 +linux64_hash=46818cb3d74b96b34787548343d266e2562b531ddbaf330383ba930ff1930ed5 +osx64_hash=59c8852168b2b1ba1f0211ff043c678760380d2f9faf2f95042a8878554dbc25 +s390x_hash=774dca83bcb4403fb99b3d155e7bd572ef8c52b9fe87a657109f64e75ad71732 +win64_hash=be48ab42f95c402543a7042c999c9433b17e55477c847612c8733a583ca6dff5 + +### end of manual settings - following lines same for every download + +function pypy_pkg_data { + # pypy architecture + local ARCH="${1}" + + local basesrc="pypy${PYVER}-${VERSION}-src" + local basever="pypy${PYVER}-v${VERSION}" + local baseurl="https://downloads.python.org/pypy/${basever}" + + # defaults + local cmd='install_package' # use bz2 + local pkg="${ARCH}" # assume matches + local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local hash='' # undefined + + case "${pkg}" in + 'linux-aarch64' ) + hash="${aarch64_hash}" + url="${baseurl}-aarch64.tar.bz2" # diff url + ;; + 'linux' ) + hash="${linux32_hash}" + pkg='linux32' # package name revised + url="${baseurl}-${pkg}.tar.bz2" # new url + ;; + 'linux64' ) + hash="${linux64_hash}" + ;; + 'osx64' ) + if require_osx_version "10.13"; then + hash="${osx64_hash}" + else + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + fi + ;; + 's390x' ) + hash="${s390x_hash}" + ;; + 'win64' ) + hash="${win64_hash}" + cmd='install_zip' # diff command + url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ;; + * ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." + echo "try '${basesrc}' to build from source." + echo + } >&2 + exit 1 + ;; + esac + + # result - command, package dir, url+hash + echo "${cmd}" "${basever}-${pkg}" "${url}#${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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.9-src b/plugins/python-build/share/python-build/pypy3.9-7.3.9-src new file mode 100644 index 0000000000..1e3c8cdffa --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.9-src @@ -0,0 +1,14 @@ +VERSION='7.3.9' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=2abaa1e9fe1ec0e233c9fbc377a0c8e9a0634080a8f4f30eb6898301f6618c12 + +### 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' From fe4eccf3e7c079cb0852c75cae921b73a4d9eee3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Tue, 19 Apr 2022 18:01:07 +0300 Subject: [PATCH 0408/1324] Add Pyston 2.3.3 (#2316) --- .../python-build/share/python-build/pyston-2.3.3 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 plugins/python-build/share/python-build/pyston-2.3.3 diff --git a/plugins/python-build/share/python-build/pyston-2.3.3 b/plugins/python-build/share/python-build/pyston-2.3.3 new file mode 100644 index 0000000000..ac20542a42 --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.3.3 @@ -0,0 +1,16 @@ +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_2.3.3_portable_amd64" "https://github.com/pyston/pyston/releases/download/pyston_2.3.3/pyston_2.3.3_portable_amd64.tar.gz#7a38e2bd2fed38e6daba4d513bae32af0d5ba6185cadf37cb1af6bcc4de0cb57" "pyston" verify_py38 get_pip + ;; +"linux-aarch64" ) + install_package "pyston_2.3.3_portable_arm64" "https://github.com/pyston/pyston/releases/download/pyston_2.3.3/pyston_2.3.3_portable_arm64.tar.gz#f93f55b59120f576e5755bd8f86fa38361a30ca5389dbadc68450051ee2dccb1" "pyston" verify_py38 get_pip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston 2.3.3 binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 6d20b3b12383084e7f3c919947363dfe7ef33916 Mon Sep 17 00:00:00 2001 From: Illia Volochii Date: Tue, 19 Apr 2022 18:01:22 +0300 Subject: [PATCH 0409/1324] Add CPython 3.11.0a7 (#2315) --- .../python-build/share/python-build/{3.11.0a6 => 3.11.0a7} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a6 => 3.11.0a7} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a6 b/plugins/python-build/share/python-build/3.11.0a7 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a6 rename to plugins/python-build/share/python-build/3.11.0a7 index eedc9d21bd..808417022f 100644 --- a/plugins/python-build/share/python-build/3.11.0a6 +++ b/plugins/python-build/share/python-build/3.11.0a7 @@ -4,7 +4,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0a6" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a6.tar.xz#1c53a2ff75879633e30cac29d2aa6b7a010e355b95f0bf9ac691beccf5f9d12a" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a7" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a7.tar.xz#b7c56dd74c2f472d496b5a8d356bd6ad9ef9b03f26288c3237d3ff698ab03d74" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a6" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a6.tgz#1d57a89c40090740b19fbae6412a54f3f42adf49136235306d00badfd361247a" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0a7" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a7.tgz#6cc20b9b53a8e7a29e0fd56a0d502ff64a5677507fcf2c503decf732a31c513d" standard verify_py311 copy_python_gdb ensurepip fi From 864cd79980197aff22a57cc28027b3ff731def48 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Thu, 28 Apr 2022 22:49:43 -0400 Subject: [PATCH 0410/1324] Add "nogil" Python v3.9.10 (#2342) --- plugins/python-build/share/python-build/nogil-3.9.10 | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 plugins/python-build/share/python-build/nogil-3.9.10 diff --git a/plugins/python-build/share/python-build/nogil-3.9.10 b/plugins/python-build/share/python-build/nogil-3.9.10 new file mode 100644 index 0000000000..1d55cc87eb --- /dev/null +++ b/plugins/python-build/share/python-build/nogil-3.9.10 @@ -0,0 +1,6 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +install_package "nogil-3.9.10" "https://github.com/colesbury/nogil/archive/refs/tags/v3.9.10-nogil.tar.gz#5058c0ec07f0444673b86977c18e786183ca35617d9e6ada2329f7a87a4a0993" standard verify_py39 copy_python_gdb ensurepip From e8f952a5d853a7b86bf45fd5861fc54359b2deac Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 29 Apr 2022 08:54:22 +0300 Subject: [PATCH 0411/1324] Support XCode 13.3 (Apple Cang 13.1.6) in all releases that officially support MacOS 11 (#2344) There are no new (glaring) platform incompatibilities in MacOS 12 so those releases should technically run in it as well --- ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ ...t-internal-configure-error-when-runn.patch | 80 +++++++++++++++++++ 21 files changed, 1680 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0002-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.10/Python-3.7.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.11/Python-3.7.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.8/Python-3.7.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.9/Python-3.7.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.10/Python-3.8.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.11/Python-3.8.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.12/Python-3.8.12/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.4/Python-3.8.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.5/Python-3.8.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.6/Python-3.8.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.7/Python-3.8.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.8/Python-3.8.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.9/Python-3.8.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.0/Python-3.9.0/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.1/Python-3.9.1/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.2/Python-3.9.2/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.4/Python-3.9.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.5/Python-3.9.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.6/Python-3.9.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.7/Python-3.9.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch diff --git a/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0002-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0002-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..9ffe04d154 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0002-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From c8ee4dc57dd995e96ef9af0a04957b61ae1a7ac9 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index cc37185068..f238470c17 100755 +--- a/configure ++++ b/configure +@@ -5226,9 +5226,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 3e6c07c279..dd68777b6a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -717,9 +717,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.29.2.windows.2 + diff --git a/plugins/python-build/share/python-build/patches/3.7.10/Python-3.7.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.7.10/Python-3.7.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..17c9ed82e8 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.10/Python-3.7.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 35ddc7ad61b20a18496ba9410aa31b405e23fe78 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 829dd69bb8..455481bc50 100755 +--- a/configure ++++ b/configure +@@ -5183,9 +5183,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index f1cc8e9bcb..1afcba3307 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -724,9 +724,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.29.2.windows.2 + diff --git a/plugins/python-build/share/python-build/patches/3.7.11/Python-3.7.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.7.11/Python-3.7.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..9019b1ee6f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.11/Python-3.7.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 0c2fd7c1de5121ea636134f131cf7ebada023acf Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 829dd69bb8..455481bc50 100755 +--- a/configure ++++ b/configure +@@ -5183,9 +5183,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index f1cc8e9bcb..1afcba3307 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -724,9 +724,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.29.2.windows.2 + diff --git a/plugins/python-build/share/python-build/patches/3.7.8/Python-3.7.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.7.8/Python-3.7.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..ff0a7d2011 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.8/Python-3.7.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 5b79a7da20953f107657dea5192ed77cc8554ff0 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index c807c98e56..51a7d60f54 100755 +--- a/configure ++++ b/configure +@@ -5183,9 +5183,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 805c0bba08..ede2197cb3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -724,9 +724,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.29.2.windows.2 + diff --git a/plugins/python-build/share/python-build/patches/3.7.9/Python-3.7.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.7.9/Python-3.7.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..48ab96a5b8 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.9/Python-3.7.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 1d6f94126d0af2370ba0e4c7d8befc1c7ecf35d8 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 829dd69bb8..455481bc50 100755 +--- a/configure ++++ b/configure +@@ -5183,9 +5183,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index f1cc8e9bcb..1afcba3307 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -724,9 +724,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.29.2.windows.2 + diff --git a/plugins/python-build/share/python-build/patches/3.8.10/Python-3.8.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.10/Python-3.8.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..44f99d655e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.10/Python-3.8.10/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 8ced1a904558ff9499673083cf13abf03a76b7d0 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 936f3d4596..c091865aff 100755 +--- a/configure ++++ b/configure +@@ -5160,9 +5160,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index e02cc2c656..de83332dd3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -719,9 +719,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.11/Python-3.8.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.11/Python-3.8.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..6cffa25528 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.11/Python-3.8.11/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 7f35b41fa1e13fb9915fd476eaec2b15e2082c4f Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 936f3d4596..c091865aff 100755 +--- a/configure ++++ b/configure +@@ -5160,9 +5160,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index e02cc2c656..de83332dd3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -719,9 +719,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.12/Python-3.8.12/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.12/Python-3.8.12/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..907295988d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.12/Python-3.8.12/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From c4379ecd43dab0d2c836787d82bce4f20eed892b Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 936f3d4596..c091865aff 100755 +--- a/configure ++++ b/configure +@@ -5160,9 +5160,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index e02cc2c656..de83332dd3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -719,9 +719,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.4/Python-3.8.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.4/Python-3.8.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..5a05ffbbe1 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.4/Python-3.8.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 3af555f75a53a82fa074572b24cb6516d3db0645 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 96dcd0dcd5..1fb735bf8b 100755 +--- a/configure ++++ b/configure +@@ -5167,9 +5167,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 18a044629a..6d841d928d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -706,9 +706,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.5/Python-3.8.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.5/Python-3.8.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..832a136c9f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.5/Python-3.8.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 988821dfd8b087368dfee462d73f518ca4cfbfe0 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 96dcd0dcd5..1fb735bf8b 100755 +--- a/configure ++++ b/configure +@@ -5167,9 +5167,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 18a044629a..6d841d928d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -706,9 +706,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.6/Python-3.8.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.6/Python-3.8.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..1402dca2bf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.6/Python-3.8.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 7ec2de6bb20a934424df28c6566e6fc3a5eab6d4 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 96dcd0dcd5..1fb735bf8b 100755 +--- a/configure ++++ b/configure +@@ -5167,9 +5167,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 18a044629a..6d841d928d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -706,9 +706,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.7/Python-3.8.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.7/Python-3.8.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..2987719ae3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.7/Python-3.8.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 97f07c98cac3d095c5c3f5816e4c7b3fe7b9c251 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index c164d68c4e..dcc0795296 100755 +--- a/configure ++++ b/configure +@@ -5167,9 +5167,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index fc082a3cd2..5c9bee2850 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -706,9 +706,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.8/Python-3.8.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.8/Python-3.8.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..4d0f42172c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.8/Python-3.8.8/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From cb51d8b90c5668e77b9ed8ded562eeaabf518f5c Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index c164d68c4e..dcc0795296 100755 +--- a/configure ++++ b/configure +@@ -5167,9 +5167,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index fc082a3cd2..5c9bee2850 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -706,9 +706,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.8.9/Python-3.8.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.8.9/Python-3.8.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..db48ed855f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.9/Python-3.8.9/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 9d066808637164f1386ece0d3b26b8e4262c4dfd Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index c737256c15..97a371c6da 100755 +--- a/configure ++++ b/configure +@@ -5155,9 +5155,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 040ddfc791..0969bb5b0c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -713,9 +713,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.0/Python-3.9.0/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.0/Python-3.9.0/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..e9b491b13b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.0/Python-3.9.0/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From b8f6adaf38973076542c54e5d9a4fd7c6665c8f2 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 9e6fd46583..80c3a6589a 100755 +--- a/configure ++++ b/configure +@@ -5193,9 +5193,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index d60f05251a..110318545d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -718,9 +718,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.1/Python-3.9.1/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.1/Python-3.9.1/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..20e23c8d9f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.1/Python-3.9.1/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 8ada29fb655f9803bab4777308c77db8c1f74735 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 2d379feb4b..e36d8d523d 100755 +--- a/configure ++++ b/configure +@@ -5193,9 +5193,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index c968d149c2..a16e475bc2 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -718,9 +718,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.2/Python-3.9.2/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.2/Python-3.9.2/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..51a4eef091 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.2/Python-3.9.2/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 9e317124ae4d1f133c18485e83b952360741519d Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 1252335472..0da9fa285e 100755 +--- a/configure ++++ b/configure +@@ -5193,9 +5193,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 972287a9c4..76252ad36c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -718,9 +718,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.4/Python-3.9.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.4/Python-3.9.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..89f5705a08 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.4/Python-3.9.4/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From d93aaf050384705ac744a4e6cbbab1408e770c0a Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index c7a7291fea..708c9215e4 100755 +--- a/configure ++++ b/configure +@@ -5193,9 +5193,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 45e0af4493..559a40eda9 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -725,9 +725,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.5/Python-3.9.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.5/Python-3.9.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..c0238e80ab --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.5/Python-3.9.5/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 16a65fb399eb8d1a5cfecd597e579a4402b2e4c8 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index 8dcdbf1989..ac03aff210 100755 +--- a/configure ++++ b/configure +@@ -5196,9 +5196,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index b1e4c6ce19..94102dd324 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -727,9 +727,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.6/Python-3.9.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.6/Python-3.9.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..fd2b603d94 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.6/Python-3.9.6/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 9b7f2f9ce024d2cceb90f9a9d939b37090c525e2 Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index ffa61c1dc5..18597d4de8 100755 +--- a/configure ++++ b/configure +@@ -5196,9 +5196,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 8fe5fa5742..577ce9040f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -727,9 +727,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + diff --git a/plugins/python-build/share/python-build/patches/3.9.7/Python-3.9.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.9.7/Python-3.9.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..439d0e33af --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.7/Python-3.9.7/0001-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,80 @@ +From 785de1ab8b4ab8b89d0e62ffd7521b5b2636923a Mon Sep 17 00:00:00 2001 +From: David Bohman +Date: Tue, 12 Oct 2021 17:10:26 -0700 +Subject: [PATCH] bpo-45405: Prevent ``internal configure error`` when running + ``configure`` with recent versions of non-Apple clang. (#28845) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. + +Co-authored-by: Ned Deily +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..a2dc5bcc32 +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of non-Apple clang. Patch by David Bohman. +diff --git a/configure b/configure +index ffa61c1dc5..18597d4de8 100755 +--- a/configure ++++ b/configure +@@ -5196,9 +5196,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index 8fe5fa5742..577ce9040f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -727,9 +727,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.36.0 + From b6b761f9f102f539a70f1f2dfdb29e201851be9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Fri, 29 Apr 2022 19:30:31 +0200 Subject: [PATCH 0412/1324] Add GraalPython 22.1.0 (#2346) --- .../share/python-build/graalpython-22.1.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-22.1.0 diff --git a/plugins/python-build/share/python-build/graalpython-22.1.0 b/plugins/python-build/share/python-build/graalpython-22.1.0 new file mode 100644 index 0000000000..d3d938be35 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-22.1.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2022, 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='22.1.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="06862993573b64bd64c802aace9135192a4ba28a15d8260c42c5de632ad616bc" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="88b22ea4a5cb8345b680d15cc385dff7a8ab858fdf0e182c79c6c3b74755de6c" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From d5b12f826d415fb840fb88f066a4593cbb14dfb3 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 1 May 2022 05:49:09 +0300 Subject: [PATCH 0413/1324] Make PYENV_DEBUG imply -v for `pyenv install` (#2347) Trace logs without `-v` are usually useless due to missing the build part. So this leaves one less thing for users to worry about when submitting error reports. Mentioning `-v` in the issue template should stay for some time since users report on old versions, too. --- plugins/python-build/bin/pyenv-install | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 07d5555f31..b966ff881f 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -73,6 +73,8 @@ unset VERBOSE unset HAS_PATCH unset DEBUG +[ -n "$PYENV_DEBUG" ] && VERBOSE="-v" + parse_options "$@" for option in "${OPTIONS[@]}"; do case "$option" in From 32a86a84c014b11890b72c1b5a3f74d483700701 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 26 Apr 2022 15:23:30 +0300 Subject: [PATCH 0414/1324] Show output for assert_line() and refure_line() Required for diagnostics --- test/test_helper.bash | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/test_helper.bash b/test/test_helper.bash index a0fb24cbb1..4e32df30e2 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -84,7 +84,8 @@ assert_line() { for line in "${lines[@]}"; do if [ "$line" = "$1" ]; then return 0; fi done - flunk "expected line \`$1'" + flunk "expected line \`$1'" $'\n'\ + "output: $output" fi } @@ -98,7 +99,8 @@ refute_line() { local line for line in "${lines[@]}"; do if [ "$line" = "$1" ]; then - flunk "expected to not find line \`$line'" + flunk "expected to not find line \`$line'" $'\n'\ + "output: $output" fi done fi From 8439f8e18714c2aec0399e9cea022467dc4511ff Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 4 Apr 2022 01:08:49 +0300 Subject: [PATCH 0415/1324] Simplify init scheme; update & clarify the README Now the setup is to add to both rc and profile: 1) set PYENV_ROOT (can do it unconditionally -- since if you change it, you need to update all places anyway since any of them can be run first) 2) Add `pyenv` to PATH if not already there 3) eval "$(pyenv init -)" Not a breaking change, old setup will continue to work. --- .github/workflows/pyenv_tests.yml | 7 +- README.md | 654 +++++++++++++++--------------- libexec/pyenv-init | 51 ++- test/init.bats | 37 +- 4 files changed, 401 insertions(+), 348 deletions(-) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 5eb275b862..7963922c46 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -24,7 +24,12 @@ jobs: # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git # https://github.com/pyenv/pyenv#installation - run: | - if test "$RUNNER_OS" == "macOS"; then brew install coreutils; fi + if test "$RUNNER_OS" == "macOS"; then + brew install coreutils fish + elif [[ $(lsb_release -sr | awk -F. '{print $1}') -ge 20 ]]; then + # Ubuntu 18 has fish 2 which lacks many features that facilitate testing + sudo apt install fish -yq + fi - run: pwd - env: PYENV_ROOT: /home/runner/work/pyenv/pyenv diff --git a/README.md b/README.md index 4edfc617e1..47117fcc86 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and ![Terminal output example](/terminal_output.png) -### what pyenv _does..._ +### What pyenv _does..._ * Lets you **change the global Python version** on a per-user basis. * Provides support for **per-project Python versions**. @@ -27,12 +27,11 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * **Depend on Python itself.** pyenv was made from pure shell scripts. There is no bootstrap problem of Python. * **Need to be loaded into your shell.** Instead, pyenv's shim - approach works by adding a directory to your `$PATH`. + approach works by adding a directory to your `PATH`. * **Manage virtualenv.** Of course, you can create [virtualenv](https://pypi.python.org/pypi/virtualenv) yourself, or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) to automate the process. - ---- @@ -41,19 +40,27 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * **[How It Works](#how-it-works)** * [Understanding PATH](#understanding-path) * [Understanding Shims](#understanding-shims) - * [Choosing the Python Version](#choosing-the-python-version) - * [Locating the Python Installation](#locating-the-python-installation) + * [Understanding Python version selection](#understanding-python-version-selection) + * [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations) * **[Installation](#installation)** - * [Prerequisites](#prerequisites) - * [Homebrew in macOS](#homebrew-in-macos) - * [Windows](#windows) - * [Automatic installer](#automatic-installer) - * [Basic GitHub Checkout](#basic-github-checkout) - * [Upgrading](#upgrading) - * [Homebrew on macOS](#homebrew-on-macos) - * [Advanced Configuration](#advanced-configuration) - * [Uninstalling Python Versions](#uninstalling-python-versions) -* **[Command Reference](#command-reference)** + * [Getting Pyenv](#getting-pyenv) + * [Homebrew in macOS](#homebrew-in-macos) + * [Windows](#windows) + * [Automatic installer](#automatic-installer) + * [Basic GitHub Checkout](#basic-github-checkout) + * [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv) + * [Restart your shell](#restart-your-shell) + * [Install Python build dependencies](#install-python-build-dependencies) +* **[Usage](#usage)** + * [Install additional Python versions](#install-additional-python-versions) + * [Switch between Python versions](#switch-between-python-versions) + * [Uninstall Python versions](#uninstall-python-versions) + * [Other operations](#other-operations) +* [Upgrading](#upgrading) +* [Uninstalling pyenv](#uninstalling-pyenv) +* [Advanced Configuration](#advanced-configuration) + * [Using Pyenv without shims](#using-pyenv-without-shims) + * [Environment variables](#environment-variables) * **[Development](#development)** * [Version History](#version-history) * [License](#license) @@ -69,6 +76,7 @@ executables injected into your `PATH`, determines which Python version has been specified by your application, and passes your commands along to the correct Python installation. + ### Understanding PATH When you run a command like `python` or `pip`, your operating system @@ -84,6 +92,7 @@ precedence over another one at the end. In this example, the `/usr/local/bin` directory will be searched first, then `/usr/bin`, then `/bin`. + ### Understanding Shims pyenv works by inserting a directory of _shims_ at the front of your @@ -104,7 +113,8 @@ operating system will do the following: * Run the shim named `pip`, which in turn passes the command along to pyenv -### Choosing the Python Version + +### Understanding Python version selection When you execute a shim, pyenv determines which Python version to use by reading it from the following sources, in this order: @@ -122,25 +132,45 @@ reading it from the following sources, in this order: directory, until reaching the root of your filesystem. 4. The global `$(pyenv root)/version` file. You can modify this file using - the [`pyenv global`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-global) command. If the global version - file is not present, pyenv assumes you want to use the "system" - Python. (In other words, whatever version would run if pyenv weren't in your - `PATH`.) + the [`pyenv global`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-global) command. + If the global version file is not present, pyenv assumes you want to use the "system" + Python (see below). + +A special version name "`system`" means to use whatever Python is found on `PATH` +after the shims `PATH` entry (in other words, whatever would be run if Pyenv +shims weren't on `PATH`). Note that Pyenv considers those installations outside +its control and does not attempt to inspect or distinguish them in any way. +So e.g. if you are on MacOS and have OS-bundled Python 3.8.9 and Homebrew-installed +Python 3.9.12 and 3.10.2 -- for Pyenv, this is still a single "`system`" version, +and whichever of those is first on `PATH` under the executable name you +specified will be run. **NOTE:** You can activate multiple versions at the same time, including multiple 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 -your path to first use your `system` Python and Python3 (set to 2.7.9 and 3.4.2 -in this example), but also have Python 3.3.6, 3.2, and 2.5 available on your -`PATH`, one would first `pyenv install` the missing versions, then set `pyenv -global system 3.3.6 3.2 2.5`. At this point, one should be able to find the full -executable path to each of these using `pyenv which`, e.g. `pyenv which python2.5` -(should display `$(pyenv root)/versions/2.5/bin/python2.5`), or `pyenv which -python3.4` (should display path to system Python3). You can also specify multiple -versions in a `.python-version` file, separated by newlines. -Lines starting with a `#` are ignored. - -### Locating the Python Installation +Python2 and Python3, and is required with tools like `tox`. For example, to instruct +Pyenv to first use your system Python and Python3 (which are e.g. 2.7.9 and 3.4.2) +but also have Python 3.3.6, 3.2.1, and 2.5.2 available, you first `pyenv install` +the missing versions, then set `pyenv global system 3.3.6 3.2.1 2.5.2`. +Then you'll be able to invoke any of those versions with an appropriate `pythonX` or +`pythonX.Y` name. +You can also specify multiple versions in a `.python-version` file by hand, +separated by newlines. Lines starting with a `#` are ignored. + +[`pyenv which `](COMMANDS.md#pyenv-which) displays which real executable would be +run when you invoke `` via a shim. +E.g. if you have 3.3.6, 3.2.1 and 2.5.2 installed of which 3.3.6 and 2.5.2 are selected +and your system Python is 3.2.5, +`pyenv which python2.5` should display `$(pyenv root)/versions/2.5.2/bin/python2.5`, +`pyenv which python3` -- `$(pyenv root)/versions/3.3.6/bin/python3` and +`pyenv which python3.2` -- path to your system Python due to the fall-through (see below). + +Shims also fall through to anything further on `PATH` if the corresponding executable is +not present in any of the selected Python installations. +This allows you to use any programs installed elsewhere on the system as long as +they are not shadowed by a selected Python installation. + + +### Locating Pyenv-provided Python installations Once pyenv has determined which version of Python your application has specified, it passes the command along to the corresponding Python @@ -158,282 +188,262 @@ For example, you might have these versions installed: As far as Pyenv is concerned, version names are simply directories under `$(pyenv root)/versions`. -### Managing Virtual Environments - -There is a pyenv plugin named [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) which comes with various features to help pyenv users to manage virtual environments created by virtualenv or Anaconda. -Because the `activate` script of those virtual environments are relying on mutating `$PATH` variable of user's interactive shell, it will intercept pyenv's shim style command execution hooks. -We'd recommend to install pyenv-virtualenv as well if you have some plan to play with those virtual environments. - - ---- ## Installation -### Prerequisites - -For pyenv to install python correctly you should [**install the Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment). - -### Homebrew in macOS +### Getting Pyenv +#### Homebrew in macOS 1. Consider installing with [Homebrew](https://brew.sh): ```sh brew update brew install pyenv ``` - 2. Then follow the rest of the post-installation steps under [Basic GitHub Checkout](https://github.com/pyenv/pyenv#basic-github-checkout), starting with #​2 ("Configure your shell's environment for Pyenv"). + 2. Then follow the rest of the post-installation steps, starting with + [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv). 3. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_ - - If you're going to build Homebrew formulae from source that link against `libpython` + + If you're going to build Homebrew formulae from source that link against Python like Tkinter or NumPy _(This is only generally the case if you are a developer of such a formula, - or if you have an EOL version of MacOS for which prebuilt bottles are no longer available - and are using such a formula)._ - + or if you have an EOL version of MacOS for which prebuilt bottles are no longer provided + and you are using such a formula)._ + To avoid them accidentally linking against a Pyenv-provided Python, add the following line into your interactive shell's configuration: - + * Bash/Zsh: - + ~~~bash alias brew='env PATH="${PATH//$(pyenv root)\/shims:/}" brew' ~~~ - + * Fish: ~~~fish alias brew="env PATH=(string replace (pyenv root)/shims '' \"\$PATH\") brew" ~~~ -### Windows + +#### Windows Pyenv does not officially support Windows and does not work in Windows outside the Windows Subsystem for Linux. Moreover, even there, the Pythons it installs are not native Windows versions -but rather Linux versions run through a compatibility layer -- +but rather Linux versions running in a virtual machine -- so you won't get Windows-specific functionality. If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork -- which does install native Windows Python versions. -### Automatic installer +#### Automatic installer Visit our other project: https://github.com/pyenv/pyenv-installer -### Basic GitHub Checkout +#### Basic GitHub Checkout This will get you going with the latest version of Pyenv and make it easy to fork and contribute any changes back upstream. -1. **Check out Pyenv where you want it installed.** +* **Check out Pyenv where you want it installed.** A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else): - git clone https://github.com/pyenv/pyenv.git ~/.pyenv + git clone https://github.com/pyenv/pyenv.git ~/.pyenv - Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't +* Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't worry if it fails; Pyenv will still work normally: - cd ~/.pyenv && src/configure && make -C src - -2. **Configure your shell's environment for Pyenv** - - **Note:** The below instructions for specific shells are designed for common shell setups; - they also install shell functions into interactive shells only. - If you have an uncommon setup and/or needs and they don't work for you, - use the [Advanced Configuration](#advanced-configuration) - section below to figure out what you need to do in your specific case. - - **General MacOS note:** - [Make sure that your terminal app is configured to run the shell as a login shell](https://github.com/pyenv/pyenv/wiki/MacOS-login-shell) - (especially if you're using an alternative terminal app and/or shell). - The configuration samples for MacOS are written under this assumption and won't work otherwise. - - - For **Bash**: - - - **If your `~/.profile` sources `~/.bashrc` (Debian, Ubuntu, Mint):** - - ~~~bash - # the sed invocation inserts the lines at the start of the file - # after any initial comment lines - sed -Ei -e '/^([^#]|$)/ {a \ - export PYENV_ROOT="$HOME/.pyenv" - a \ - export PATH="$PYENV_ROOT/bin:$PATH" - a \ - ' -e ':a' -e '$!{n;ba};}' ~/.profile - echo 'eval "$(pyenv init --path)"' >>~/.profile - - echo 'eval "$(pyenv init -)"' >> ~/.bashrc - ~~~ - - - **If your `~/.bash_profile` sources `~/.bashrc` (Red Hat, Fedora, CentOS):** - - ~~~ bash - sed -Ei -e '/^([^#]|$)/ {a \ - export PYENV_ROOT="$HOME/.pyenv" - a \ - export PATH="$PYENV_ROOT/bin:$PATH" - a \ - ' -e ':a' -e '$!{n;ba};}' ~/.bash_profile - echo 'eval "$(pyenv init --path)"' >> ~/.bash_profile - - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init --path)"' >> ~/.profile - - echo 'eval "$(pyenv init -)"' >> ~/.bashrc - ~~~ - - - **If you have no `~/.bash_profile` and your `/etc/profile` sources `~/.bashrc` (SUSE):** - - ~~~bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init --path)"' >> ~/.profile - - echo 'if command -v pyenv >/dev/null; then eval "$(pyenv init -)"; fi' >> ~/.bashrc - ~~~ - - - **Otherwise if you have no stock `~/.profile` or `~/.bash_profile` (MacOS):** - - ~~~bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init --path)"' >> ~/.profile - echo 'if [ -n "$PS1" -a -n "$BASH_VERSION" ]; then source ~/.bashrc; fi' >> ~/.profile - - echo 'eval "$(pyenv init -)"' >> ~/.bashrc - ~~~ - - In MacOS, make sure that your terminal app runs the shell as a login shell. - - - **Temporary environments (CI, Docker, batch jobs):** - - In CI/build environments, paths and the environment are usually already set up for you - in one of the above ways. - You may only need to install Pyenv as a shell function into the (noninteractive) shell - that runs the batch script, and only if you need subcommands that require `pyenv` - to be a shell function (e.g. `shell` and Pyenv-Virtualenv's `activate`). - - ~~~bash - eval "$(pyenv init -)" - ~~~ - - If you are installing Pyenv yourself as part of the batch job, - after installing the files, run the following in the job's shell - to be able to use it. - - ~~~bash - export PYENV_ROOT="$HOME/.pyenv" - export PATH="$PYENV_ROOT/bin:$PATH" # if `pyenv` is not already on PATH - eval "$(pyenv init --path)" - eval "$(pyenv init -)" - ~~~ - - - **General Bash warning**: There are some systems where the `BASH_ENV` variable is configured - to point to `.bashrc`. On such systems, you should almost certainly put the - `eval "$(pyenv init -)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you - may observe strange behaviour, such as `pyenv` getting into an infinite loop. - See [#264](https://github.com/pyenv/pyenv/issues/264) for details. - - - - For **Zsh**: - - - **MacOS, if Pyenv is installed with Homebrew:** - - ~~~ zsh - echo 'eval "$(pyenv init --path)"' >> ~/.zprofile - - echo 'eval "$(pyenv init -)"' >> ~/.zshrc - ~~~ - - Make sure that your terminal app runs the shell as a login shell. - - - - **MacOS, if Pyenv is installed with a Git checkout:** - - ~~~ zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile - echo 'eval "$(pyenv init --path)"' >> ~/.zprofile - - echo 'eval "$(pyenv init -)"' >> ~/.zshrc - ~~~ - - Make sure that your terminal app runs the shell as a login shell. - - - **Other OSes:** - - ~~~ zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zprofile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zprofile - echo 'eval "$(pyenv init --path)"' >> ~/.zprofile - - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init --path)"' >> ~/.profile - - echo 'eval "$(pyenv init -)"' >> ~/.zshrc - ~~~ - - - For **Fish shell**: - - Execute this interactively: - - ~~~ fish - set -Ux PYENV_ROOT $HOME/.pyenv - set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths - ~~~ + cd ~/.pyenv && src/configure && make -C src - And add this to `~/.config/fish/config.fish`: - - ~~~ fish - status is-login; and pyenv init --path | source - status is-interactive; and pyenv init - | source - ~~~ - If Fish is not your login shell, also follow the Bash/Zsh instructions to add to `~/.profile`. +### Set up your shell environment for Pyenv - **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. +**Upgrade note:** The startup logic and instructions have been updated for simplicity in 2.3.0. +The previous, more complicated configuration scheme for 2.0.0-2.2.5 still works. +* Define environment variable `PYENV_ROOT` to point to the path where + Pyenv will store its data. `$HOME/.pyenv` is the default. + If you installed Pyenv via Git checkout, we recommend + to set it to the same location as where you cloned it. +* Add the `pyenv` executable to your `PATH` if it's not already there +* run `eval "$(pyenv init -)"` to install `pyenv` into your shell as a shell function, enable shims and autocompletion + * You may run `eval "$(pyenv init --path)"` instead to just enable shims, without shell integration -4. **Restart your login session for the changes to profile files to take effect.** - E.g. if you're in a GUI session, you need to fully log out and log back in. - - In MacOS, restarting terminal windows is enough (because MacOS runs shells - in them as login shells by default). +The below setup should work for the vast majority of users for commmon use cases. +See [Advanvced configuration](#advanced-configuration) for details and more configuration options. -5. [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version. + - For **bash**: -6. **Install Python versions into `$(pyenv root)/versions`.** - For example, to download and install Python 2.7.8, run: - ```sh - pyenv install 2.7.8 - ``` - **NOTE:** If you need to pass a `configure` option to a build, please use the - ```CONFIGURE_OPTS``` environment variable. + Stock Bash startup files vary widely between distibutions in which of them source + which, under what circumstances, in what order and what additional configuration they perform. + As such, the most reliable way to get Pyenv in all environments is to append Pyenv + configuration commands to both `.bashrc` (for interactive shells) + and the profile file that Bash would use (for login shells). + + First, add the commands to `~/.bashrc`: + + ~~~ bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc + echo 'eval "$(pyenv init -)"' >> ~/.bashrc + ~~~ + + Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. + If you have none of these, add them to `~/.profile`. + + * to add to `~/.profile`: + ~~~ bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init -)"' >> ~/.profile + ~~~ + + * to add to `~/.bash_profile`: + ~~~ bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile + echo 'eval "$(pyenv init -)"' >> ~/.bash_profile + ~~~ + + - For **Zsh**: + ~~~ zsh + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc + echo 'eval "$(pyenv init -)"' >> ~/.zshrc + ~~~ + + If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. + + - For **Fish shell**: + + Execute this interactively: + + ~~~ fish + set -Ux PYENV_ROOT $HOME/.pyenv + set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths + ~~~ + + And add this to `~/.config/fish/config.fish`: + + ~~~ fish + pyenv init - | source + ~~~ + + **Bash warning**: There are some systems where the `BASH_ENV` variable is configured + to point to `.bashrc`. On such systems, you should almost certainly put the + `eval "$(pyenv init -)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you + may observe strange behaviour, such as `pyenv` getting into an infinite loop. + See [#264](https://github.com/pyenv/pyenv/issues/264) for details. + + **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. + + +### Restart your shell + + for the `PATH` changes to take effect. + + ```sh + exec "$SHELL" + ``` + +### Install Python build dependencies + + [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) + before attempting to install a new Python version. + + You can now begin using Pyenv. + +---- + + +## Usage + +### Install additional Python versions + +To install additonal Python versions, use [`pyenv install`](COMMANDS.md#pyenv-install). + +For example, to download and install Python 3.10.4, run: + +```sh +pyenv install 3.10.4 +``` + +**NOTE:** Most Pyenv-provided Python releases are source releases and are built +from source as part of installation (that's why you need Python build dependencies preinstalled). +You can pass options to Python's `configure` and compiler flags to customize the build, +see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables) +for details. + +**NOTE:** If you want to use proxy for download, please set the `http_proxy` and `https_proxy` +environment variables. - **NOTE:** If you want to use proxy to download, please set the `http_proxy` and `https_proxy` - environment variables. +**NOTE:** If you are having trouble installing a Python version, +please visit the wiki page about +[Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). - **NOTE:** If you are having trouble installing a Python version, - please visit the wiki page about - [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). +### Switch between Python versions -#### Upgrading +To select a Pyenv-installed Python as the version to use, run one +of the following commands: + +* [`pyenv shell `](COMMANDS.md#pyenv-shell) -- select just for current shell session +* [`pyenv local `](COMMANDS.md#pyenv-local) -- automatically select whenever you are in the current directory (or its subdirectories) +* [`pyenv global `](COMMANDS.md#pyenv-shell) -- select globally for your user account + +E.g. to select the above-mentioned newly-installed Python 3.10.4 as your preferred version to use: + +~~~bash +pyenv global 3.10.4 +~~~ + +Now whenever you invoke `python`, `pip` etc., an executable from the Pyenv-provided +3.10.4 installation will be run instead of the system Python. + +Using "`system`" as a version name would reset the selection to your system-provided Python. + +See [Understanding shims](#understanding-shims) and +[Understanding Python version selection](#understanding-python-version-selection) +for more details on how the selection works and more information on its usage. + + +### Uninstall Python versions + +As time goes on, you will accumulate Python versions in your +`$(pyenv root)/versions` directory. + +To remove old Python versions, use [`pyenv uninstall `](COMMANDS.md#pyenv-uninstall). + +Alternatively, you can simply `rm -rf` the directory of the version you want +to remove. You can find the directory of a particular Python version +with the `pyenv prefix` command, e.g. `pyenv prefix 2.6.8`. +Note however that plugins may run additional operations on uninstall +which you would need to do by hand as well. E.g. Pyenv-Virtualenv also +removes any virtual environments linked to the version being uninstalled. + + +### Other operations + +Run `pyenv commands` to get a list of all available subcommands. +Run a subcommand with `--help` to get help on it, or see the [Commands Reference](COMMANDS.md). + +Note that Pyenv plugins that you install may add their own subcommands. + + +## Upgrading If you've installed Pyenv using Homebrew, upgrade using: ```sh brew upgrade pyenv ``` -If you've installed Pyenv using the instructions above, you can +If you've installed Pyenv using Pyenv-installer or Git checkout, you can upgrade your installation at any time using Git. To upgrade to the latest development version of pyenv, use `git pull`: @@ -452,7 +462,7 @@ git tag git checkout v0.1.0 ``` -### Uninstalling pyenv +## Uninstalling pyenv The simplicity of pyenv makes it easy to temporarily disable it, or uninstall from the system. @@ -462,124 +472,113 @@ uninstall from the system. remove Pyenv shims directory from `PATH`, and future invocations like `python` will execute the system Python version, as it was before Pyenv. - `pyenv` will still be accessible on the command line, but your Python - apps won't be affected by version switching. + `pyenv` will still be accessible on the command line, but your Python + apps won't be affected by version switching. + +2. To completely **uninstall** Pyenv, remove _all_ Pyenv configuration lines + from your shell startup configuration, and then remove + its root directory. This will **delete all Python versions** that were + installed under the `` $(pyenv root)/versions/ `` directory: -2. To completely **uninstall** Pyenv, remove _all_ configuration lines for it - from your shell startup configuration, and then remove - its root directory. This will **delete all Python versions** that were - installed under `` $(pyenv root)/versions/ `` directory: - - ```sh - rm -rf $(pyenv root) - ``` + ```sh + rm -rf $(pyenv root) + ``` - If you've installed Pyenv using a package manager, as a final step, - perform the Pyenv package removal. For instance, for Homebrew: + If you've installed Pyenv using a package manager, as a final step, + perform the Pyenv package removal. For instance, for Homebrew: - ``` - brew uninstall pyenv - ``` + ``` + brew uninstall pyenv + ``` -### Advanced Configuration +## Advanced Configuration Skip this section unless you must know what every line in your shell profile is doing. +Also see the [Environment variables](#environment-variables) section +for the environment variables that control Pyenv's behavior. + `pyenv init` is the only command that crosses the line of loading extra commands into your shell. Coming from RVM, some of you might be -opposed to this idea. +opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does: -Also see the [Environment variables](#environment-variables) section -for the environment variables that control Pyenv's behavior. +1. **Sets up the shims path.** This is what allows Pyenv to intercept + and redirect invocations of `python`, `pip` etc. transparently. + It prepends `$(pyenv root)/shims` to your `$PATH`. + It also deletes any other instances of `$(pyenv root)/shims` on `PATH` + which allows to invoke `eval "$(pyenv init -)"` multiple times without + getting duplicate `PATH` entries. -* `eval "$(pyenv init --path)"`: - - 1. **Sets up your shims path.** This is the only requirement for pyenv to - function properly. You can do this by hand by prepending - `$(pyenv root)/shims` to your `$PATH`. - - `eval "$(pyenv init --path)"` is supposed to be run in your session's login - shell startup script -- so that all processes in the session get access to - Pyenv's functionality and it only runs once, - avoiding breaking `PATH` in nested shells - (e.g. shells started from editors/IDEs). - - In Linux, GUI managers typically act as a `sh` login shell, running - `/etc/profile` and `~/.profile` at their startup. MacOS' GUI doesn't do that, - so its terminal emulator apps run their shells as login shells by default - to compensate. - - -* `eval "$(pyenv init -)"`: - - 1. **Installs autocompletion.** This is entirely optional but pretty - useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that - up. There is also a `$(pyenv root)/completions/pyenv.zsh` for Zsh - users. - - 2. **Rehashes shims.** From time to time you'll need to rebuild your - shim files. Doing this on init makes sure everything is up to - date. You can always run `pyenv rehash` manually. - - 3. **Installs `pyenv` into the current shell as a shell function.** - This bit is also optional, but allows - pyenv and plugins to change variables in your current shell, making - commands like `pyenv shell` possible. The sh dispatcher doesn't do - anything crazy like override `cd` or hack your shell prompt, but if - for some reason you need `pyenv` to be a real script rather than a - shell function, you can safely skip it. - - `eval "$(pyenv init -)"` is supposed to run at any interactive shell's - startup (including nested shells) so that you get completion and - convenience shell functions. +2. **Installs autocompletion.** This is entirely optional but pretty + useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that + up. There are also completions for Zsh and Fish. -To see exactly what happens under the hood for yourself, run `pyenv init -` -or `pyenv init --path`. +3. **Rehashes shims.** From time to time you'll need to rebuild your + shim files. Doing this on init makes sure everything is up to + date. You can always run `pyenv rehash` manually. -If you don't want to use `pyenv init` and shims, you can still benefit -from pyenv's ability to install Python versions for you. Just run -`pyenv install` and you will find versions installed in -`$(pyenv root)/versions`, which you can manually execute or symlink -as required. +4. **Installs `pyenv` into the current shell as a shell function.** + This bit is also optional, but allows + pyenv and plugins to change variables in your current shell. + This is required for some commands like `pyenv shell` to work. + The sh dispatcher doesn't do + anything crazy like override `cd` or hack your shell prompt, but if + for some reason you need `pyenv` to be a real script rather than a + shell function, you can safely skip it. -### Uninstalling Python Versions +`eval "$(pyenv init --path)"` only does item 1. -As time goes on, you will accumulate Python versions in your -`$(pyenv root)/versions` directory. +To see exactly what happens under the hood for yourself, run `pyenv init -` +or `pyenv init --path`. -To remove old Python versions, `pyenv uninstall` command to automate -the removal process. +`eval "$(pyenv init -)"` is supposed to run at any interactive shell's +startup (including nested shells -- e.g. those invoked from editors) +so that you get completion and convenience shell functions. -Alternatively, simply `rm -rf` the directory of the version you want -to remove. You can find the directory of a particular Python version -with the `pyenv prefix` command, e.g. `pyenv prefix 2.6.8`. +`eval "$(pyenv init --path)"` can be used instead of `eval "$(pyenv init -)"` +to just enable shims, without shell integration. It can also be used to bump shims +to the front of `PATH` after some other logic has prepended stuff to `PATH` +that may shadow Pyenv's shims. +* In particular, in Debian-based distributions, the stock `~/.profile` + prepends per-user `bin` directories to `PATH` after having sourced `~/.bashrc`. + This necessitates appending a `pyenv init` call to `~/.profile` as well as `~/.bashrc` + in these distributions because the system's Pip places executables for + modules installed by a non-root user into those per-user `bin` directories. ----- +### Using Pyenv without shims -## Command Reference +If you don't want to use `pyenv init` and shims, you can still benefit +from pyenv's ability to install Python versions for you. Just run +`pyenv install` and you will find versions installed in +`$(pyenv root)/versions`. -See [COMMANDS.md](COMMANDS.md). +You can manually execute or symlink them as required, +or you can use [`pyenv exec `](COMMANDS.md#pyenv-exec) +whenever you want `` to be affected by Pyenv's version selection +as currently configured. +`pyenv exec` works by prepending `$(pyenv root)/versions//bin` +to `PATH` in the ``'s environment, the same as what e.g. RVM does. ----- -## Environment variables +### Environment variables -You can affect how pyenv operates with the following settings: +You can affect how Pyenv operates with the following settings: name | default | description -----|---------|------------ -`PYENV_VERSION` | | Specifies the Python version to be used.
Also see [`pyenv shell`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-shell) -`PYENV_ROOT` | `~/.pyenv` | Defines the directory under which Python versions and shims reside.
Also see `pyenv root` +`PYENV_VERSION` | | Specifies the Python version to be used.
Also see [`pyenv shell`]COMMANDS.md#pyenv-shell) +`PYENV_ROOT` | `~/.pyenv` | Defines the directory under which Python versions and shims reside.
Also see [`pyenv root`](COMMANDS.md#pyenv-root) `PYENV_DEBUG` | | Outputs debug information.
Also as: `pyenv --debug ` `PYENV_HOOK_PATH` | [_see wiki_][hooks] | Colon-separated list of paths searched for pyenv hooks. `PYENV_DIR` | `$PWD` | Directory to start searching for `.python-version` files. -`PYTHON_BUILD_ARIA2_OPTS` | | Used to pass additional parameters to [`aria2`](https://aria2.github.io/).
If the `aria2c` binary is available on PATH, pyenv uses `aria2c` instead of `curl` or `wget` to download the Python Source code. If you have an unstable internet connection, you can use this variable to instruct `aria2` to accelerate the download.
In most cases, you will only need to use `-x 10 -k 1M` as value to `PYTHON_BUILD_ARIA2_OPTS` environment variable +`PYTHON_BUILD_ARIA2_OPTS` | | Used to pass additional parameters to [`aria2`](https://aria2.github.io/).
If the `aria2c` binary is available on `PATH`, pyenv uses `aria2c` instead of `curl` or `wget` to download the Python Source code. If you have an unstable internet connection, you can use this variable to instruct `aria2` to accelerate the download.
In most cases, you will only need to use `-x 10 -k 1M` as value to `PYTHON_BUILD_ARIA2_OPTS` environment variable +---- ## Development @@ -597,9 +596,6 @@ Please feel free to submit pull requests and file bugs on the [issue tracker](https://github.com/pyenv/pyenv/issues). - [pyenv-virtualenv]: https://github.com/pyenv/pyenv-virtualenv#readme - [hooks]: https://github.com/pyenv/pyenv/wiki/Authoring-plugins#pyenv-hooks - ### Version History See [CHANGELOG.md](CHANGELOG.md). @@ -607,3 +603,7 @@ See [CHANGELOG.md](CHANGELOG.md). ### License [The MIT License](LICENSE) + + +[pyenv-virtualenv]: https://github.com/pyenv/pyenv-virtualenv#readme +[hooks]: https://github.com/pyenv/pyenv/wiki/Authoring-plugins#pyenv-hooks diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 840c31e043..160931fd26 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -61,6 +61,7 @@ function main() { ;; "print") init_dirs + print_path print_env print_completion print_shell_function @@ -74,7 +75,12 @@ function main() { function help_() { case "$shell" in bash ) - profile='~/.bash_profile' + if [ -e '~/.bash_profile' ]; then + profile='~/.bash_profile' + else + profile='~/.profile' + fi + profile_explain="~/.bash_profile if it exists, otherwise ~/.profile" rc='~/.bashrc' ;; zsh ) @@ -92,10 +98,39 @@ function help_() { esac { + case "$shell" in + fish ) + echo "# Add pyenv executable to PATH by running" + echo "# the following interactively:" + echo + echo 'set -Ux PYENV_ROOT $HOME/.pyenv' + echo 'set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths' + echo + echo "# Load pyenv automatically by appending" + echo "# the following to ~/.config/fish/config.fish:" + echo + echo 'pyenv init - | source' + echo + ;; + * ) + echo '# Load pyenv automatically by appending' + echo -n "# the following to " + if [ "$profile" == "$rc" ]; then + echo "$profile :" + else + echo + echo "${profile_explain:-$profile} (for login shells)" + echo "and $rc (for interactive shells) :" + fi + echo + echo 'export PYENV_ROOT="$HOME/.pyenv"' + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' + echo 'eval "$(pyenv init -)"' + ;; + esac + echo + echo '# Restart your shell for the changes to take effect.' echo - echo '# See the README for instructions on how to set up' - echo '# your shell environment for Pyenv.' - echo } >&2 } @@ -104,13 +139,15 @@ function init_dirs() { } function print_path() { - # Need to use the login shell rather than the current one case "$shell" in fish ) - echo "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" + echo 'while set index (contains -i -- '\'"${PYENV_ROOT}/shims"\'' $PATH)' + echo 'set -eg PATH[$index]; end; set -e index' + echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH' ;; * ) - echo 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' + echo 'PATH="$(bash -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'"${PYENV_ROOT}/shims"\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; fi; done; echo "${paths[*]}"'\'')"' + echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"' ;; esac } diff --git a/test/init.bats b/test/init.bats index 1b5975718d..cfae0f4f9a 100755 --- a/test/init.bats +++ b/test/init.bats @@ -53,7 +53,7 @@ OUT @test "fish instructions" { run pyenv-init fish assert [ "$status" -eq 1 ] - assert_line '# See the README for instructions on how to set up' + assert_line 'pyenv init - | source' } @test "option to skip rehash" { @@ -64,30 +64,41 @@ OUT @test "adds shims to PATH" { export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" - run pyenv-init --path bash + run pyenv-init - bash assert_success - assert_line 0 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' + assert_line 'export PATH="'${PYENV_ROOT}'/shims:${PATH}"' } @test "adds shims to PATH (fish)" { export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" - run pyenv-init --path fish + run pyenv-init - fish assert_success - assert_line 0 "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" + assert_line "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } -@test "can add shims to PATH more than once" { - export PATH="${PYENV_ROOT}/shims:$PATH" - run pyenv-init --path bash +@test "removes existing shims from PATH" { + OLDPATH="$PATH" + export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" + run bash -e </dev/null || skip "-- fish not installed" + OLDPATH="$PATH" + export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" + # fish 2 (Ubuntu Bionic) adds spurious messages when setting PATH, messing up the output + run fish < Date: Mon, 2 May 2022 01:17:59 +0300 Subject: [PATCH 0416/1324] Make `pyenv init --path` usable as a `pyenv init -` substitute We're going to eliminate the need to mandatorily use `pyenv init --path`. We can't delete it yet for backward compatibility. Besides, there's one other use case for it: to enable shims but without shell integration, e.g. for noninteractive shells. To be a full-fledged replacement for `pyenv init -` however, it needs to do rehashing. --- README.md | 2 +- libexec/pyenv-init | 4 ++++ test/init.bats | 7 +++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 47117fcc86..e480589a92 100644 --- a/README.md +++ b/README.md @@ -528,7 +528,7 @@ opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does: for some reason you need `pyenv` to be a real script rather than a shell function, you can safely skip it. -`eval "$(pyenv init --path)"` only does item 1. +`eval "$(pyenv init --path)"` only does items 1 and 3. To see exactly what happens under the hood for yourself, run `pyenv init -` or `pyenv init --path`. diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 160931fd26..6d6cbf9a1f 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -57,6 +57,7 @@ function main() { ;; "path") print_path + print_rehash exit 0 ;; "print") @@ -64,6 +65,7 @@ function main() { print_path print_env print_completion + print_rehash print_shell_function exit 0 ;; @@ -168,7 +170,9 @@ function print_completion() { if [ -r "$completion" ]; then echo "source '$completion'" fi +} +function print_rehash() { if [ -z "$no_rehash" ]; then echo 'command pyenv rehash 2>/dev/null' fi diff --git a/test/init.bats b/test/init.bats index cfae0f4f9a..154d340b7d 100755 --- a/test/init.bats +++ b/test/init.bats @@ -17,6 +17,13 @@ load test_helper assert_line "command pyenv rehash 2>/dev/null" } +@test "auto rehash for --path" { + run pyenv-init --path + assert_success + assert_line "command pyenv rehash 2>/dev/null" +} + + @test "setup shell completions" { root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" run pyenv-init - bash From 7256feeaa862691a6a44ddf21e2175c1ebac7662 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 2 May 2022 19:08:49 +0300 Subject: [PATCH 0417/1324] Remove EOL versions from CI --- .github/workflows/macos_tests.yml | 3 --- .github/workflows/ubuntu_tests.yml | 3 --- 2 files changed, 6 deletions(-) diff --git a/.github/workflows/macos_tests.yml b/.github/workflows/macos_tests.yml index 060af25158..b07945e799 100644 --- a/.github/workflows/macos_tests.yml +++ b/.github/workflows/macos_tests.yml @@ -6,9 +6,6 @@ jobs: fail-fast: false matrix: python-version: - - 2.7.18 - - 3.5.10 - - 3.6.15 - 3.7.10 - 3.8.10 - 3.9.5 diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_tests.yml index 3c6572f428..400afd4c61 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_tests.yml @@ -6,9 +6,6 @@ jobs: fail-fast: false matrix: python-version: - - 2.7.18 - - 3.5.10 - - 3.6.15 - 3.7.10 - 3.8.10 - 3.9.5 From e928e75f2201ba8bbdcd991c9f25d83c942e8ec3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 3 May 2022 19:10:09 +0300 Subject: [PATCH 0418/1324] Fix a duplicate error message on stub plan overrun --- plugins/python-build/test/stubs/stub | 9 --------- 1 file changed, 9 deletions(-) diff --git a/plugins/python-build/test/stubs/stub b/plugins/python-build/test/stubs/stub index 5ff72b81a9..b940bedbb8 100755 --- a/plugins/python-build/test/stubs/stub +++ b/plugins/python-build/test/stubs/stub @@ -83,15 +83,6 @@ if [ -n "${!_STUB_END}" ]; then # the requested index, we failed. if [ $index -ge "${!_STUB_INDEX}" ]; then eval "${_STUB_RESULT}"=1 - { - echo "index: $index; stub index: ${!_STUB_INDEX}" - echo "plan:" - cat "${!_STUB_PLAN}" - echo "run:" - cat "${!_STUB_RUN}" - echo "log:" - cat "${!_STUB_LOG}" - } >&2 fi if [ "${!_STUB_RESULT}" -ne 0 ]; then { From 65316a7e997dabed97c9ed2daae3e383bd97a45d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 9 Feb 2022 18:55:23 +0300 Subject: [PATCH 0419/1324] Don't use Homebrew outside of MacOS In Linux, it's not the primary source of packages and cannot be used without build flag adjustments thus has caused build failures. --- plugins/python-build/bin/python-build | 12 +- plugins/python-build/test/build.bats | 159 ++++++++++++++--------- plugins/python-build/test/compiler.bats | 8 +- plugins/python-build/test/pyenv_ext.bats | 3 +- 4 files changed, 118 insertions(+), 64 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index cd333a4a75..314158f878 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1322,9 +1322,10 @@ configured_with_package_dir() { } use_homebrew() { + is_mac || return 1 # unless Homebrew is at the default /usr/local, need to add its paths to # compiler search to be able to use non-keg-only deps from there - if command -v brew &>/dev/null; then + if is_mac && command -v brew &>/dev/null; then local brew_prefix="$(brew --prefix 2>/dev/null || true)" # /usr/local/lib:/usr/lib is the default library search path if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then @@ -1340,6 +1341,7 @@ needs_yaml() { } use_homebrew_yaml() { + is_mac || return 1 local libdir="$(brew --prefix libyaml 2>/dev/null || true)" if [ -d "$libdir" ]; then echo "python-build: use libyaml from homebrew" @@ -1383,6 +1385,7 @@ has_broken_mac_readline() { } use_homebrew_readline() { + is_mac || return 1 if ! configured_with_package_dir "python" "readline/rlconf.h"; then local libdir="$(brew --prefix readline 2>/dev/null || true)" if [ -d "$libdir" ]; then @@ -1423,6 +1426,7 @@ has_broken_mac_openssl() { } use_homebrew_openssl() { + is_mac || return 1 command -v brew >/dev/null || return 1 for openssl in ${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl}; do local ssldir="$(brew --prefix "${openssl}" || true)" @@ -1522,6 +1526,7 @@ build_package_verify_openssl() { } use_homebrew_zlib() { + is_mac || return 1 local brew_zlib="$(brew --prefix zlib 2>/dev/null || true)" if [ -d "$brew_zlib" ]; then echo "python-build: use zlib from homebrew" @@ -1541,6 +1546,7 @@ use_xcode_sdk_zlib() { } use_homebrew_tcltk() { + is_mac || return 1 # get the version from the folder that homebrew versions local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" if [ -d "$tcltk_libdir" ]; then @@ -1598,7 +1604,9 @@ get_tcltk_flag_from() { } use_tcltk() { - local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" + if is_mac; then + local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" + fi local tcl_tk_libs="$(get_tcltk_flag_from "$PYTHON_CONFIGURE_OPTS")" # if tcltk_ops_flag is in PYTHON_CONFIGURE_OPTS, use user provided tcltk diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index bcf656c262..e324c02dcf 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -62,7 +62,7 @@ assert_build_log() { cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..4}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -89,7 +89,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..4}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -119,15 +119,12 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - stub uname '-s : echo Linux' '-s : echo Linux' + for i in {1..9}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install stub patch ' : echo patch "$@" | sed -E "s/\.[[:alnum:]]+$/.XXX/" >> build.log' - # pyenv/pyenv#1026 - stub uname false false - TMPDIR="$TMP" install_fixture --patch definitions/needs-yaml <<<"diff --git a/script.py" assert_success @@ -154,7 +151,7 @@ OUT BREW_PREFIX="$TMP/homebrew-prefix" mkdir -p "$BREW_PREFIX" - for i in {1..4}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix : echo '$BREW_PREFIX'" false stub_make_install @@ -164,8 +161,8 @@ install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2. DEF assert_success - unstub sw_vers unstub uname + unstub sw_vers unstub make assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" - stub uname false + for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub brew false for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done for i in {1..2}; do stub brew false; done + stub_make_install run_inline_definition <> build.log' stub_make_install - # yyuu/pyenv#257 - stub uname '-s : echo Linux' - stub uname '-s : echo Linux' - stub uname '-s : echo Linux' - export PYTHON_CONFIGURE="${TMP}/custom-configure" run_inline_definition <> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" @@ -332,7 +332,6 @@ OUT unstub make unstub uname - unstub brew } @test "default MACOSX_DEPLOYMENT_TARGET" { From f03adae58a95753fb18ba66d938eb6fa0b22288c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 May 2022 03:08:46 +0300 Subject: [PATCH 0420/1324] Rename CI workflows to what they actually do --- .github/workflows/{macos_tests.yml => macos_build.yml} | 4 ++-- .github/workflows/{ubuntu_tests.yml => ubuntu_build.yml} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename .github/workflows/{macos_tests.yml => macos_build.yml} (97%) rename .github/workflows/{ubuntu_tests.yml => ubuntu_build.yml} (97%) diff --git a/.github/workflows/macos_tests.yml b/.github/workflows/macos_build.yml similarity index 97% rename from .github/workflows/macos_tests.yml rename to .github/workflows/macos_build.yml index 060af25158..243e963e6c 100644 --- a/.github/workflows/macos_tests.yml +++ b/.github/workflows/macos_build.yml @@ -1,7 +1,7 @@ -name: macos_tests +name: macos_build on: [pull_request, push] jobs: - macos_tests: + macos_build: strategy: fail-fast: false matrix: diff --git a/.github/workflows/ubuntu_tests.yml b/.github/workflows/ubuntu_build.yml similarity index 97% rename from .github/workflows/ubuntu_tests.yml rename to .github/workflows/ubuntu_build.yml index 3c6572f428..dc1674823c 100644 --- a/.github/workflows/ubuntu_tests.yml +++ b/.github/workflows/ubuntu_build.yml @@ -1,7 +1,7 @@ -name: ubuntu_tests +name: ubuntu_build on: [pull_request, push] jobs: - ubuntu_tests: + ubuntu_build: strategy: fail-fast: false matrix: From cdccbd0ba335ed0c5732f0cb0cc16dba7e5531cc Mon Sep 17 00:00:00 2001 From: Hay Kranen Date: Wed, 4 May 2022 02:20:16 +0200 Subject: [PATCH 0421/1324] Add `:latest` syntax to documentation for the `install` command (#2351) --- COMMANDS.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/COMMANDS.md b/COMMANDS.md index 24a8d396e1..04d0f57788 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -228,6 +228,14 @@ Then install the desired versions: 2.6.8 * 2.7.6 (set by /home/yyuu/.pyenv/version) +To install the latest version of Python without giving a specific version use the `:latest` syntax. For example, to install the latest patch version for Python 3.8 you could do: + + pyenv install 3.8:latest + +To install the latest major release for Python 3 try: + + pyenv install 3:latest + ## `pyenv uninstall` Uninstall a specific Python version. From 2fd7be0453909ee9cc1cca4d32ebfe59ea31b6c4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 May 2022 03:30:52 +0300 Subject: [PATCH 0422/1324] 2.3.0 --- CHANGELOG.md | 20 ++++++++++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5a1380be0..66dab46bb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,25 @@ ## Version History +## Release 2.3.0 + +* Bump openssl 1.1 to 1.1.1n for CPython 3.7 3.8 3.9 (#2276) +* Doc Fix: Escape a hash character causing unwanted GitHub Issue linking (#2282) +* Add CPython 3.9.12 (#2296) +* Add CPython 3.10.4 (#2295) +* Add patch for 3.6.15 to support Xcode 13.3 (#2288) +* Add patch for 3.7.12 to support Xcode 13.3 (#2292) +* Add CONTRIBUTING.md (#2287) +* Add PyPy 7.3.9 release 2022-03-30 (#2308) +* Add Pyston 2.3.3 (#2316) +* Add CPython 3.11.0a7 (#2315) +* Add "nogil" Python v3.9.10 (#2342) +* Support XCode 13.3 in all releases that officially support MacOS 11 (#2344) +* Add GraalPython 22.1.0 (#2346) +* Make PYENV_DEBUG imply -v for `pyenv install` (#2347) +* Simplify init scheme (#2310) +* Don't use Homebrew outside of MacOS (#2349) +* Add `:latest` syntax to documentation for the `install` command (#2351) + ## Release 2.2.5 * Add CPython 3.10.3 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 8cfb8b2f3a..765e41cc94 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.2.5" +version="2.3.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 867f34b596062cd296d9fc2b75084ff8194ccb1a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 May 2022 04:28:35 +0300 Subject: [PATCH 0423/1324] README.md: Fix typos, improve phrasing --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index e480589a92..8fa27c95ac 100644 --- a/README.md +++ b/README.md @@ -275,7 +275,7 @@ The previous, more complicated configuration scheme for 2.0.0-2.2.5 still works. * run `eval "$(pyenv init -)"` to install `pyenv` into your shell as a shell function, enable shims and autocompletion * You may run `eval "$(pyenv init --path)"` instead to just enable shims, without shell integration -The below setup should work for the vast majority of users for commmon use cases. +The below setup should work for the vast majority of users for common use cases. See [Advanvced configuration](#advanced-configuration) for details and more configuration options. - For **bash**: @@ -567,11 +567,11 @@ to `PATH` in the ``'s environment, the same as what e.g. RVM does. ### Environment variables -You can affect how Pyenv operates with the following settings: +You can affect how Pyenv operates with the following environment variables: name | default | description -----|---------|------------ -`PYENV_VERSION` | | Specifies the Python version to be used.
Also see [`pyenv shell`]COMMANDS.md#pyenv-shell) +`PYENV_VERSION` | | Specifies the Python version to be used.
Also see [`pyenv shell`](COMMANDS.md#pyenv-shell) `PYENV_ROOT` | `~/.pyenv` | Defines the directory under which Python versions and shims reside.
Also see [`pyenv root`](COMMANDS.md#pyenv-root) `PYENV_DEBUG` | | Outputs debug information.
Also as: `pyenv --debug ` `PYENV_HOOK_PATH` | [_see wiki_][hooks] | Colon-separated list of paths searched for pyenv hooks. From c3fd96c42940278bba39741252f6c9cca6cb111d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Fri, 6 May 2022 19:51:51 +0300 Subject: [PATCH 0424/1324] Version file read improvements (#2269) * Don't bother reading empty version files * Implement version file read in pure bash Is faster with usual sized version files, slower with degenerate cases. --- libexec/pyenv-version-file-read | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/libexec/pyenv-version-file-read b/libexec/pyenv-version-file-read index 214d1ef43b..5dcc40fcd5 100755 --- a/libexec/pyenv-version-file-read +++ b/libexec/pyenv-version-file-read @@ -5,18 +5,17 @@ set -e VERSION_FILE="$1" -if [ -e "$VERSION_FILE" ]; then +if [ -s "$VERSION_FILE" ]; then # Read the first non-whitespace word from the specified version file. # Be careful not to load it whole in case there's something crazy in it. IFS="${IFS}"$'\r' - words=($(cut -b 1-1024 "$VERSION_FILE" | sed -n 's/^[[:space:]]*\([^[:space:]#][^[:space:]]*\).*/\1/p')) - versions=("${words[@]}") - - if [ -n "$versions" ]; then - IFS=":" - echo "${versions[*]}" - exit - fi + sep= + while read -n 1024 -r version _ || [[ $version ]]; do + [[ -z $version || $version == \#* ]] && continue + printf "%s%s" "$sep" "$version" + sep=: + done <"$VERSION_FILE" + [[ $sep ]] && { echo; exit; } fi exit 1 From 86598fcf4e643d23a2a804499a92240433a75a96 Mon Sep 17 00:00:00 2001 From: SADIK KUZU Date: Sun, 8 May 2022 01:16:03 +0300 Subject: [PATCH 0425/1324] README.md: Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8fa27c95ac..90a8fb6e29 100644 --- a/README.md +++ b/README.md @@ -276,7 +276,7 @@ The previous, more complicated configuration scheme for 2.0.0-2.2.5 still works. * You may run `eval "$(pyenv init --path)"` instead to just enable shims, without shell integration The below setup should work for the vast majority of users for common use cases. -See [Advanvced configuration](#advanced-configuration) for details and more configuration options. +See [Advanced configuration](#advanced-configuration) for details and more configuration options. - For **bash**: From 169321b3e6a73a33705ae0a7b7574abca5fd052f Mon Sep 17 00:00:00 2001 From: SADIK KUZU Date: Sun, 8 May 2022 09:46:47 +0300 Subject: [PATCH 0426/1324] README.md, CHANGELOG.md, libexec/pyenv-help: Fix typos --- CHANGELOG.md | 2 +- README.md | 4 ++-- libexec/pyenv-help | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66dab46bb3..3bb4f796f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -94,7 +94,7 @@ * Add documentation for shims command (#2091) * Add documentation for hooks command (#2089) * Add documentation for root command (#2088) -* Add documentaion for prefix command (#2087) +* Add documentation for prefix command (#2087) * Update to Pyston's v2 package of the 2.3.1 release (#2078) * Add pyston-2.3.1 support (#2075) * Don't update conda when installing pip (#2074) diff --git a/README.md b/README.md index 90a8fb6e29..4cf2449669 100644 --- a/README.md +++ b/README.md @@ -280,7 +280,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi - For **bash**: - Stock Bash startup files vary widely between distibutions in which of them source + Stock Bash startup files vary widely between distributions in which of them source which, under what circumstances, in what order and what additional configuration they perform. As such, the most reliable way to get Pyenv in all environments is to append Pyenv configuration commands to both `.bashrc` (for interactive shells) @@ -366,7 +366,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi ### Install additional Python versions -To install additonal Python versions, use [`pyenv install`](COMMANDS.md#pyenv-install). +To install additional Python versions, use [`pyenv install`](COMMANDS.md#pyenv-install). For example, to download and install Python 3.10.4, run: diff --git a/libexec/pyenv-help b/libexec/pyenv-help index d89c0ffb5b..b7d08d2f7a 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -44,7 +44,7 @@ extract_initial_comment_block() { } collect_documentation() { - # `tail` prevents "broken pipe" errors due to `head` closing thge pipe without reading everything + # `tail` prevents "broken pipe" errors due to `head` closing the pipe without reading everything # https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error/642932#642932 $(type -P gawk awk | tail -n +1 | head -1) ' /^Summary:/ { From df5ecfc72ddf382af1b0b576ba6a0d01c8f9e625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez?= Date: Sun, 8 May 2022 22:07:44 -0500 Subject: [PATCH 0427/1324] Add CPython 3.11.0b1 (#2358) --- .../python-build/share/python-build/{3.11.0a7 => 3.11.0b1} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0a7 => 3.11.0b1} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0a7 b/plugins/python-build/share/python-build/3.11.0b1 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0a7 rename to plugins/python-build/share/python-build/3.11.0b1 index 808417022f..9e954fc4bf 100644 --- a/plugins/python-build/share/python-build/3.11.0a7 +++ b/plugins/python-build/share/python-build/3.11.0b1 @@ -4,7 +4,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0a7" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a7.tar.xz#b7c56dd74c2f472d496b5a8d356bd6ad9ef9b03f26288c3237d3ff698ab03d74" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b1.tar.xz#dccac9b03dd3fe5cd10bc547579eb0be81a1d8971ec2a866b03dec5391f5ad25" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0a7" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0a7.tgz#6cc20b9b53a8e7a29e0fd56a0d502ff64a5677507fcf2c503decf732a31c513d" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b1.tgz#2d56c995de0e5ee595af51bf2b7ee162f07c587f4b62cecd4ed51c90cb21a60d" standard verify_py311 copy_python_gdb ensurepip fi From 70b23638f4afca187b0b568ffb7fa53e30477ff3 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade Date: Tue, 10 May 2022 12:01:58 +0300 Subject: [PATCH 0428/1324] Update 3.11-dev and add 3.12-dev (#2361) --- plugins/python-build/bin/python-build | 5 +++++ plugins/python-build/share/python-build/3.11-dev | 2 +- plugins/python-build/share/python-build/3.12-dev | 6 ++++++ 3 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.12-dev diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 314158f878..284dec91ee 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1849,6 +1849,11 @@ build_package_verify_py311() { build_package_verify_py310 "$1" "${2:-3.11}" } +# Post-install check for Python 3.12.x +build_package_verify_py312() { + build_package_verify_py311 "$1" "${2:-3.12}" +} + # Post-install check for Python 3.x rolling release scripts # XXX: Will need splitting into project-specific ones if there emerge # multiple rolling-release scripts with different checks needed diff --git a/plugins/python-build/share/python-build/3.11-dev b/plugins/python-build/share/python-build/3.11-dev index 0a9015a3f3..7970e0cf61 100644 --- a/plugins/python-build/share/python-build/3.11-dev +++ b/plugins/python-build/share/python-build/3.11-dev @@ -3,4 +3,4 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.11-dev" "https://github.com/python/cpython" main standard verify_py311 copy_python_gdb ensurepip +install_git "Python-3.11-dev" "https://github.com/python/cpython" 3.11 standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev new file mode 100644 index 0000000000..5d6748027f --- /dev/null +++ b/plugins/python-build/share/python-build/3.12-dev @@ -0,0 +1,6 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.12-dev" "https://github.com/python/cpython" main standard verify_py312 copy_python_gdb ensurepip From 25e0ffa67d145c842fe840cac14828a24e5ccfdd Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 17 May 2022 15:59:11 -0400 Subject: [PATCH 0429/1324] Add missing miniconda architectures: aarch64, arm64, s390x --- plugins/python-build/scripts/add_miniconda.py | 3 +++ .../share/python-build/miniconda3-3.7-4.10.1 | 16 ++++++++++++++++ .../share/python-build/miniconda3-3.7-4.10.3 | 6 ++++++ .../share/python-build/miniconda3-3.7-4.11.0 | 6 ++++++ .../share/python-build/miniconda3-3.7-4.9.2 | 6 ++++++ .../share/python-build/miniconda3-3.8-4.10.1 | 19 +++++++++++++++++++ .../share/python-build/miniconda3-3.8-4.10.3 | 6 ++++++ .../share/python-build/miniconda3-3.8-4.11.0 | 9 +++++++++ .../share/python-build/miniconda3-3.8-4.9.2 | 6 ++++++ .../share/python-build/miniconda3-3.9-4.10.1 | 16 ++++++++++++++++ .../share/python-build/miniconda3-3.9-4.10.3 | 6 ++++++ .../share/python-build/miniconda3-3.9-4.11.0 | 9 +++++++++ .../share/python-build/miniconda3-3.9-4.9.2 | 6 ++++++ 13 files changed, 114 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.7-4.10.1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-4.10.1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-4.10.1 diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 0cacdcc007..195c9ecc39 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -77,7 +77,10 @@ class SupportedOS(StrEnum): class SupportedArch(StrEnum): + AARCH64 = "aarch64" + ARM64 = "arm64" PPC64LE = "ppc64le" + S390X = "s390x" X86_64 = "x86_64" X86 = "x86" diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.10.1 b/plugins/python-build/share/python-build/miniconda3-3.7-4.10.1 new file mode 100644 index 0000000000..cf666957a3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.10.1 @@ -0,0 +1,16 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_4.10.1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.1-Linux-aarch64.sh#bcb84cfe1f5ccf477fa73fc87d2f4125" "miniconda" verify_py37 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_4.10.1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.1-Linux-s390x.sh#0738d7c00290860d60870103c710e4c2" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 b/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 index ded90b82d9..639aa63599 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.10.3 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_4.10.3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-aarch64.sh#19815e497b045246307f9317bcb4fb93" "miniconda" verify_py37 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py37_4.10.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-ppc64le.sh#a926bbaf28d59ac1264799e3ca770a44" "miniconda" verify_py37 ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_4.10.3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-s390x.sh#a82215f8abf68e44a8666a658ac4cdf9" "miniconda" verify_py37 + ;; "Linux-x86_64" ) install_script "Miniconda3-py37_4.10.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.10.3-Linux-x86_64.sh#9f186c1d86c266acc47dbc1603f0e2ed" "miniconda" verify_py37 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 b/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 index 3b6b12ccdc..2189f0e3df 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.11.0 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_4.11.0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-aarch64.sh#07e8dfaf467e5432d402a79b11085783" "miniconda" verify_py37 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py37_4.11.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-ppc64le.sh#cf7cbccc16bf82365bbf0129f646ff45" "miniconda" verify_py37 ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_4.11.0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-s390x.sh#1dc6dbf1951e65217d07cf30887360a8" "miniconda" verify_py37 + ;; "Linux-x86_64" ) install_script "Miniconda3-py37_4.11.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.11.0-Linux-x86_64.sh#7675bd23411179956bcc4692f16ef27d" "miniconda" verify_py37 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 index 069833c68c..da4a6e88ad 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.9.2 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_4.9.2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-aarch64.sh#eb76394f962a84fb6af4ed8bf115b904" "miniconda" verify_py37 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py37_4.9.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-ppc64le.sh#5bdc8650a2d1b32c8fd6eed9ed61aef5" "miniconda" verify_py37 ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_4.9.2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-s390x.sh#aa9207a1111352af948b8932d7823dce" "miniconda" verify_py37 + ;; "Linux-x86_64" ) install_script "Miniconda3-py37_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-x86_64.sh#3143b1116f2d466d9325c206b7de88f7" "miniconda" verify_py37 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.10.1 b/plugins/python-build/share/python-build/miniconda3-3.8-4.10.1 new file mode 100644 index 0000000000..cf3b39c79c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.10.1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_4.10.1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.1-Linux-aarch64.sh#34aba2af867e5411eff7fddd80982aa9" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_4.10.1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.1-Linux-s390x.sh#ff0ed5428dd94a6f5c64c92a59a73165" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_4.10.1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.1-MacOSX-arm64.sh#1bb73c5cd765d135e2b874fc0f08d50c" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 b/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 index 7f1438a546..80fefee87f 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.10.3 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_4.10.3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-aarch64.sh#1b84ae526853a0301d0c04b68b718ea8" "miniconda" verify_py38 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py38_4.10.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-ppc64le.sh#12ddb1b94f30f8fc633c3223b0398d2f" "miniconda" verify_py38 ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_4.10.3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-s390x.sh#44e34b6ee8a47db8c28834f86ada6d41" "miniconda" verify_py38 + ;; "Linux-x86_64" ) install_script "Miniconda3-py38_4.10.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.10.3-Linux-x86_64.sh#14da4a9a44b337f7ccb8363537f65b9c" "miniconda" verify_py38 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 b/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 index d2c42d9742..eb13e77f21 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.11.0 @@ -1,10 +1,19 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_4.11.0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-aarch64.sh#18344281ba44bdd1e38c8ae0f05a8758" "miniconda" verify_py38 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py38_4.11.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-ppc64le.sh#adec9893a69557f1eaadce56f24f6614" "miniconda" verify_py38 ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_4.11.0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-s390x.sh#b337e6834c940774e762cfb420ec7b91" "miniconda" verify_py38 + ;; "Linux-x86_64" ) install_script "Miniconda3-py38_4.11.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-Linux-x86_64.sh#252d3b0c863333639f99fbc465ee1d61" "miniconda" verify_py38 ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_4.11.0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-MacOSX-arm64.sh#1075216b8a7458b8fb86f6386dc5a4a9" "miniconda" verify_py38 + ;; "MacOSX-x86_64" ) install_script "Miniconda3-py38_4.11.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.11.0-MacOSX-x86_64.sh#e0ab9762f3d20d23bbff4b804a03cb08" "miniconda" verify_py38 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 index 3095545aa6..8ad3d753cf 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.9.2 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_4.9.2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-aarch64.sh#2359284ff562247fc2da4b68334ccac7" "miniconda" verify_py38 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py38_4.9.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-ppc64le.sh#b05f6c543ce0c593761bbfb4e6548ff6" "miniconda" verify_py38 ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_4.9.2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-s390x.sh#29a7a50a29954d26a64e1a651a9e6f83" "miniconda" verify_py38 + ;; "Linux-x86_64" ) install_script "Miniconda3-py38_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.9.2-Linux-x86_64.sh#122c8c9beb51e124ab32a0fa6426c656" "miniconda" verify_py38 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.10.1 b/plugins/python-build/share/python-build/miniconda3-3.9-4.10.1 new file mode 100644 index 0000000000..b5249b45c7 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.10.1 @@ -0,0 +1,16 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_4.10.1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.1-Linux-aarch64.sh#67fb85a56aa7fda6e2fc5cdeb2aafec0" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_4.10.1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.1-Linux-s390x.sh#089da98e758bbc4a0e784d75340ec5d0" "miniconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 b/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 index 3a08afb9b8..9f0ae7f29e 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.10.3 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_4.10.3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-aarch64.sh#d4e7afa2783cd85532d59d7ccb9ec268" "miniconda" verify_py39 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py39_4.10.3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-ppc64le.sh#07ea41c691bdcc7d9c71cae1a1a88151" "miniconda" verify_py39 ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_4.10.3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-s390x.sh#633ae4c5382ca883f1f38a7d8c472f85" "miniconda" verify_py39 + ;; "Linux-x86_64" ) install_script "Miniconda3-py39_4.10.3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.10.3-Linux-x86_64.sh#8c69f65a4ae27fb41df0fe552b4a8a3b" "miniconda" verify_py39 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 b/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 index 8f324c1210..f5423897a1 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.11.0 @@ -1,10 +1,19 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_4.11.0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-Linux-aarch64.sh#f25b8ff2dbebe0285360ef1b4c883da6" "miniconda" verify_py39 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py39_4.11.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-Linux-ppc64le.sh#305e55110a3ad9384230e5fe396ccd89" "miniconda" verify_py39 ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_4.11.0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-Linux-s390x.sh#26e904d1f42bf8cece2b99a698c10a46" "miniconda" verify_py39 + ;; "Linux-x86_64" ) install_script "Miniconda3-py39_4.11.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-Linux-x86_64.sh#4e2f31e0b2598634c80daa12e4981647" "miniconda" verify_py39 ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_4.11.0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-MacOSX-arm64.sh#c19959eafcb84a26e00af5d9f55826eb" "miniconda" verify_py39 + ;; "MacOSX-x86_64" ) install_script "Miniconda3-py39_4.11.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.11.0-MacOSX-x86_64.sh#d1303e5c7510b2ef444b9ba474551733" "miniconda" verify_py39 ;; diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 b/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 index dd21323205..c083ba83f4 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.9.2 @@ -1,7 +1,13 @@ case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_4.9.2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-aarch64.sh#af1c16d821569ebf1bdaf549fcba7d27" "miniconda" verify_py39 + ;; "Linux-ppc64le" ) install_script "Miniconda3-py39_4.9.2-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-ppc64le.sh#73b8d60454389905b1d209f1b0c211d9" "miniconda" verify_py39 ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_4.9.2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-s390x.sh#ae66aa46e565c97bf3485275b370c7e5" "miniconda" verify_py39 + ;; "Linux-x86_64" ) install_script "Miniconda3-py39_4.9.2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh#b4e46fcc8029e2cfa731b788f25b1d36" "miniconda" verify_py39 ;; From d200c6afa9302e168d2a9ad01311486133f1ec2a Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 17 May 2022 15:59:25 -0400 Subject: [PATCH 0430/1324] Add miniconda 4.12.0 --- .../share/python-build/miniconda3-3.7-4.12.0 | 25 +++++++++++++++++ .../share/python-build/miniconda3-3.8-4.12.0 | 28 +++++++++++++++++++ .../share/python-build/miniconda3-3.9-4.12.0 | 28 +++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.7-4.12.0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-4.12.0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-4.12.0 b/plugins/python-build/share/python-build/miniconda3-3.7-4.12.0 new file mode 100644 index 0000000000..f706448e22 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.7-4.12.0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_4.12.0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.12.0-Linux-aarch64.sh#dbac5ea2d2a1dfcf864f5ad0ac775647" "miniconda" verify_py37 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py37_4.12.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.12.0-Linux-ppc64le.sh#57a654d3f143db5230d181cad7a938c1" "miniconda" verify_py37 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_4.12.0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.12.0-Linux-s390x.sh#2f6c9cb12b37dca5d7d29a4b5d04ffdd" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_4.12.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.12.0-Linux-x86_64.sh#770bac2587bc7380198b4f0741115b11" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_4.12.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_4.12.0-MacOSX-x86_64.sh#161c0c4b88410149beb73d1eea6ec937" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-4.12.0 b/plugins/python-build/share/python-build/miniconda3-3.8-4.12.0 new file mode 100644 index 0000000000..79cf751248 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-4.12.0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_4.12.0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-aarch64.sh#72cb127e8f455b692e3c8a9009b34f7c" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_4.12.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-ppc64le.sh#2023a9a4008a9e1c4c317f3b1a6a99cd" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_4.12.0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-s390x.sh#f5692dec773b021dea5074b6f6bc3464" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_4.12.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-Linux-x86_64.sh#9986028a26f489f99af4398eac966d36" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_4.12.0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-MacOSX-arm64.sh#c8796b213b0dee4426e442f6eb059b40" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_4.12.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_4.12.0-MacOSX-x86_64.sh#215d80a3912d71c2272e37c63340f48a" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 b/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 new file mode 100644 index 0000000000..8e79e780f3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_4.12.0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-aarch64.sh#9baf936183f3479c97bff16fe62fb56c" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_4.12.0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-ppc64le.sh#2244290b6c899106901bbefad21aa49d" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_4.12.0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-s390x.sh#f8d3b0ad1cf6a3a7175cd76d7e121820" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_4.12.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh#7843dd7d0a2c53b0df37ca8189672992" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_4.12.0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-MacOSX-arm64.sh#31251793539cf952ee99c18e34c30c7f" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_4.12.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-MacOSX-x86_64.sh#143b9bb03b6e4865be4ebbf40b108772" "miniconda" verify_py39 + ;; +* ) + { 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 From ef110c1c4fae0636803ec04efe9767b13236c309 Mon Sep 17 00:00:00 2001 From: Mathieu Kniewallner Date: Tue, 17 May 2022 23:35:26 +0200 Subject: [PATCH 0431/1324] Add CPython 3.9.13 (#2372) --- plugins/python-build/share/python-build/3.9.13 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.13 diff --git a/plugins/python-build/share/python-build/3.9.13 b/plugins/python-build/share/python-build/3.9.13 new file mode 100644 index 0000000000..64f737848a --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.13 @@ -0,0 +1,10 @@ +#require_gcc +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.13" "https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tar.xz#125b0c598f1e15d2aa65406e83f792df7d171cdf38c16803b149994316a3080f" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.13" "https://www.python.org/ftp/python/3.9.13/Python-3.9.13.tgz#829b0d26072a44689a6b0810f5b4a3933ee2a0b8a4bfc99d7c5893ffd4f97c44" standard verify_py39 copy_python_gdb ensurepip +fi From e676fde9909946fc0078ec921936eb079c24fd8d Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 18 May 2022 16:15:05 +0300 Subject: [PATCH 0432/1324] Fix endless loop in `pyenv init -` under SSH in some shell setups (#2374) --- libexec/pyenv-init | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 6d6cbf9a1f..f3b0f38be4 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -148,7 +148,14 @@ function print_path() { echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH' ;; * ) - echo 'PATH="$(bash -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'"${PYENV_ROOT}/shims"\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; fi; done; echo "${paths[*]}"'\'')"' + # Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option + # that makes it source `bashrc` under SSH even when not interactive. + # This is inhibited by a guard in Debian's stock `bashrc` but some people remove it + # in order to get proper environment for noninteractive remote commands + # (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason). + # This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367). + # --norc negates this behavior of such a customized Bash. + echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'"${PYENV_ROOT}/shims"\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; fi; done; echo "${paths[*]}"'\'')"' echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"' ;; esac From e16b7adf94335909882a4ee1f21a9157e5919259 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 22 May 2022 15:58:28 +0300 Subject: [PATCH 0433/1324] Migrate from probot/no-response to lee-dohm/no-response probot/no-response has been retired and no longer runs --- .github/no-response.yml | 13 ------------- .github/workflows/no-response.yml | 26 ++++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 13 deletions(-) delete mode 100644 .github/no-response.yml create mode 100644 .github/workflows/no-response.yml diff --git a/.github/no-response.yml b/.github/no-response.yml deleted file mode 100644 index 3f677a3e32..0000000000 --- a/.github/no-response.yml +++ /dev/null @@ -1,13 +0,0 @@ -# Configuration for probot-no-response - https://github.com/probot/no-response - -# Number of days of inactivity before an Issue is closed for lack of response -daysUntilClose: 30 -# Label requiring a response -responseRequiredLabel: need-feedback -# Comment to post when closing an Issue for lack of response. Set to `false` to disable -closeComment: > - This issue has been automatically closed because there has been no response - to our request for more information from the original author. With only the - information that is currently in the issue, we don't have enough information - to take action. Please reach out if you have or find the answers we need so - that we can investigate further. diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml new file mode 100644 index 0000000000..afaae8ede6 --- /dev/null +++ b/.github/workflows/no-response.yml @@ -0,0 +1,26 @@ +name: No Response + +# Both `issue_comment` and `scheduled` event types are required for this Action +# to work properly. +on: + issue_comment: + types: [created] + schedule: + # Schedule for ten minutes after the hour, every hour + - cron: '10 * * * *' + +jobs: + noResponse: + runs-on: ubuntu-latest + steps: + - uses: lee-dohm/no-response@v0.5.0 + with: + token: ${{ github.token }} + daysUntilClose: 30 + responseRequiredLabel: need-feedback + closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. From 0930533d929e06a56385fa58b7fa9efa829ba741 Mon Sep 17 00:00:00 2001 From: tuzi3040 <28290621+tuzi3040@users.noreply.github.com> Date: Mon, 23 May 2022 08:36:39 +0800 Subject: [PATCH 0434/1324] CI: Add tests for modified python build scripts (#2286) Co-authored-by: Ivan Pozdeev --- .github/workflows/modified_scripts_build.yml | 84 ++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 .github/workflows/modified_scripts_build.yml diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml new file mode 100644 index 0000000000..3003f4fb57 --- /dev/null +++ b/.github/workflows/modified_scripts_build.yml @@ -0,0 +1,84 @@ +name: modified_scripts +on: [pull_request] +jobs: + discover_modified_scripts: + runs-on: ubuntu-latest + outputs: + versions: ${{steps.modified-versions.outputs.versions}} + steps: + - uses: actions/checkout@v2 + - run: git fetch origin "$GITHUB_BASE_REF" + - shell: bash + run: > + versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z + | perl -ne 'BEGIN {$\="\n";$/="\0";} chomp; + if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/) + { print $1.$2; }' \ + | sort -u); + echo -e "versions<> $GITHUB_ENV + - id: modified-versions + run: | + echo -n "::set-output name=versions::" + echo "${{ env.versions }}" | jq -R . | jq -sc . + macos_build: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + os: ["macos-10.15", "macos-11"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - run: | + brew install openssl openssl@1.1 readline sqlite3 xz zlib + # https://github.com/pyenv/pyenv#installation + - run: pwd + - env: + PYENV_ROOT: /Users/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash + - run: python --version + - run: python -m pip --version + - shell: python # Prove that actual Python == expected Python + env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) + + ubuntu_build: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + os: ["ubuntu-18.04", "ubuntu-20.04"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - run: | + sudo apt-get update -q; sudo apt-get install -yq build-essential \ + libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ + wget curl llvm libncurses5-dev libncursesw5-dev \ + xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + # https://github.com/pyenv/pyenv#installation + - run: pwd + - env: + PYENV_ROOT: /home/runner/work/pyenv/pyenv + run: | + echo $PYENV_ROOT + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + bin/pyenv install ${{ matrix.python-version }} + bin/pyenv global ${{ matrix.python-version }} + bin/pyenv rehash + - run: python --version + - run: python -m pip --version + - shell: python # Prove that actual Python == expected Python + env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) From 8ff6507f802096948d247219d127271609ef0d71 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 29 May 2022 19:50:13 +0300 Subject: [PATCH 0435/1324] 2.3.1 --- CHANGELOG.md | 10 ++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3bb4f796f9..9a1a314248 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ ## Version History +## Release 2.3.1 + +* Version file read improvements (#2269) +* Add CPython 3.11.0b1 (#2358) +* Update 3.11-dev and add 3.12-dev (#2361) +* Add CPython 3.9.13 (#2372) +* Add miniconda 4.12.0 (#2371) +* Fix endless loop in `pyenv init -` under SSH in some shell setups (#2374) +* CI: Add tests for modified Python build scripts (#2286) + ## Release 2.3.0 * Bump openssl 1.1 to 1.1.1n for CPython 3.7 3.8 3.9 (#2276) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 765e41cc94..a27dcfcd62 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.0" +version="2.3.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 845e08eb2f71dba4d8a831cea225d79b0eb9bcc3 Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Tue, 31 May 2022 21:20:52 +0530 Subject: [PATCH 0436/1324] Add CPython 3.11.0b2 (#2380) --- .../python-build/share/python-build/{3.11.0b1 => 3.11.0b2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0b1 => 3.11.0b2} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0b1 b/plugins/python-build/share/python-build/3.11.0b2 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0b1 rename to plugins/python-build/share/python-build/3.11.0b2 index 9e954fc4bf..8cd70acee8 100644 --- a/plugins/python-build/share/python-build/3.11.0b1 +++ b/plugins/python-build/share/python-build/3.11.0b2 @@ -4,7 +4,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0b1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b1.tar.xz#dccac9b03dd3fe5cd10bc547579eb0be81a1d8971ec2a866b03dec5391f5ad25" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b2.tar.xz#e574dee6694fb255dff8036f3c0048251e5cb29a167766030b7ce3160fb4c47d" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0b1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b1.tgz#2d56c995de0e5ee595af51bf2b7ee162f07c587f4b62cecd4ed51c90cb21a60d" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b2.tgz#3bc20b69b8c92f45bae4f62934aa9731739b37a7665c2bf14b59620a4fd51714" standard verify_py311 copy_python_gdb ensurepip fi From cd5522965b11d19a5791bc214a9aaa98d3947954 Mon Sep 17 00:00:00 2001 From: yggdr Date: Tue, 31 May 2022 18:47:06 +0200 Subject: [PATCH 0437/1324] Pass through CFLAGS_EXTRA for Micropython (#2007) Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/compiler.bats | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 284dec91ee..eefeb00196 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -899,7 +899,7 @@ build_package_micropython() { "$MAKE" $MAKE_OPTS cd ../ports/unix "$MAKE" $MAKE_OPTS axtls - "$MAKE" $MAKE_OPTS CFLAGS_EXTRA="-DMICROPY_PY_SYS_PATH_DEFAULT='\"${PREFIX_PATH}/lib/micropython\"'" + "$MAKE" $MAKE_OPTS CFLAGS_EXTRA="-DMICROPY_PY_SYS_PATH_DEFAULT='\"${PREFIX_PATH}/lib/micropython\"' $CFLAGS_EXTRA" "$MAKE" install $MAKE_INSTALL_OPTS PREFIX="${PREFIX_PATH}" ln -fs micropython "${PREFIX_PATH}/bin/python" mkdir -p "${PREFIX_PATH}/lib/micropython" diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index c07f12c4ec..70049d752b 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -97,3 +97,24 @@ make -j 2 make install OUT } + +@test "passthrough CFLAGS_EXTRA to micropython compiler" { + mkdir -p "$INSTALL_ROOT/mpy-cross" + mkdir -p "$INSTALL_ROOT/ports/unix" + mkdir -p "$INSTALL_ROOT/bin" + # touch "$INSTALL_ROOT/bin/python" + cd "$INSTALL_ROOT" + + stub make true true '(for a in "$@"; do echo $a; done)|grep -E "^CFLAGS_EXTRA="' true + stub ln true + stub mkdir true + run_inline_definition < Date: Tue, 31 May 2022 14:37:44 -0400 Subject: [PATCH 0438/1324] Add post-install checks for curses, ctypes, lzma, and tkinter (#2353) Tkinter check is conditional on DISPLAY Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index eefeb00196..a4a3af78d6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1707,7 +1707,7 @@ verify_python() { try_python_module() { if ! "$PYTHON_BIN" -c "import $1" 1>/dev/null 2>&1; then { colorize 1 "WARNING" - echo ": The Python $1 extension was not compiled. Missing the ${2:-$1}?" + echo ": The Python $1 extension was not compiled${3:+ $3}. Missing the ${2:-$1}?" return 0 } >&3 fi @@ -1788,9 +1788,14 @@ build_package_verify_py27() { build_package_verify_py30() { verify_python "${2:-3.0}" try_python_module "bz2" "bzip2 lib" + try_python_module "curses" "ncurses lib" + try_python_module "ctypes" "libffi lib" try_python_module "readline" "GNU readline lib" verify_python_module "ssl" "OpenSSL lib" try_python_module "sqlite3" "SQLite3 lib" + if [[ -n $DISPLAY ]]; then + try_python_module "tkinter" "Tk toolkit" "and GUI subsystem has been detected" + fi verify_python_module "zlib" "zlib" } @@ -1807,6 +1812,7 @@ build_package_verify_py32() { # Post-install check for Python 3.3.x build_package_verify_py33() { build_package_verify_py32 "$1" "${2:-3.3}" + try_python_module "lzma" "lzma lib" } # Post-install check for Python 3.4.x From c055ba718b9d7b16dd1d3d52926b8d952729c246 Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Wed, 1 Jun 2022 11:45:35 -0500 Subject: [PATCH 0439/1324] Add CPython 3.11.0b3 (#2382) --- .../python-build/share/python-build/{3.11.0b2 => 3.11.0b3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0b2 => 3.11.0b3} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0b2 b/plugins/python-build/share/python-build/3.11.0b3 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0b2 rename to plugins/python-build/share/python-build/3.11.0b3 index 8cd70acee8..a16a767152 100644 --- a/plugins/python-build/share/python-build/3.11.0b2 +++ b/plugins/python-build/share/python-build/3.11.0b3 @@ -4,7 +4,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0b2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b2.tar.xz#e574dee6694fb255dff8036f3c0048251e5cb29a167766030b7ce3160fb4c47d" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b3.tar.xz#c9b99f5315ea30f8e9fcbce6807a3739e875480d29124e6d9940f6fabcb7c902" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0b2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b2.tgz#3bc20b69b8c92f45bae4f62934aa9731739b37a7665c2bf14b59620a4fd51714" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b3.tgz#f52b738043251c88e3d6bb86e30cbf0e1098470a06b9d49feb31f145af5e8149" standard verify_py311 copy_python_gdb ensurepip fi From bc13a87beebfafb0e1baa352c0ba396fae4754b0 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 5 Jun 2022 22:35:56 +0300 Subject: [PATCH 0440/1324] Add flags for Homebrew into `python-config --ldflags` (#2384) --- plugins/python-build/bin/python-build | 7 +++++-- plugins/python-build/test/build.bats | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a4a3af78d6..c93589ae2f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1300,7 +1300,7 @@ require_osx_version() { configured_with_package_dir() { local package_var_name="$(capitalize "$1")" - shift 1 + shift 3 local PACKAGE_CONFIGURE_OPTS="${package_var_name}_CONFIGURE_OPTS" local PACKAGE_CONFIGURE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]" local arg flag @@ -1330,7 +1330,10 @@ use_homebrew() { # /usr/local/lib:/usr/lib is the default library search path if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I${brew_prefix}/include" - export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L${brew_prefix}/lib" + export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" + # `python-config` ignores LDFLAGS envvar. Adding to LIBS is the only way to add extra stuff + # to `python-config --ldflags` output + export LIBS="${LIBS:+${LIBS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" fi fi } diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index e324c02dcf..1034f0ba82 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -166,7 +166,7 @@ DEF unstub make assert_build_log < Date: Mon, 6 Jun 2022 21:52:20 +0300 Subject: [PATCH 0441/1324] Add CPython 3.10.5 (#2386) --- plugins/python-build/share/python-build/3.10.5 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.5 diff --git a/plugins/python-build/share/python-build/3.10.5 b/plugins/python-build/share/python-build/3.10.5 new file mode 100644 index 0000000000..f29b0723b1 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.5 @@ -0,0 +1,10 @@ +#require_gcc +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.5" "https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tar.xz#8437efd5b106ef0a75aabfbf23d880625120a73a86a22ade4d2e2e68d7b74486" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.5" "https://www.python.org/ftp/python/3.10.5/Python-3.10.5.tgz#18f57182a2de3b0be76dfc39fdcfd28156bb6dd23e5f08696f7492e9e3d0bf2d" standard verify_py310 copy_python_gdb ensurepip +fi From 64aacd5cfdcbf1d9b37f9fa1838a1d8d682b4f82 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 6 Jun 2022 01:07:46 +0300 Subject: [PATCH 0442/1324] add_miniconda: support Anaconda, support non-CPython scripts in scripts check --- .github/workflows/modified_scripts_build.yml | 46 +++-- plugins/python-build/scripts/add_miniconda.py | 158 ++++++++++++------ 2 files changed, 136 insertions(+), 68 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 3003f4fb57..9750fc93f1 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -33,22 +33,27 @@ jobs: - uses: actions/checkout@v2 - run: | brew install openssl openssl@1.1 readline sqlite3 xz zlib - # https://github.com/pyenv/pyenv#installation - - run: pwd - - env: - PYENV_ROOT: /Users/runner/work/pyenv/pyenv - run: | + - run: | + echo "PYENV_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV + - run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash + - run: | + pyenv install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} - run: python --version - run: python -m pip --version - shell: python # Prove that actual Python == expected Python env: EXPECTED_PYTHON: ${{ matrix.python-version }} - run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) + run: | + import os, sys, os.path + correct_dir = os.path.join( + os.environ['PYENV_ROOT'], + 'versions', + os.environ['EXPECTED_PYTHON'], + 'bin') + assert os.path.dirname(sys.executable) == correct_dir ubuntu_build: needs: discover_modified_scripts @@ -66,19 +71,24 @@ jobs: libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - # https://github.com/pyenv/pyenv#installation - - run: pwd - - env: - PYENV_ROOT: /home/runner/work/pyenv/pyenv - run: | + - run: | + echo "PYENV_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV + - run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash + - run: | + pyenv install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} - run: python --version - run: python -m pip --version - shell: python # Prove that actual Python == expected Python env: EXPECTED_PYTHON: ${{ matrix.python-version }} - run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) + run: | + import os, sys, os.path + correct_dir = os.path.join( + os.environ['PYENV_ROOT'], + 'versions', + os.environ['EXPECTED_PYTHON'], + 'bin') + assert os.path.dirname(sys.executable) == correct_dir diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 195c9ecc39..b53618bc85 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -19,6 +19,7 @@ from pathlib import Path from typing import NamedTuple, List, Optional, DefaultDict, Dict import logging +import string import requests_html @@ -26,7 +27,7 @@ CONDA_REPO = "https://repo.anaconda.com" MINICONDA_REPO = CONDA_REPO + "/miniconda" -# ANACONDA_REPO = CONDA_REPO + "/archive" +ANACONDA_REPO = CONDA_REPO + "/archive" install_script_fmt = """ case "$(anaconda_architecture 2>/dev/null || true)" in @@ -34,7 +35,7 @@ * ) {{ echo colorize 1 "ERROR" - echo ": The binary distribution of Miniconda is not available for $(anaconda_architecture 2>/dev/null || true)." + echo ": The binary distribution of {tflavor} is not available for $(anaconda_architecture 2>/dev/null || true)." echo }} >&2 exit 1 @@ -44,7 +45,7 @@ install_line_fmt = """ "{os}-{arch}" ) - install_script "Miniconda{suffix}-{version_py_version}{version_str}-{os}-{arch}" "{repo}/Miniconda{suffix}-{version_py_version}{version_str}-{os}-{arch}.sh#{md5}" "miniconda" verify_{py_version} + install_script "{tflavor}{suffix}-{version_py_version}{version_str}-{os}-{arch}" "{repo}/{tflavor}{suffix}-{version_py_version}{version_str}-{os}-{arch}.sh#{md5}" "{flavor}" verify_{py_version} ;; """.strip() @@ -85,9 +86,20 @@ class SupportedArch(StrEnum): X86 = "x86" +class Flavor(StrEnum): + ANACONDA = "anaconda" + MINICONDA = "miniconda" + + +class TFlavor(StrEnum): + ANACONDA = "Anaconda" + MINICONDA = "Miniconda" + + class Suffix(StrEnum): TWO = "2" THREE = "3" + NONE = "" class PyVersion(StrEnum): @@ -126,7 +138,8 @@ def __hash__(self): return hash(str(self)) -class MinicondaVersion(NamedTuple): +class CondaVersion(NamedTuple): + flavor: Flavor suffix: Suffix version_str: VersionStr py_version: Optional[PyVersion] @@ -134,7 +147,7 @@ class MinicondaVersion(NamedTuple): @classmethod def from_str(cls, s): """ - Convert a string of the form "miniconda_n-ver" or "miniconda_n-py_ver-ver" to a :class:`MinicondaVersion` object. + Convert a string of the form "miniconda_n-ver" or "miniconda_n-py_ver-ver" to a :class:`CondaVersion` object. """ components = s.split("-") if len(components) == 3: @@ -143,13 +156,20 @@ def from_str(cls, s): else: miniconda_n, ver = components py_ver = None - return MinicondaVersion(Suffix(miniconda_n[-1]), VersionStr(ver), py_ver) + + suffix = miniconda_n[-1] + if suffix in string.digits: + flavor = miniconda_n[:-1] + else: + flavor = miniconda_n + suffix = "" + return CondaVersion(Flavor(flavor), Suffix(suffix), VersionStr(ver), py_ver) def to_filename(self): if self.py_version: - return f"miniconda{self.suffix}-{self.py_version.version()}-{self.version_str}" + return f"{self.flavor}{self.suffix}-{self.py_version.version()}-{self.version_str}" else: - return f"miniconda{self.suffix}-{self.version_str}" + return f"{self.flavor}{self.suffix}-{self.version_str}" def default_py_version(self): """ @@ -159,38 +179,61 @@ def default_py_version(self): return self.py_version elif self.suffix == Suffix.TWO: return PyVersion.PY27 - elif self.version_str.info() < (4, 7): + + v = self.version_str.info() + if self.flavor == "miniconda": # https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html + if v < (4, 7): + return PyVersion.PY36 + else: + return PyVersion.PY37 + if self.flavor == "anaconda": + # https://docs.anaconda.com/anaconda/reference/release-notes/ + if v >= (2021,11): + return PyVersion.PY39 + if v >= (2020,7): + return PyVersion.PY38 + if v >= (2020,2): + return PyVersion.PY37 + if v >= (5,3,0): + return PyVersion.PY37 return PyVersion.PY36 - else: - return PyVersion.PY37 - def with_version_triple(self): - return MinicondaVersion( - self.suffix, VersionStr.from_info(self.version_str.info()[:3]), self.py_version - ) + raise ValueError(flavor) -class MinicondaSpec(NamedTuple): - version: MinicondaVersion +class CondaSpec(NamedTuple): + tflavor: TFlavor + version: CondaVersion os: SupportedOS arch: SupportedArch md5: str + repo: str py_version: Optional[PyVersion] = None @classmethod - def from_filestem(cls, stem, md5, py_version=None): + def from_filestem(cls, stem, md5, repo, py_version=None): miniconda_n, ver, os, arch = stem.split("-") + suffix = miniconda_n[-1] + if suffix in string.digits: + tflavor = miniconda_n[:-1] + else: + tflavor = miniconda_n + suffix = "" + flavor = tflavor.lower() + if ver.startswith("py"): py_ver, ver = ver.split("_", maxsplit=1) py_ver = PyVersion(py_ver) else: py_ver = None - spec = MinicondaSpec( - MinicondaVersion(Suffix(miniconda_n[-1]), VersionStr(ver), py_ver), + spec = CondaSpec( + TFlavor(tflavor), + CondaVersion(Flavor(flavor), Suffix(suffix), VersionStr(ver), py_ver), SupportedOS(os), SupportedArch(arch), md5, + repo, ) if py_version is None: spec = spec.with_py_version(spec.version.default_py_version()) @@ -201,7 +244,9 @@ def to_install_lines(self): Installation command for this version of Miniconda for use in a Pyenv installation script """ return install_line_fmt.format( - repo=MINICONDA_REPO, + tflavor=self.tflavor, + flavor=self.version.flavor, + repo=self.repo, suffix=self.version.suffix, version_str=self.version.version_str, version_py_version=f"{self.version.py_version}_" if self.version.py_version else "", @@ -212,48 +257,47 @@ def to_install_lines(self): ) def with_py_version(self, py_version: PyVersion): - return MinicondaSpec(*self[:-1], py_version=py_version) - - def with_version_triple(self): - version, *others = self - return MinicondaSpec(version.with_version_triple(), *others) + return CondaSpec(*self[:-1], py_version=py_version) -def make_script(specs: List[MinicondaSpec]): +def make_script(specs: List[CondaSpec]): install_lines = [s.to_install_lines() for s in specs] - return install_script_fmt.format(install_lines="\n".join(install_lines)) + return install_script_fmt.format( + install_lines="\n".join(install_lines), + tflavor=specs[0].tflavor, + ) -def get_existing_minicondas(): +def get_existing_condas(name): """ Enumerate existing Miniconda installation scripts in share/python-build/ except rolling releases. - :returns: A generator of :class:`MinicondaVersion` objects. + :returns: A generator of :class:`CondaVersion` objects. """ - logger.info("Getting known miniconda versions") + logger.info("Getting known %(name)s versions",locals()) for p in out_dir.iterdir(): - name = p.name - if not p.is_file() or not name.startswith("miniconda"): + entry_name = p.name + if not p.is_file() or not entry_name.startswith(name): continue try: - v = MinicondaVersion.from_str(name) + v = CondaVersion.from_str(entry_name) if v.version_str != "latest": - logger.debug("Found existing miniconda version %s", v) + logger.debug("Found existing %(name)s version %(v)s", locals()) yield v except ValueError: pass -def get_available_minicondas(): +def get_available_condas(name, repo): """ Fetch remote miniconda versions. - :returns: A generator of :class:`MinicondaSpec` objects for each release available for download + :returns: A generator of :class:`CondaSpec` objects for each release available for download except rolling releases. """ - logger.info("Fetching remote miniconda versions") + logger.info("Fetching remote %(name)s versions",locals()) session = requests_html.HTMLSession() - response = session.get(MINICONDA_REPO) + response = session.get(repo) page: requests_html.HTML = response.html table = page.find("table", first=True) rows = table.find("tr")[1:] @@ -267,16 +311,17 @@ def get_available_minicondas(): stem = fname[:-3] try: - s = MinicondaSpec.from_filestem(stem, md5) + s = CondaSpec.from_filestem(stem, md5, repo) if s.version.version_str != "latest": - logger.debug("Found remote miniconda version %s", s) + logger.debug("Found remote %(name)s version %(s)s", locals()) yield s except ValueError: pass -def key_fn(spec: MinicondaSpec): +def key_fn(spec: CondaSpec): return ( + spec.tflavor, spec.version.version_str.info(), spec.version.suffix.value, spec.os.value, @@ -305,29 +350,42 @@ def key_fn(spec: MinicondaSpec): if parsed.verbose < 3: logging.getLogger("requests").setLevel(logging.WARNING) - existing_versions = set(get_existing_minicondas()) - available_specs = set(get_available_minicondas()) + existing_versions = set() + available_specs = set() + for name,repo in ("miniconda",MINICONDA_REPO),("anaconda",ANACONDA_REPO): + existing_versions |= set(get_existing_condas(name)) + available_specs |= set(get_available_condas(name, repo)) # version triple to triple-ified spec to raw spec to_add: DefaultDict[ - MinicondaVersion, Dict[MinicondaSpec, MinicondaSpec] + CondaVersion, Dict[CondaSpec, CondaSpec] ] = defaultdict(dict) logger.info("Checking for new versions") for s in sorted(available_specs, key=key_fn): - key = s.version.with_version_triple() - if key in existing_versions or key.version_str.info() <= (4, 3, 30): - logger.debug("Ignoring version %s (too old or already exists)", s) + key = s.version + vv = key.version_str.info() + + reason = None + if key in existing_versions: + reason = "already exists" + elif key.version_str.info() <= (4, 3, 30): + reason = "too old" + elif len(key.version_str.info()) >= 4: + reason = "ignoring hotfix releases" + + if reason: + logger.debug("Ignoring version %(s)s (%(reason)s)", locals()) continue - to_add[key][s.with_version_triple()] = s + to_add[key][s] = s logger.info("Writing %s scripts", len(to_add)) for ver, d in to_add.items(): specs = list(d.values()) fpath = out_dir / ver.to_filename() script_str = make_script(specs) - logger.debug("Writing script for %s", ver) + logger.info("Writing script for %s", ver) if parsed.dry_run: print(f"Would write spec to {fpath}:\n" + textwrap.indent(script_str, " ")) else: From e9f95065adc96d4b25543ac08a406da1c02ebfed Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 6 Jun 2022 03:09:56 +0300 Subject: [PATCH 0443/1324] Add Anaconda 2019.10, 2021.04, 2022.05 --- .../share/python-build/anaconda2-2019.10 | 19 +++++++++++++ .../share/python-build/anaconda3-2021.04 | 25 +++++++++++++++++ .../share/python-build/anaconda3-2022.05 | 28 +++++++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda2-2019.10 create mode 100644 plugins/python-build/share/python-build/anaconda3-2021.04 create mode 100644 plugins/python-build/share/python-build/anaconda3-2022.05 diff --git a/plugins/python-build/share/python-build/anaconda2-2019.10 b/plugins/python-build/share/python-build/anaconda2-2019.10 new file mode 100644 index 0000000000..96c0c8241b --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda2-2019.10 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-ppc64le" ) + install_script "Anaconda2-2019.10-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda2-2019.10-Linux-ppc64le.sh#6b9809bf5d36782bfa1e35b791d983a0" "anaconda" verify_py27 + ;; +"Linux-x86_64" ) + install_script "Anaconda2-2019.10-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda2-2019.10-Linux-x86_64.sh#69c64167b8cf3a8fc6b50d12d8476337" "anaconda" verify_py27 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda2-2019.10-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda2-2019.10-MacOSX-x86_64.sh#311aeb49cbe6d296f499efcd01a73f5e" "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 diff --git a/plugins/python-build/share/python-build/anaconda3-2021.04 b/plugins/python-build/share/python-build/anaconda3-2021.04 new file mode 100644 index 0000000000..5a59a848ad --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2021.04 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2021.04-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2021.04-Linux-aarch64.sh#14f48f5d1310478b11940a3b96eec7b6" "anaconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2021.04-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2021.04-Linux-ppc64le.sh#e5c8220526b95293e669734f91194acc" "anaconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2021.04-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2021.04-Linux-s390x.sh#e61fac26bf61bc5c3e3c1a93abc4d8e2" "anaconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2021.04-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2021.04-Linux-x86_64.sh#230f2c3c343ee58073bf41bd896dd76c" "anaconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2021.04-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2021.04-MacOSX-x86_64.sh#3caed29ad5564b3567676504669342dc" "anaconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/anaconda3-2022.05 b/plugins/python-build/share/python-build/anaconda3-2022.05 new file mode 100644 index 0000000000..3fd8b10069 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2022.05 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2022.05-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-aarch64.sh#7e822f5622fa306c0aa42430ba884454" "anaconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2022.05-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-ppc64le.sh#166b576c7e9d438b0a80840f94b44827" "anaconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2022.05-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-s390x.sh#00ba3bf29ac51db5e0954b6f217fa468" "anaconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2022.05-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh#a01150aff48fcb6fcd6472381652de04" "anaconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2022.05-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-MacOSX-arm64.sh#c35c8bdbeeda5e5ffa5b79d1f5ee8082" "anaconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2022.05-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-MacOSX-x86_64.sh#5319de6536212892dd2da8b70d602ee1" "anaconda" verify_py39 + ;; +* ) + { 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 From 42cace010b8c7684bafdc5a58d4456d59c816a8d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 8 Jun 2022 20:36:10 +0300 Subject: [PATCH 0444/1324] CI: workaround MacOS jobs hanging for some Anaconda releases Shims from executables bundled with some older Anaconda releases cause MacOS script check jobs to hang at the end --- .github/workflows/modified_scripts_build.yml | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 9750fc93f1..15ca649753 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -34,15 +34,15 @@ jobs: - run: | brew install openssl openssl@1.1 readline sqlite3 xz zlib - run: | - echo "PYENV_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV - - run: | - echo $PYENV_ROOT + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | pyenv install ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} - - run: python --version - - run: python -m pip --version + - run: | + python --version + python -m pip --version - shell: python # Prove that actual Python == expected Python env: EXPECTED_PYTHON: ${{ matrix.python-version }} @@ -54,6 +54,10 @@ jobs: os.environ['EXPECTED_PYTHON'], 'bin') assert os.path.dirname(sys.executable) == correct_dir + # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS + - run: | + pyenv global system + rm -f "$(pyenv root)"/shims/* ubuntu_build: needs: discover_modified_scripts @@ -72,9 +76,8 @@ jobs: wget curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - run: | - echo "PYENV_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV - - run: | - echo $PYENV_ROOT + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | pyenv install ${{ matrix.python-version }} From 97039ca1afb6b84cb4a8b0fd6f0f9d85a75eac35 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 8 Jun 2022 23:23:01 +0300 Subject: [PATCH 0445/1324] Fix accidental typo --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c93589ae2f..5606cd7c1c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1300,7 +1300,7 @@ require_osx_version() { configured_with_package_dir() { local package_var_name="$(capitalize "$1")" - shift 3 + shift 1 local PACKAGE_CONFIGURE_OPTS="${package_var_name}_CONFIGURE_OPTS" local PACKAGE_CONFIGURE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]" local arg flag From c4fd08e6fbda66373039937dac2aa0d8f1072a93 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 9 Jun 2022 02:52:50 +0300 Subject: [PATCH 0446/1324] README: Link to CONTRIBUTING and Python-Build's envvars --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4cf2449669..54877ebc7e 100644 --- a/README.md +++ b/README.md @@ -578,6 +578,9 @@ name | default | description `PYENV_DIR` | `$PWD` | Directory to start searching for `.python-version` files. `PYTHON_BUILD_ARIA2_OPTS` | | Used to pass additional parameters to [`aria2`](https://aria2.github.io/).
If the `aria2c` binary is available on `PATH`, pyenv uses `aria2c` instead of `curl` or `wget` to download the Python Source code. If you have an unstable internet connection, you can use this variable to instruct `aria2` to accelerate the download.
In most cases, you will only need to use `-x 10 -k 1M` as value to `PYTHON_BUILD_ARIA2_OPTS` environment variable +See also [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables) +for environment variables that can be used to customize the build. + ---- @@ -592,14 +595,20 @@ Tests are executed using [Bats](https://github.com/bats-core/bats-core): bats test bats/test/.bats -Please feel free to submit pull requests and file bugs on the [issue + +### Contributing + +Feel free to submit pull requests and file bugs on the [issue tracker](https://github.com/pyenv/pyenv/issues). +See [CONTRIBUTING.md](CONTRIBUTING.md) for more details on submitting changes. + ### Version History See [CHANGELOG.md](CHANGELOG.md). + ### License [The MIT License](LICENSE) From 7457df4190e6b7f84b2a1652f62c619326877f26 Mon Sep 17 00:00:00 2001 From: dand-oss Date: Fri, 10 Jun 2022 14:11:44 +0700 Subject: [PATCH 0447/1324] Add pyston-2.3.4 (#2390) Co-authored-by: Dan Dees --- .../share/python-build/pyston-2.3.4 | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 plugins/python-build/share/python-build/pyston-2.3.4 diff --git a/plugins/python-build/share/python-build/pyston-2.3.4 b/plugins/python-build/share/python-build/pyston-2.3.4 new file mode 100644 index 0000000000..e61eb09f42 --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.3.4 @@ -0,0 +1,23 @@ +# sha256sum used for checksum values + +# version of pyston +VER='2.3.4' +# alias for download location +DOWNLOAD='https://github.com/pyston/pyston/releases/download' + +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_${VER}_portable_amd64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_amd64.tar.gz#f8274bdead746f839791d785a5edad8a0b8723016b38751321c8eaf16ebd22db" "pyston" verify_py38 get_pip + ;; +"linux-aarch64" ) + install_package "pyston_${VER}_portable_arm64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_arm64.tar.gz#0733d120562c73f129af5633f8ea7faad3fdcab931f2234c02cd81f21eada2cd" "pyston" verify_py38 get_pip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston ${VER} binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From e48883b940a5c33984183116877719c43ba84fbf Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 11 Jun 2022 01:10:44 +0300 Subject: [PATCH 0448/1324] README: document cases of extended support --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index 54877ebc7e..0a8668f672 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Using Pyenv without shims](#using-pyenv-without-shims) * [Environment variables](#environment-variables) * **[Development](#development)** + * [Contributing](#contributing)** * [Version History](#version-history) * [License](#license) @@ -388,6 +389,18 @@ please visit the wiki page about [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). +#### Python versions with user-backed extended support + +For the following Python releases, Pyenv applies user-provided patches that add support for some newer environments. +Though we don't actively maintain those patches, since existing releases never change, +it's safe to assume that they will continue working until there are further incompatible changes +in some later version of those environments. + +* *3.7.8-3.7.13, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 +* *3.6.15* : MacOS 11+ and XCode 13.3 +* *2.7.18* : MacOS 10.15+ and Apple Silicon + + ### Switch between Python versions To select a Pyenv-installed Python as the version to use, run one From d59e7dff5e8d007b9bcf000e1d6abff60a7b859f Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 11 Jun 2022 01:14:46 +0300 Subject: [PATCH 0449/1324] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a8668f672..af883e74c8 100644 --- a/README.md +++ b/README.md @@ -53,6 +53,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Install Python build dependencies](#install-python-build-dependencies) * **[Usage](#usage)** * [Install additional Python versions](#install-additional-python-versions) + * [Python versions with extended support](#python-versions-with-extended-support) * [Switch between Python versions](#switch-between-python-versions) * [Uninstall Python versions](#uninstall-python-versions) * [Other operations](#other-operations) @@ -389,12 +390,12 @@ please visit the wiki page about [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). -#### Python versions with user-backed extended support +#### Python versions with extended support For the following Python releases, Pyenv applies user-provided patches that add support for some newer environments. Though we don't actively maintain those patches, since existing releases never change, it's safe to assume that they will continue working until there are further incompatible changes -in some later version of those environments. +in a later version of those environments. * *3.7.8-3.7.13, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 * *3.6.15* : MacOS 11+ and XCode 13.3 From 6620e0e2c5dd80cd5795a21aaffcebf492d357e1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 11 Jun 2022 01:24:51 +0300 Subject: [PATCH 0450/1324] CONTRIBUTING: softened working about EOL fixes --- CONTRIBUTING.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ed79a45181..602068df9e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -78,11 +78,13 @@ 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. -In addition to the above general requirements for release-specific fixes, +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. -* We do not provide any guarantees from our side that any such fix works or will continue working going forward. It's up to the interested parties to maintain it. +* 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. + 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. Advanced changes / adding new Python flavor support From 9f2cba3da8ddfcea9e9617cec6ef167b51404c16 Mon Sep 17 00:00:00 2001 From: Xiangyu Xu Date: Fri, 10 Jun 2022 17:28:58 -0500 Subject: [PATCH 0451/1324] Update anaconda3-2022.05 MacOSX arm64 md5 (#2391) --- plugins/python-build/share/python-build/anaconda3-2022.05 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/anaconda3-2022.05 b/plugins/python-build/share/python-build/anaconda3-2022.05 index 3fd8b10069..791a408497 100644 --- a/plugins/python-build/share/python-build/anaconda3-2022.05 +++ b/plugins/python-build/share/python-build/anaconda3-2022.05 @@ -12,7 +12,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Anaconda3-2022.05-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-x86_64.sh#a01150aff48fcb6fcd6472381652de04" "anaconda" verify_py39 ;; "MacOSX-arm64" ) - install_script "Anaconda3-2022.05-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-MacOSX-arm64.sh#c35c8bdbeeda5e5ffa5b79d1f5ee8082" "anaconda" verify_py39 + install_script "Anaconda3-2022.05-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-MacOSX-arm64.sh#24d985d2d380c51364d4793eb1840d29" "anaconda" verify_py39 ;; "MacOSX-x86_64" ) install_script "Anaconda3-2022.05-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.05-MacOSX-x86_64.sh#5319de6536212892dd2da8b70d602ee1" "anaconda" verify_py39 From 100871b48a5d3825c7b76b5c0e91449ce2af018e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 13 Jun 2022 18:22:21 +0300 Subject: [PATCH 0452/1324] Remove no-longer-needed commented line --- plugins/python-build/share/python-build/2.5.0 | 1 - plugins/python-build/share/python-build/2.5.1 | 1 - plugins/python-build/share/python-build/2.5.2 | 1 - plugins/python-build/share/python-build/2.5.3 | 1 - plugins/python-build/share/python-build/2.5.4 | 1 - plugins/python-build/share/python-build/2.5.5 | 1 - plugins/python-build/share/python-build/2.5.6 | 1 - plugins/python-build/share/python-build/2.6.0 | 1 - plugins/python-build/share/python-build/2.6.1 | 1 - plugins/python-build/share/python-build/2.6.2 | 1 - plugins/python-build/share/python-build/2.6.3 | 1 - plugins/python-build/share/python-build/2.6.4 | 1 - plugins/python-build/share/python-build/2.6.5 | 1 - plugins/python-build/share/python-build/2.6.6 | 1 - plugins/python-build/share/python-build/2.6.7 | 1 - plugins/python-build/share/python-build/2.6.8 | 1 - plugins/python-build/share/python-build/2.6.9 | 1 - plugins/python-build/share/python-build/2.7-dev | 1 - plugins/python-build/share/python-build/2.7.0 | 1 - plugins/python-build/share/python-build/2.7.1 | 1 - plugins/python-build/share/python-build/2.7.10 | 1 - plugins/python-build/share/python-build/2.7.11 | 1 - plugins/python-build/share/python-build/2.7.12 | 1 - plugins/python-build/share/python-build/2.7.13 | 1 - plugins/python-build/share/python-build/2.7.14 | 1 - plugins/python-build/share/python-build/2.7.15 | 1 - plugins/python-build/share/python-build/2.7.16 | 1 - plugins/python-build/share/python-build/2.7.17 | 1 - plugins/python-build/share/python-build/2.7.2 | 1 - plugins/python-build/share/python-build/2.7.3 | 1 - plugins/python-build/share/python-build/2.7.4 | 1 - plugins/python-build/share/python-build/2.7.5 | 1 - plugins/python-build/share/python-build/2.7.6 | 1 - plugins/python-build/share/python-build/2.7.7 | 1 - plugins/python-build/share/python-build/2.7.8 | 1 - plugins/python-build/share/python-build/2.7.9 | 1 - plugins/python-build/share/python-build/3.0.1 | 1 - plugins/python-build/share/python-build/3.1.0 | 1 - plugins/python-build/share/python-build/3.1.1 | 1 - plugins/python-build/share/python-build/3.1.2 | 1 - plugins/python-build/share/python-build/3.1.3 | 1 - plugins/python-build/share/python-build/3.1.4 | 1 - plugins/python-build/share/python-build/3.1.5 | 1 - plugins/python-build/share/python-build/3.10-dev | 1 - plugins/python-build/share/python-build/3.10.0 | 1 - plugins/python-build/share/python-build/3.10.1 | 1 - plugins/python-build/share/python-build/3.10.2 | 1 - plugins/python-build/share/python-build/3.10.3 | 1 - plugins/python-build/share/python-build/3.10.4 | 1 - plugins/python-build/share/python-build/3.10.5 | 1 - plugins/python-build/share/python-build/3.11-dev | 1 - plugins/python-build/share/python-build/3.11.0b3 | 1 - plugins/python-build/share/python-build/3.12-dev | 1 - plugins/python-build/share/python-build/3.2.0 | 1 - plugins/python-build/share/python-build/3.2.1 | 1 - plugins/python-build/share/python-build/3.2.2 | 1 - plugins/python-build/share/python-build/3.2.3 | 1 - plugins/python-build/share/python-build/3.2.4 | 1 - plugins/python-build/share/python-build/3.2.5 | 1 - plugins/python-build/share/python-build/3.2.6 | 1 - plugins/python-build/share/python-build/3.3.0 | 1 - plugins/python-build/share/python-build/3.3.1 | 1 - plugins/python-build/share/python-build/3.3.2 | 1 - plugins/python-build/share/python-build/3.3.3 | 1 - plugins/python-build/share/python-build/3.3.4 | 1 - plugins/python-build/share/python-build/3.3.5 | 1 - plugins/python-build/share/python-build/3.3.6 | 1 - plugins/python-build/share/python-build/3.3.7 | 1 - plugins/python-build/share/python-build/3.4-dev | 1 - plugins/python-build/share/python-build/3.4.0 | 1 - plugins/python-build/share/python-build/3.4.1 | 1 - plugins/python-build/share/python-build/3.4.10 | 1 - plugins/python-build/share/python-build/3.4.2 | 1 - plugins/python-build/share/python-build/3.4.3 | 1 - plugins/python-build/share/python-build/3.4.4 | 1 - plugins/python-build/share/python-build/3.4.5 | 1 - plugins/python-build/share/python-build/3.4.6 | 1 - plugins/python-build/share/python-build/3.4.7 | 1 - plugins/python-build/share/python-build/3.4.8 | 1 - plugins/python-build/share/python-build/3.4.9 | 1 - plugins/python-build/share/python-build/3.5-dev | 1 - plugins/python-build/share/python-build/3.5.0 | 1 - plugins/python-build/share/python-build/3.5.1 | 1 - plugins/python-build/share/python-build/3.5.10 | 1 - plugins/python-build/share/python-build/3.5.2 | 1 - plugins/python-build/share/python-build/3.5.3 | 1 - plugins/python-build/share/python-build/3.5.4 | 1 - plugins/python-build/share/python-build/3.5.5 | 1 - plugins/python-build/share/python-build/3.5.6 | 1 - plugins/python-build/share/python-build/3.5.7 | 1 - plugins/python-build/share/python-build/3.5.8 | 1 - plugins/python-build/share/python-build/3.5.9 | 1 - plugins/python-build/share/python-build/3.6-dev | 1 - plugins/python-build/share/python-build/3.6.0 | 1 - plugins/python-build/share/python-build/3.6.1 | 1 - plugins/python-build/share/python-build/3.6.10 | 1 - plugins/python-build/share/python-build/3.6.11 | 1 - plugins/python-build/share/python-build/3.6.12 | 1 - plugins/python-build/share/python-build/3.6.13 | 1 - plugins/python-build/share/python-build/3.6.14 | 1 - plugins/python-build/share/python-build/3.6.15 | 1 - plugins/python-build/share/python-build/3.6.2 | 1 - plugins/python-build/share/python-build/3.6.3 | 1 - plugins/python-build/share/python-build/3.6.4 | 1 - plugins/python-build/share/python-build/3.6.5 | 1 - plugins/python-build/share/python-build/3.6.6 | 1 - plugins/python-build/share/python-build/3.6.7 | 1 - plugins/python-build/share/python-build/3.6.8 | 1 - plugins/python-build/share/python-build/3.6.9 | 1 - plugins/python-build/share/python-build/3.7-dev | 1 - plugins/python-build/share/python-build/3.7.0 | 1 - plugins/python-build/share/python-build/3.7.1 | 1 - plugins/python-build/share/python-build/3.7.10 | 1 - plugins/python-build/share/python-build/3.7.11 | 1 - plugins/python-build/share/python-build/3.7.12 | 1 - plugins/python-build/share/python-build/3.7.13 | 1 - plugins/python-build/share/python-build/3.7.2 | 1 - plugins/python-build/share/python-build/3.7.3 | 1 - plugins/python-build/share/python-build/3.7.4 | 1 - plugins/python-build/share/python-build/3.7.5 | 1 - plugins/python-build/share/python-build/3.7.6 | 1 - plugins/python-build/share/python-build/3.7.7 | 1 - plugins/python-build/share/python-build/3.7.8 | 1 - plugins/python-build/share/python-build/3.7.9 | 1 - plugins/python-build/share/python-build/3.8-dev | 1 - plugins/python-build/share/python-build/3.8.0 | 1 - plugins/python-build/share/python-build/3.8.1 | 1 - plugins/python-build/share/python-build/3.8.10 | 1 - plugins/python-build/share/python-build/3.8.11 | 1 - plugins/python-build/share/python-build/3.8.12 | 1 - plugins/python-build/share/python-build/3.8.13 | 1 - plugins/python-build/share/python-build/3.8.2 | 1 - plugins/python-build/share/python-build/3.8.3 | 1 - plugins/python-build/share/python-build/3.8.4 | 1 - plugins/python-build/share/python-build/3.8.5 | 1 - plugins/python-build/share/python-build/3.8.6 | 1 - plugins/python-build/share/python-build/3.8.7 | 1 - plugins/python-build/share/python-build/3.8.8 | 1 - plugins/python-build/share/python-build/3.8.9 | 1 - plugins/python-build/share/python-build/3.9-dev | 1 - plugins/python-build/share/python-build/3.9.0 | 1 - plugins/python-build/share/python-build/3.9.1 | 1 - plugins/python-build/share/python-build/3.9.10 | 1 - plugins/python-build/share/python-build/3.9.11 | 1 - plugins/python-build/share/python-build/3.9.12 | 1 - plugins/python-build/share/python-build/3.9.13 | 1 - plugins/python-build/share/python-build/3.9.2 | 1 - plugins/python-build/share/python-build/3.9.4 | 1 - plugins/python-build/share/python-build/3.9.5 | 1 - plugins/python-build/share/python-build/3.9.6 | 1 - plugins/python-build/share/python-build/3.9.7 | 1 - plugins/python-build/share/python-build/3.9.8 | 1 - plugins/python-build/share/python-build/3.9.9 | 1 - plugins/python-build/share/python-build/micropython-1.10 | 1 - plugins/python-build/share/python-build/micropython-1.11 | 1 - plugins/python-build/share/python-build/micropython-1.12 | 1 - plugins/python-build/share/python-build/micropython-1.13 | 1 - plugins/python-build/share/python-build/micropython-1.14 | 1 - plugins/python-build/share/python-build/micropython-1.9.3 | 1 - plugins/python-build/share/python-build/micropython-1.9.4 | 1 - plugins/python-build/share/python-build/micropython-dev | 1 - plugins/python-build/share/python-build/nogil-3.9.10 | 1 - plugins/python-build/share/python-build/pypy-1.5-src | 1 - plugins/python-build/share/python-build/pypy-2.0-src | 1 - plugins/python-build/share/python-build/pypy-2.0.1-src | 1 - plugins/python-build/share/python-build/pypy-2.0.2-src | 1 - plugins/python-build/share/python-build/pypy-2.1-src | 1 - plugins/python-build/share/python-build/pypy-2.2-src | 1 - plugins/python-build/share/python-build/pypy-2.2.1-src | 1 - plugins/python-build/share/python-build/pypy-2.3-src | 1 - plugins/python-build/share/python-build/pypy-2.3.1-src | 1 - plugins/python-build/share/python-build/pypy-2.4.0-src | 1 - plugins/python-build/share/python-build/pypy-2.5.0-src | 1 - plugins/python-build/share/python-build/pypy-2.5.1-src | 1 - plugins/python-build/share/python-build/pypy-2.6.0-src | 1 - plugins/python-build/share/python-build/pypy-2.6.1-src | 1 - plugins/python-build/share/python-build/pypy-4.0.0-src | 1 - plugins/python-build/share/python-build/pypy-4.0.1-src | 1 - plugins/python-build/share/python-build/pypy-5.0.0-src | 1 - plugins/python-build/share/python-build/pypy-5.0.1-src | 1 - plugins/python-build/share/python-build/pypy-5.1-src | 1 - plugins/python-build/share/python-build/pypy-5.1.1-src | 1 - plugins/python-build/share/python-build/pypy-dev | 1 - plugins/python-build/share/python-build/pypy2-5.3-src | 1 - plugins/python-build/share/python-build/pypy2-5.3.1-src | 1 - plugins/python-build/share/python-build/pypy2-5.4-src | 1 - plugins/python-build/share/python-build/pypy2-5.4.1-src | 1 - plugins/python-build/share/python-build/pypy2-5.6.0-src | 1 - plugins/python-build/share/python-build/pypy2-5.7.0-src | 1 - plugins/python-build/share/python-build/pypy2-5.7.1-src | 1 - plugins/python-build/share/python-build/pypy2.7-5.10.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-5.8.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-5.9.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-6.0.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.0.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.1.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.1.1-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.2.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.0-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.1-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.2-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.3-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.4-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.5-src | 1 - plugins/python-build/share/python-build/pypy2.7-7.3.6-src | 1 - plugins/python-build/share/python-build/pypy3-2.3.1-src | 1 - plugins/python-build/share/python-build/pypy3-2.4.0-src | 1 - plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src | 1 - plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src | 1 - plugins/python-build/share/python-build/pypy3.5-5.10.0-src | 1 - plugins/python-build/share/python-build/pypy3.5-5.10.1-src | 1 - plugins/python-build/share/python-build/pypy3.5-5.7-beta-src | 1 - plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src | 1 - plugins/python-build/share/python-build/pypy3.5-5.8.0-src | 1 - plugins/python-build/share/python-build/pypy3.5-5.9.0-src | 1 - plugins/python-build/share/python-build/pypy3.5-6.0.0-src | 1 - plugins/python-build/share/python-build/pypy3.5-7.0.0-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.0.0-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.1.0-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.1.1-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.2.0-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.3.0-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.3.1-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.3.2-src | 1 - plugins/python-build/share/python-build/pypy3.6-7.3.3-src | 1 - plugins/python-build/share/python-build/pypy3.7-7.3.2-src | 1 - plugins/python-build/share/python-build/pypy3.7-7.3.3-src | 1 - plugins/python-build/share/python-build/pypy3.7-7.3.4-src | 1 - plugins/python-build/share/python-build/pypy3.7-7.3.5-src | 1 - plugins/python-build/share/python-build/pypy3.7-7.3.6-src | 1 - plugins/python-build/share/python-build/pypy3.8-7.3.6-src | 1 - plugins/python-build/share/python-build/pypy3.8-7.3.7-src | 1 - plugins/python-build/share/python-build/stackless-2.7-dev | 1 - plugins/python-build/share/python-build/stackless-2.7.10 | 1 - plugins/python-build/share/python-build/stackless-2.7.11 | 1 - plugins/python-build/share/python-build/stackless-2.7.12 | 1 - plugins/python-build/share/python-build/stackless-2.7.14 | 1 - plugins/python-build/share/python-build/stackless-2.7.16 | 1 - plugins/python-build/share/python-build/stackless-2.7.2 | 1 - plugins/python-build/share/python-build/stackless-2.7.3 | 1 - plugins/python-build/share/python-build/stackless-2.7.4 | 1 - plugins/python-build/share/python-build/stackless-2.7.5 | 1 - plugins/python-build/share/python-build/stackless-2.7.6 | 1 - plugins/python-build/share/python-build/stackless-2.7.7 | 1 - plugins/python-build/share/python-build/stackless-2.7.8 | 1 - plugins/python-build/share/python-build/stackless-2.7.9 | 1 - plugins/python-build/share/python-build/stackless-3.2.2 | 1 - plugins/python-build/share/python-build/stackless-3.2.5 | 1 - plugins/python-build/share/python-build/stackless-3.3.5 | 1 - plugins/python-build/share/python-build/stackless-3.3.7 | 1 - plugins/python-build/share/python-build/stackless-3.4-dev | 1 - plugins/python-build/share/python-build/stackless-3.4.2 | 1 - plugins/python-build/share/python-build/stackless-3.4.7 | 1 - plugins/python-build/share/python-build/stackless-3.5.4 | 1 - plugins/python-build/share/python-build/stackless-3.7.5 | 1 - plugins/python-build/share/python-build/stackless-dev | 1 - 256 files changed, 256 deletions(-) diff --git a/plugins/python-build/share/python-build/2.5.0 b/plugins/python-build/share/python-build/2.5.0 index f2eea6339f..b011bc1850 100644 --- a/plugins/python-build/share/python-build/2.5.0 +++ b/plugins/python-build/share/python-build/2.5.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5" "https://www.python.org/ftp/python/2.5/Python-2.5.tgz#d7bbf42e36003c6065cd19f3e67d283521858515ee923220f654131cebe1d8f2" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.5.1 b/plugins/python-build/share/python-build/2.5.1 index d62586bda6..37d5f94054 100644 --- a/plugins/python-build/share/python-build/2.5.1 +++ b/plugins/python-build/share/python-build/2.5.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5.1" "https://www.python.org/ftp/python/2.5.1/Python-2.5.1.tgz#1f5caee846049ca30d996f9403eefdb996295c4af664867e35dcc5eb36e4e7e8" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.5.2 b/plugins/python-build/share/python-build/2.5.2 index bff195383e..f69c6d5bc9 100644 --- a/plugins/python-build/share/python-build/2.5.2 +++ b/plugins/python-build/share/python-build/2.5.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5.2" "https://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz#834afe8a88adaf623b05ac5dd6700dd5bb5d0d5553fc74ad529359a3496e4ae3" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.5.3 b/plugins/python-build/share/python-build/2.5.3 index 1e34475815..23a148b75d 100644 --- a/plugins/python-build/share/python-build/2.5.3 +++ b/plugins/python-build/share/python-build/2.5.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5.3" "https://www.python.org/ftp/python/2.5.3/Python-2.5.3.tgz#c3fee607d20a77dfb72ea2e627eb4d95d25c735603435abde62c57015a0445bd" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.5.4 b/plugins/python-build/share/python-build/2.5.4 index b976863e89..982d07bfec 100644 --- a/plugins/python-build/share/python-build/2.5.4 +++ b/plugins/python-build/share/python-build/2.5.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5.4" "https://www.python.org/ftp/python/2.5.4/Python-2.5.4.tgz#3d3b205611ee503a38a9433d5645a571668420bb219242c7f51af85f05664da6" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.5.5 b/plugins/python-build/share/python-build/2.5.5 index 1c9d65c71b..1aaaf84050 100644 --- a/plugins/python-build/share/python-build/2.5.5 +++ b/plugins/python-build/share/python-build/2.5.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5.5" "https://www.python.org/ftp/python/2.5.5/Python-2.5.5.tgz#03be1019c4fe93daeb53ba9e4294bf22a8ed4cb854cbd57e24e16f6bf63e2392" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.5.6 b/plugins/python-build/share/python-build/2.5.6 index e49ae2771b..de372bd5a7 100644 --- a/plugins/python-build/share/python-build/2.5.6 +++ b/plugins/python-build/share/python-build/2.5.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "readline-8.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_package "Python-2.5.6" "https://www.python.org/ftp/python/2.5.6/Python-2.5.6.tgz#c2e4377597241b1065677d23327c04d0f41945d370c61a491cc88be367234c5d" standard verify_py25 install_package "setuptools-1.4.2" "https://pypi.python.org/packages/source/s/setuptools/setuptools-1.4.2.tar.gz#263986a60a83aba790a5bffc7d009ac88114ba4e908e5c90e453b3bf2155dbbd" python diff --git a/plugins/python-build/share/python-build/2.6.0 b/plugins/python-build/share/python-build/2.6.0 index 484cf21e74..1093404b54 100644 --- a/plugins/python-build/share/python-build/2.6.0 +++ b/plugins/python-build/share/python-build/2.6.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6" "https://www.python.org/ftp/python/2.6/Python-2.6.tgz#7c2f21a968a737a59ed0729f4b1dc154dc3aa183c20be96055186fe43c6742d0" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.1 b/plugins/python-build/share/python-build/2.6.1 index 34d75a5982..4718a5e203 100644 --- a/plugins/python-build/share/python-build/2.6.1 +++ b/plugins/python-build/share/python-build/2.6.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.1" "https://www.python.org/ftp/python/2.6.1/Python-2.6.1.tgz#fb65e93678e1327e3e8559cc56e1e00ed8c07162b21287a3502677892c5c515c" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.2 b/plugins/python-build/share/python-build/2.6.2 index 2a90a003b6..0f8b061ed5 100644 --- a/plugins/python-build/share/python-build/2.6.2 +++ b/plugins/python-build/share/python-build/2.6.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.2" "https://www.python.org/ftp/python/2.6.2/Python-2.6.2.tgz#e37ecdf249f248f4fea227adbca09c778670b64fcb5e45947ec3e093cbc12c86" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.3 b/plugins/python-build/share/python-build/2.6.3 index d410c0a178..82f9d91a3c 100644 --- a/plugins/python-build/share/python-build/2.6.3 +++ b/plugins/python-build/share/python-build/2.6.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.3" "https://www.python.org/ftp/python/2.6.3/Python-2.6.3.tgz#a71b55540690425fd82ab00819aeb92c1b23cbb4730a0ccd2e25c833b22a812e" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.4 b/plugins/python-build/share/python-build/2.6.4 index 8b0e8beeea..70cc83643c 100644 --- a/plugins/python-build/share/python-build/2.6.4 +++ b/plugins/python-build/share/python-build/2.6.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.4" "https://www.python.org/ftp/python/2.6.4/Python-2.6.4.tgz#1a25a47506e4165704cfe2b07c0a064b0b5762a2d18b8fbdad5af688aeacd252" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.5 b/plugins/python-build/share/python-build/2.6.5 index 9955698944..1d711b5c33 100644 --- a/plugins/python-build/share/python-build/2.6.5 +++ b/plugins/python-build/share/python-build/2.6.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.5" "https://www.python.org/ftp/python/2.6.5/Python-2.6.5.tgz#b331dafdce3361834fee783795d4f68ae7cf7d379e9137c2d8e8531cea615ede" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.6 b/plugins/python-build/share/python-build/2.6.6 index 4c5f7980f9..2e3d6a1417 100644 --- a/plugins/python-build/share/python-build/2.6.6 +++ b/plugins/python-build/share/python-build/2.6.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.6" "https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz#372f66db46d773214e4619df1794a26449158f626138d4d2141a64c2f017fae1" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.7 b/plugins/python-build/share/python-build/2.6.7 index 8e329b8c2a..fd8592509a 100644 --- a/plugins/python-build/share/python-build/2.6.7 +++ b/plugins/python-build/share/python-build/2.6.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.7" "https://www.python.org/ftp/python/2.6.7/Python-2.6.7.tgz#a8093eace4cfd3e06b05f0deb5d765e3c6cec65908048640a8cadd7a948b3826" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.8 b/plugins/python-build/share/python-build/2.6.8 index 3954e847c7..41bb8c6a6f 100644 --- a/plugins/python-build/share/python-build/2.6.8 +++ b/plugins/python-build/share/python-build/2.6.8 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.8" "https://www.python.org/ftp/python/2.6.8/Python-2.6.8.tgz#5bf02a75ffa2fcaa5a3cabb8201998519b045541975622316888ea468d9512f7" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.6.9 b/plugins/python-build/share/python-build/2.6.9 index 338e2acd94..16b1a6f760 100644 --- a/plugins/python-build/share/python-build/2.6.9 +++ b/plugins/python-build/share/python-build/2.6.9 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.6.9" "https://www.python.org/ftp/python/2.6.9/Python-2.6.9.tgz#7277b1285d8a82f374ef6ebaac85b003266f7939b3f2a24a3af52f9523ac94db" standard verify_py26 ensurepip diff --git a/plugins/python-build/share/python-build/2.7-dev b/plugins/python-build/share/python-build/2.7-dev index 1aaa662eec..a97818ed76 100644 --- a/plugins/python-build/share/python-build/2.7-dev +++ b/plugins/python-build/share/python-build/2.7-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/2.7.0 b/plugins/python-build/share/python-build/2.7.0 index adf5dffe57..a7ca80522c 100644 --- a/plugins/python-build/share/python-build/2.7.0 +++ b/plugins/python-build/share/python-build/2.7.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7" "https://www.python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.1 b/plugins/python-build/share/python-build/2.7.1 index 582e44b9db..aa1de9845e 100644 --- a/plugins/python-build/share/python-build/2.7.1 +++ b/plugins/python-build/share/python-build/2.7.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.1" "https://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.10 b/plugins/python-build/share/python-build/2.7.10 index ba6e71d009..c6eb3de6a1 100644 --- a/plugins/python-build/share/python-build/2.7.10 +++ b/plugins/python-build/share/python-build/2.7.10 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.11 b/plugins/python-build/share/python-build/2.7.11 index 7a97ce9da6..f07099b5e5 100644 --- a/plugins/python-build/share/python-build/2.7.11 +++ b/plugins/python-build/share/python-build/2.7.11 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.12 b/plugins/python-build/share/python-build/2.7.12 index d85fd3c679..8fc9aed5a4 100644 --- a/plugins/python-build/share/python-build/2.7.12 +++ b/plugins/python-build/share/python-build/2.7.12 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.13 b/plugins/python-build/share/python-build/2.7.13 index cf62dcd19e..fb455431c3 100644 --- a/plugins/python-build/share/python-build/2.7.13 +++ b/plugins/python-build/share/python-build/2.7.13 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.14 b/plugins/python-build/share/python-build/2.7.14 index 4fa97dd52a..52e85da9af 100644 --- a/plugins/python-build/share/python-build/2.7.14 +++ b/plugins/python-build/share/python-build/2.7.14 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/2.7.15 b/plugins/python-build/share/python-build/2.7.15 index b1751f4043..1cd5e5e5b5 100644 --- a/plugins/python-build/share/python-build/2.7.15 +++ b/plugins/python-build/share/python-build/2.7.15 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/2.7.16 b/plugins/python-build/share/python-build/2.7.16 index e3938de350..78c4785a29 100644 --- a/plugins/python-build/share/python-build/2.7.16 +++ b/plugins/python-build/share/python-build/2.7.16 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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 diff --git a/plugins/python-build/share/python-build/2.7.17 b/plugins/python-build/share/python-build/2.7.17 index 85d8c5dd5a..f8b0641710 100644 --- a/plugins/python-build/share/python-build/2.7.17 +++ b/plugins/python-build/share/python-build/2.7.17 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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 diff --git a/plugins/python-build/share/python-build/2.7.2 b/plugins/python-build/share/python-build/2.7.2 index 910fc4b2e4..5620d4d7a9 100644 --- a/plugins/python-build/share/python-build/2.7.2 +++ b/plugins/python-build/share/python-build/2.7.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.2" "https://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#1d54b7096c17902c3f40ffce7e5b84e0072d0144024184fff184a84d563abbb3" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.3 b/plugins/python-build/share/python-build/2.7.3 index 9a3dd65751..c158ee672a 100644 --- a/plugins/python-build/share/python-build/2.7.3 +++ b/plugins/python-build/share/python-build/2.7.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.3" "https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#d4c20f2b5faf95999fd5fecb3f7d32071b0820516224a6d2b72932ab47a1cb8e" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.4 b/plugins/python-build/share/python-build/2.7.4 index 2dddb648f5..698898d2ad 100644 --- a/plugins/python-build/share/python-build/2.7.4 +++ b/plugins/python-build/share/python-build/2.7.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.4" "https://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz#98c5eb9c8e65effcc0122112ba17a0bce880aa23ecb560af56b55eb55632b81a" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.5 b/plugins/python-build/share/python-build/2.7.5 index dc0f3be45e..4c195479c1 100644 --- a/plugins/python-build/share/python-build/2.7.5 +++ b/plugins/python-build/share/python-build/2.7.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.5" "https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#8e1b5fa87b91835afb376a9c0d319d41feca07ffebc0288d97ab08d64f48afbf" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.6 b/plugins/python-build/share/python-build/2.7.6 index 03d3a6f01b..76bb57300a 100644 --- a/plugins/python-build/share/python-build/2.7.6 +++ b/plugins/python-build/share/python-build/2.7.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.6" "https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz#99c6860b70977befa1590029fae092ddb18db1d69ae67e8b9385b66ed104ba58" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.7 b/plugins/python-build/share/python-build/2.7.7 index 10a829423d..337ba8d91b 100644 --- a/plugins/python-build/share/python-build/2.7.7 +++ b/plugins/python-build/share/python-build/2.7.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.8 b/plugins/python-build/share/python-build/2.7.8 index 183c443ee3..7d759800f6 100644 --- a/plugins/python-build/share/python-build/2.7.8 +++ b/plugins/python-build/share/python-build/2.7.8 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.9 b/plugins/python-build/share/python-build/2.7.9 index 404b9971e3..2ba752ff4c 100644 --- a/plugins/python-build/share/python-build/2.7.9 +++ b/plugins/python-build/share/python-build/2.7.9 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.0.1 b/plugins/python-build/share/python-build/3.0.1 index c34bc83f3b..f7e16323d8 100644 --- a/plugins/python-build/share/python-build/3.0.1 +++ b/plugins/python-build/share/python-build/3.0.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.0.1" "https://www.python.org/ftp/python/3.0.1/Python-3.0.1.tgz#7d5f2feae9035f1d3d9e6bb7f092dbf374d6bb4b25abd0d2d11f13bba1cb04de" standard verify_py30 diff --git a/plugins/python-build/share/python-build/3.1.0 b/plugins/python-build/share/python-build/3.1.0 index 2f62dfb644..2ada28dd6f 100644 --- a/plugins/python-build/share/python-build/3.1.0 +++ b/plugins/python-build/share/python-build/3.1.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1" "https://www.python.org/ftp/python/3.1/Python-3.1.tgz#99a034cf574ea3c26412b0a0728126d7fd6ea9593d099d807a25d216ed031e6a" standard verify_py31 diff --git a/plugins/python-build/share/python-build/3.1.1 b/plugins/python-build/share/python-build/3.1.1 index 46b5ee4dc4..c11847063a 100644 --- a/plugins/python-build/share/python-build/3.1.1 +++ b/plugins/python-build/share/python-build/3.1.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.1" "https://www.python.org/ftp/python/3.1.1/Python-3.1.1.tgz#5d85d7bff11c4db44920af99f64f4227c816f897f6bfa9dd8a2611165ca5f0a1" standard verify_py31 diff --git a/plugins/python-build/share/python-build/3.1.2 b/plugins/python-build/share/python-build/3.1.2 index 7ab7fa4579..8575ec6d5c 100644 --- a/plugins/python-build/share/python-build/3.1.2 +++ b/plugins/python-build/share/python-build/3.1.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.2" "https://www.python.org/ftp/python/3.1.2/Python-3.1.2.tgz#dffbc0561a161a4a576c6059e6990a9859a0be16ba9b5736eabe4abbb2700d1c" standard verify_py31 diff --git a/plugins/python-build/share/python-build/3.1.3 b/plugins/python-build/share/python-build/3.1.3 index 7b3e8abf94..ab23c85e1d 100644 --- a/plugins/python-build/share/python-build/3.1.3 +++ b/plugins/python-build/share/python-build/3.1.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.3" "https://www.python.org/ftp/python/3.1.3/Python-3.1.3.tgz#6311823aeda8be6a7a2b67caaeff48abce6626c9940ba7ed81f9c978666a36bd" standard verify_py31 diff --git a/plugins/python-build/share/python-build/3.1.4 b/plugins/python-build/share/python-build/3.1.4 index 34496027f0..d6a8f20aef 100644 --- a/plugins/python-build/share/python-build/3.1.4 +++ b/plugins/python-build/share/python-build/3.1.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.4" "https://www.python.org/ftp/python/3.1.4/Python-3.1.4.tgz#fadc05ea6d05360cff189944a85ecd2180bbc308784d168b350450e70bbdd846" standard verify_py31 diff --git a/plugins/python-build/share/python-build/3.1.5 b/plugins/python-build/share/python-build/3.1.5 index 013f22b1d8..741912822b 100644 --- a/plugins/python-build/share/python-build/3.1.5 +++ b/plugins/python-build/share/python-build/3.1.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.1.5" "https://www.python.org/ftp/python/3.1.5/Python-3.1.5.tgz#d12dae6d06f52ef6bf1271db4d5b4d14b5dd39813e324314e72b648ef1bc0103" standard verify_py31 diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index 516081b1d5..a7088bfbf9 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.10.0 b/plugins/python-build/share/python-build/3.10.0 index 8ddbea6e0a..b55ce42a50 100644 --- a/plugins/python-build/share/python-build/3.10.0 +++ b/plugins/python-build/share/python-build/3.10.0 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.10.1 b/plugins/python-build/share/python-build/3.10.1 index 244d6e75b0..7a2f71a411 100644 --- a/plugins/python-build/share/python-build/3.10.1 +++ b/plugins/python-build/share/python-build/3.10.1 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.10.2 b/plugins/python-build/share/python-build/3.10.2 index f911bcf7e5..9e92b000b1 100644 --- a/plugins/python-build/share/python-build/3.10.2 +++ b/plugins/python-build/share/python-build/3.10.2 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.10.3 b/plugins/python-build/share/python-build/3.10.3 index 9c0f27f384..116a3a8a68 100644 --- a/plugins/python-build/share/python-build/3.10.3 +++ b/plugins/python-build/share/python-build/3.10.3 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.10.4 b/plugins/python-build/share/python-build/3.10.4 index 74f72306ac..16bf24c735 100644 --- a/plugins/python-build/share/python-build/3.10.4 +++ b/plugins/python-build/share/python-build/3.10.4 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.10.5 b/plugins/python-build/share/python-build/3.10.5 index f29b0723b1..71be01eb8b 100644 --- a/plugins/python-build/share/python-build/3.10.5 +++ b/plugins/python-build/share/python-build/3.10.5 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.11-dev b/plugins/python-build/share/python-build/3.11-dev index 7970e0cf61..c1865cddee 100644 --- a/plugins/python-build/share/python-build/3.11-dev +++ b/plugins/python-build/share/python-build/3.11-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.11.0b3 b/plugins/python-build/share/python-build/3.11.0b3 index a16a767152..5e8e390d29 100644 --- a/plugins/python-build/share/python-build/3.11.0b3 +++ b/plugins/python-build/share/python-build/3.11.0b3 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index 5d6748027f..08396a674c 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.2.0 b/plugins/python-build/share/python-build/3.2.0 index 6daa00e2e3..b3877d37da 100644 --- a/plugins/python-build/share/python-build/3.2.0 +++ b/plugins/python-build/share/python-build/3.2.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2" "https://www.python.org/ftp/python/3.2/Python-3.2.tgz#27b35bfcbbf01de9564c0265d72b58ba3ff3d56df0615765372f2aa09dc20da9" standard verify_py32 diff --git a/plugins/python-build/share/python-build/3.2.1 b/plugins/python-build/share/python-build/3.2.1 index 44d27f1f05..9296b988fb 100644 --- a/plugins/python-build/share/python-build/3.2.1 +++ b/plugins/python-build/share/python-build/3.2.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.1" "https://www.python.org/ftp/python/3.2.1/Python-3.2.1.tgz#7cff29d984696d9fe8c7bea54da5b9ad36acef33ff5cf0d3e37e4d12fb21c572" standard verify_py32 diff --git a/plugins/python-build/share/python-build/3.2.2 b/plugins/python-build/share/python-build/3.2.2 index fe6fce6f90..554eb470b6 100644 --- a/plugins/python-build/share/python-build/3.2.2 +++ b/plugins/python-build/share/python-build/3.2.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.2" "https://www.python.org/ftp/python/3.2.2/Python-3.2.2.tgz#acc6a13cb4fed0b7e86716324a8437e326645b8076177eede5a0cad99ec0313c" standard verify_py32 diff --git a/plugins/python-build/share/python-build/3.2.3 b/plugins/python-build/share/python-build/3.2.3 index ffda24bfb7..9b5e4e0e08 100644 --- a/plugins/python-build/share/python-build/3.2.3 +++ b/plugins/python-build/share/python-build/3.2.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.3" "https://www.python.org/ftp/python/3.2.3/Python-3.2.3.tgz#74c33e165edef7532cef95fd9a325a06878b5bfc8a5d038161573f283eaf9809" standard verify_py32 diff --git a/plugins/python-build/share/python-build/3.2.4 b/plugins/python-build/share/python-build/3.2.4 index 567602d338..12d76bbc36 100644 --- a/plugins/python-build/share/python-build/3.2.4 +++ b/plugins/python-build/share/python-build/3.2.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.4" "https://www.python.org/ftp/python/3.2.4/Python-3.2.4.tgz#71c3139908ccc1c544ba1e331a3c22b3f1c09f562438a054fd6f4e2628de8b9a" standard verify_py32 diff --git a/plugins/python-build/share/python-build/3.2.5 b/plugins/python-build/share/python-build/3.2.5 index ceb9811c36..aad4f68dd2 100644 --- a/plugins/python-build/share/python-build/3.2.5 +++ b/plugins/python-build/share/python-build/3.2.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.2.5" "https://www.python.org/ftp/python/3.2.5/Python-3.2.5.tgz#5eae0ab92a0bb9e3a1bf9c7cd046bc3de58996b049bd894d095978b6b085099f" standard verify_py32 diff --git a/plugins/python-build/share/python-build/3.2.6 b/plugins/python-build/share/python-build/3.2.6 index 695c7976e1..b396084c5d 100644 --- a/plugins/python-build/share/python-build/3.2.6 +++ b/plugins/python-build/share/python-build/3.2.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.3.0 b/plugins/python-build/share/python-build/3.3.0 index 92e623e6cf..544d841b59 100644 --- a/plugins/python-build/share/python-build/3.3.0 +++ b/plugins/python-build/share/python-build/3.3.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.0" "https://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz#cfe531eaace2503e13a74addc7f4a89482e99f8b8fca51b469ae5c83f450604e" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.1 b/plugins/python-build/share/python-build/3.3.1 index 76c2ea9cf3..177f7c1577 100644 --- a/plugins/python-build/share/python-build/3.3.1 +++ b/plugins/python-build/share/python-build/3.3.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.1" "https://www.python.org/ftp/python/3.3.1/Python-3.3.1.tgz#671dc3632f311e63c6733703aa0a1ad90c99277ddc8299d39e487718a50319bd" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.2 b/plugins/python-build/share/python-build/3.3.2 index 0760cae16e..bce93944e5 100644 --- a/plugins/python-build/share/python-build/3.3.2 +++ b/plugins/python-build/share/python-build/3.3.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.2" "https://www.python.org/ftp/python/3.3.2/Python-3.3.2.tgz#de664fca3b8e0ab20fb42bfed1a36e26f116f1853e88ada12dbc938761036172" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.3 b/plugins/python-build/share/python-build/3.3.3 index cde48bdf43..6b7010dc22 100644 --- a/plugins/python-build/share/python-build/3.3.3 +++ b/plugins/python-build/share/python-build/3.3.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.3" "https://www.python.org/ftp/python/3.3.3/Python-3.3.3.tgz#30b60839bfe0ae8a2dba11e909328459bb8ee4a258afe7494b06b2ceda080efc" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.4 b/plugins/python-build/share/python-build/3.3.4 index 8f1c60c513..966a808269 100644 --- a/plugins/python-build/share/python-build/3.3.4 +++ b/plugins/python-build/share/python-build/3.3.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.4" "https://www.python.org/ftp/python/3.3.4/Python-3.3.4.tgz#ea055db9dd004a6ecd7690abc9734573763686dd768122316bae2dfd026412af" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.5 b/plugins/python-build/share/python-build/3.3.5 index d38f9c731a..95056692fd 100644 --- a/plugins/python-build/share/python-build/3.3.5 +++ b/plugins/python-build/share/python-build/3.3.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-3.3.5" "https://www.python.org/ftp/python/3.3.5/Python-3.3.5.tgz#916bc57dd8524dc27429bebae7b39d6942742cf9699b875b2b496a3d960c7168" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/3.3.6 b/plugins/python-build/share/python-build/3.3.6 index 395693bbac..9e0ebb1003 100644 --- a/plugins/python-build/share/python-build/3.3.6 +++ b/plugins/python-build/share/python-build/3.3.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.3.7 b/plugins/python-build/share/python-build/3.3.7 index 833efe58db..7ed1477cc8 100644 --- a/plugins/python-build/share/python-build/3.3.7 +++ b/plugins/python-build/share/python-build/3.3.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4-dev b/plugins/python-build/share/python-build/3.4-dev index c7bfb740da..1965cc26bf 100644 --- a/plugins/python-build/share/python-build/3.4-dev +++ b/plugins/python-build/share/python-build/3.4-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.4.0 b/plugins/python-build/share/python-build/3.4.0 index 6941b9828e..64efa3e314 100644 --- a/plugins/python-build/share/python-build/3.4.0 +++ b/plugins/python-build/share/python-build/3.4.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.1 b/plugins/python-build/share/python-build/3.4.1 index a0a788e872..e69c40a155 100644 --- a/plugins/python-build/share/python-build/3.4.1 +++ b/plugins/python-build/share/python-build/3.4.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.10 b/plugins/python-build/share/python-build/3.4.10 index 00c680f7cc..4ee2a250aa 100644 --- a/plugins/python-build/share/python-build/3.4.10 +++ b/plugins/python-build/share/python-build/3.4.10 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 has_tar_xz_support \ diff --git a/plugins/python-build/share/python-build/3.4.2 b/plugins/python-build/share/python-build/3.4.2 index a768abcab3..c02ce30746 100644 --- a/plugins/python-build/share/python-build/3.4.2 +++ b/plugins/python-build/share/python-build/3.4.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.3 b/plugins/python-build/share/python-build/3.4.3 index 176700e3c1..138b052889 100644 --- a/plugins/python-build/share/python-build/3.4.3 +++ b/plugins/python-build/share/python-build/3.4.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.4 b/plugins/python-build/share/python-build/3.4.4 index 9a617b7386..2a814cea48 100644 --- a/plugins/python-build/share/python-build/3.4.4 +++ b/plugins/python-build/share/python-build/3.4.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.5 b/plugins/python-build/share/python-build/3.4.5 index e03bee4a74..8d887ad2a6 100644 --- a/plugins/python-build/share/python-build/3.4.5 +++ b/plugins/python-build/share/python-build/3.4.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.6 b/plugins/python-build/share/python-build/3.4.6 index edc980601c..5c5c3370a6 100644 --- a/plugins/python-build/share/python-build/3.4.6 +++ b/plugins/python-build/share/python-build/3.4.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.7 b/plugins/python-build/share/python-build/3.4.7 index 66f60b28aa..42032cc953 100644 --- a/plugins/python-build/share/python-build/3.4.7 +++ b/plugins/python-build/share/python-build/3.4.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.8 b/plugins/python-build/share/python-build/3.4.8 index 180f9246fd..69b69c3fbc 100644 --- a/plugins/python-build/share/python-build/3.4.8 +++ b/plugins/python-build/share/python-build/3.4.8 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.9 b/plugins/python-build/share/python-build/3.4.9 index d9d56b98e8..1718c73b70 100644 --- a/plugins/python-build/share/python-build/3.4.9 +++ b/plugins/python-build/share/python-build/3.4.9 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.5-dev b/plugins/python-build/share/python-build/3.5-dev index d8aed1a179..212f0f4a46 100644 --- a/plugins/python-build/share/python-build/3.5-dev +++ b/plugins/python-build/share/python-build/3.5-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.0 b/plugins/python-build/share/python-build/3.5.0 index 3091d79342..3eda1df4f2 100644 --- a/plugins/python-build/share/python-build/3.5.0 +++ b/plugins/python-build/share/python-build/3.5.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.5.1 b/plugins/python-build/share/python-build/3.5.1 index 2ba893774c..ef4817ada9 100644 --- a/plugins/python-build/share/python-build/3.5.1 +++ b/plugins/python-build/share/python-build/3.5.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.5.10 b/plugins/python-build/share/python-build/3.5.10 index 1e6d9c3e06..1c6c8e3680 100644 --- a/plugins/python-build/share/python-build/3.5.10 +++ b/plugins/python-build/share/python-build/3.5.10 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.2 b/plugins/python-build/share/python-build/3.5.2 index 23133f22cb..b0f47c7812 100644 --- a/plugins/python-build/share/python-build/3.5.2 +++ b/plugins/python-build/share/python-build/3.5.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.5.3 b/plugins/python-build/share/python-build/3.5.3 index 54b6a25058..a2554690e0 100644 --- a/plugins/python-build/share/python-build/3.5.3 +++ b/plugins/python-build/share/python-build/3.5.3 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.4 b/plugins/python-build/share/python-build/3.5.4 index 17d43a2305..5b88188971 100644 --- a/plugins/python-build/share/python-build/3.5.4 +++ b/plugins/python-build/share/python-build/3.5.4 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.5 b/plugins/python-build/share/python-build/3.5.5 index 481c421af4..22dbb3d3dd 100644 --- a/plugins/python-build/share/python-build/3.5.5 +++ b/plugins/python-build/share/python-build/3.5.5 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.6 b/plugins/python-build/share/python-build/3.5.6 index 0a9acaf5c5..0d4c15fea1 100644 --- a/plugins/python-build/share/python-build/3.5.6 +++ b/plugins/python-build/share/python-build/3.5.6 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.7 b/plugins/python-build/share/python-build/3.5.7 index 9204cf7c32..6bfb0fea2e 100644 --- a/plugins/python-build/share/python-build/3.5.7 +++ b/plugins/python-build/share/python-build/3.5.7 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.8 b/plugins/python-build/share/python-build/3.5.8 index c03879a680..4a4ce5189a 100644 --- a/plugins/python-build/share/python-build/3.5.8 +++ b/plugins/python-build/share/python-build/3.5.8 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.5.9 b/plugins/python-build/share/python-build/3.5.9 index 4edf7f4d35..a9d8858011 100644 --- a/plugins/python-build/share/python-build/3.5.9 +++ b/plugins/python-build/share/python-build/3.5.9 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6-dev b/plugins/python-build/share/python-build/3.6-dev index e7ede1fc95..cc56e47855 100644 --- a/plugins/python-build/share/python-build/3.6-dev +++ b/plugins/python-build/share/python-build/3.6-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.0 b/plugins/python-build/share/python-build/3.6.0 index 560d277f85..d267359dec 100644 --- a/plugins/python-build/share/python-build/3.6.0 +++ b/plugins/python-build/share/python-build/3.6.0 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.1 b/plugins/python-build/share/python-build/3.6.1 index 0ce3023858..577de98014 100644 --- a/plugins/python-build/share/python-build/3.6.1 +++ b/plugins/python-build/share/python-build/3.6.1 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.10 b/plugins/python-build/share/python-build/3.6.10 index 9292eded4d..b391eb05b2 100644 --- a/plugins/python-build/share/python-build/3.6.10 +++ b/plugins/python-build/share/python-build/3.6.10 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.11 b/plugins/python-build/share/python-build/3.6.11 index 4744e4579e..1aa47f8fd4 100644 --- a/plugins/python-build/share/python-build/3.6.11 +++ b/plugins/python-build/share/python-build/3.6.11 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.12 b/plugins/python-build/share/python-build/3.6.12 index 5cdea86bde..d8c8894e81 100644 --- a/plugins/python-build/share/python-build/3.6.12 +++ b/plugins/python-build/share/python-build/3.6.12 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.13 b/plugins/python-build/share/python-build/3.6.13 index 8e6b85cd4c..660c180d74 100644 --- a/plugins/python-build/share/python-build/3.6.13 +++ b/plugins/python-build/share/python-build/3.6.13 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.14 b/plugins/python-build/share/python-build/3.6.14 index c823a2f7d7..8e04a67da4 100644 --- a/plugins/python-build/share/python-build/3.6.14 +++ b/plugins/python-build/share/python-build/3.6.14 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.6.15 b/plugins/python-build/share/python-build/3.6.15 index a305fbd2c8..7e5421a273 100644 --- a/plugins/python-build/share/python-build/3.6.15 +++ b/plugins/python-build/share/python-build/3.6.15 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.6.2 b/plugins/python-build/share/python-build/3.6.2 index 870d84656f..2b350da93e 100644 --- a/plugins/python-build/share/python-build/3.6.2 +++ b/plugins/python-build/share/python-build/3.6.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.3 b/plugins/python-build/share/python-build/3.6.3 index 23b97ac533..ed421dc614 100644 --- a/plugins/python-build/share/python-build/3.6.3 +++ b/plugins/python-build/share/python-build/3.6.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.4 b/plugins/python-build/share/python-build/3.6.4 index 2d7331e4b6..a3838e95b4 100644 --- a/plugins/python-build/share/python-build/3.6.4 +++ b/plugins/python-build/share/python-build/3.6.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.5 b/plugins/python-build/share/python-build/3.6.5 index 11be52dae6..c50e868455 100644 --- a/plugins/python-build/share/python-build/3.6.5 +++ b/plugins/python-build/share/python-build/3.6.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.6 b/plugins/python-build/share/python-build/3.6.6 index 6e68fb163e..a801eaeaf3 100644 --- a/plugins/python-build/share/python-build/3.6.6 +++ b/plugins/python-build/share/python-build/3.6.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.6.7 b/plugins/python-build/share/python-build/3.6.7 index 82f173b509..97a655eebf 100644 --- a/plugins/python-build/share/python-build/3.6.7 +++ b/plugins/python-build/share/python-build/3.6.7 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.8 b/plugins/python-build/share/python-build/3.6.8 index c838a75dad..f0c3036a10 100644 --- a/plugins/python-build/share/python-build/3.6.8 +++ b/plugins/python-build/share/python-build/3.6.8 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.6.9 b/plugins/python-build/share/python-build/3.6.9 index 4f3333fc60..14954dc1cc 100644 --- a/plugins/python-build/share/python-build/3.6.9 +++ b/plugins/python-build/share/python-build/3.6.9 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/3.7-dev b/plugins/python-build/share/python-build/3.7-dev index 359c8c00db..e414cfeb1b 100644 --- a/plugins/python-build/share/python-build/3.7-dev +++ b/plugins/python-build/share/python-build/3.7-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.0 b/plugins/python-build/share/python-build/3.7.0 index 079960a413..fcc533e734 100644 --- a/plugins/python-build/share/python-build/3.7.0 +++ b/plugins/python-build/share/python-build/3.7.0 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.1 b/plugins/python-build/share/python-build/3.7.1 index abfc4b38bb..de51729d56 100644 --- a/plugins/python-build/share/python-build/3.7.1 +++ b/plugins/python-build/share/python-build/3.7.1 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.10 b/plugins/python-build/share/python-build/3.7.10 index 29408a40ab..1d670e3860 100644 --- a/plugins/python-build/share/python-build/3.7.10 +++ b/plugins/python-build/share/python-build/3.7.10 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.11 b/plugins/python-build/share/python-build/3.7.11 index af638f7d87..56efbe8dd1 100644 --- a/plugins/python-build/share/python-build/3.7.11 +++ b/plugins/python-build/share/python-build/3.7.11 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.12 b/plugins/python-build/share/python-build/3.7.12 index 61dbb7781d..84ac796e0a 100644 --- a/plugins/python-build/share/python-build/3.7.12 +++ b/plugins/python-build/share/python-build/3.7.12 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.13 b/plugins/python-build/share/python-build/3.7.13 index bf898abd76..3ea799561b 100644 --- a/plugins/python-build/share/python-build/3.7.13 +++ b/plugins/python-build/share/python-build/3.7.13 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.7.2 b/plugins/python-build/share/python-build/3.7.2 index 7b18ceb354..93a68eeb7a 100644 --- a/plugins/python-build/share/python-build/3.7.2 +++ b/plugins/python-build/share/python-build/3.7.2 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.3 b/plugins/python-build/share/python-build/3.7.3 index 926b137d82..4aabb824a7 100644 --- a/plugins/python-build/share/python-build/3.7.3 +++ b/plugins/python-build/share/python-build/3.7.3 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.4 b/plugins/python-build/share/python-build/3.7.4 index 945db463fd..bd74855975 100644 --- a/plugins/python-build/share/python-build/3.7.4 +++ b/plugins/python-build/share/python-build/3.7.4 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.5 b/plugins/python-build/share/python-build/3.7.5 index 5578958f4e..1ff1c5ea6b 100644 --- a/plugins/python-build/share/python-build/3.7.5 +++ b/plugins/python-build/share/python-build/3.7.5 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.6 b/plugins/python-build/share/python-build/3.7.6 index 8547492014..a8c8dfa85e 100644 --- a/plugins/python-build/share/python-build/3.7.6 +++ b/plugins/python-build/share/python-build/3.7.6 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.7 b/plugins/python-build/share/python-build/3.7.7 index d7b45c3449..d6246a0f8c 100644 --- a/plugins/python-build/share/python-build/3.7.7 +++ b/plugins/python-build/share/python-build/3.7.7 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.8 b/plugins/python-build/share/python-build/3.7.8 index ee7c23371e..4be84f1113 100644 --- a/plugins/python-build/share/python-build/3.7.8 +++ b/plugins/python-build/share/python-build/3.7.8 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1j" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1j.tar.gz#aaf2fcb575cdf6491b98ab4829abf78a3dec8402b8b81efc8f23c00d443981bf" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.7.9 b/plugins/python-build/share/python-build/3.7.9 index 69b209e589..0935b2cd60 100644 --- a/plugins/python-build/share/python-build/3.7.9 +++ b/plugins/python-build/share/python-build/3.7.9 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8-dev b/plugins/python-build/share/python-build/3.8-dev index 14c5795ad6..d51d1cd66c 100644 --- a/plugins/python-build/share/python-build/3.8-dev +++ b/plugins/python-build/share/python-build/3.8-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.0 b/plugins/python-build/share/python-build/3.8.0 index de89be5a41..080e0142c4 100644 --- a/plugins/python-build/share/python-build/3.8.0 +++ b/plugins/python-build/share/python-build/3.8.0 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.1 b/plugins/python-build/share/python-build/3.8.1 index b5b43ab33d..d6a862bda0 100644 --- a/plugins/python-build/share/python-build/3.8.1 +++ b/plugins/python-build/share/python-build/3.8.1 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.10 b/plugins/python-build/share/python-build/3.8.10 index c2d72b9d88..4f48ec8828 100644 --- a/plugins/python-build/share/python-build/3.8.10 +++ b/plugins/python-build/share/python-build/3.8.10 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.11 b/plugins/python-build/share/python-build/3.8.11 index 5657747e05..da6fb07901 100644 --- a/plugins/python-build/share/python-build/3.8.11 +++ b/plugins/python-build/share/python-build/3.8.11 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.12 b/plugins/python-build/share/python-build/3.8.12 index 7aae84aef6..5134215062 100644 --- a/plugins/python-build/share/python-build/3.8.12 +++ b/plugins/python-build/share/python-build/3.8.12 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.13 b/plugins/python-build/share/python-build/3.8.13 index ab40129d34..1ebae394e7 100644 --- a/plugins/python-build/share/python-build/3.8.13 +++ b/plugins/python-build/share/python-build/3.8.13 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.8.2 b/plugins/python-build/share/python-build/3.8.2 index ee597b43d7..1afc7e240b 100644 --- a/plugins/python-build/share/python-build/3.8.2 +++ b/plugins/python-build/share/python-build/3.8.2 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.3 b/plugins/python-build/share/python-build/3.8.3 index 97048e456c..9d1641d486 100644 --- a/plugins/python-build/share/python-build/3.8.3 +++ b/plugins/python-build/share/python-build/3.8.3 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.4 b/plugins/python-build/share/python-build/3.8.4 index 3e91b60230..a0bb08e317 100644 --- a/plugins/python-build/share/python-build/3.8.4 +++ b/plugins/python-build/share/python-build/3.8.4 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.5 b/plugins/python-build/share/python-build/3.8.5 index a435766fe1..f311b4b117 100644 --- a/plugins/python-build/share/python-build/3.8.5 +++ b/plugins/python-build/share/python-build/3.8.5 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.6 b/plugins/python-build/share/python-build/3.8.6 index 3940df23c5..9fdb0524d4 100644 --- a/plugins/python-build/share/python-build/3.8.6 +++ b/plugins/python-build/share/python-build/3.8.6 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.7 b/plugins/python-build/share/python-build/3.8.7 index a4449717a8..66f1294778 100644 --- a/plugins/python-build/share/python-build/3.8.7 +++ b/plugins/python-build/share/python-build/3.8.7 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.8 b/plugins/python-build/share/python-build/3.8.8 index 48cbe2cf0d..124d83408c 100644 --- a/plugins/python-build/share/python-build/3.8.8 +++ b/plugins/python-build/share/python-build/3.8.8 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.8.9 b/plugins/python-build/share/python-build/3.8.9 index 7dd6eb4429..5f4677de23 100644 --- a/plugins/python-build/share/python-build/3.8.9 +++ b/plugins/python-build/share/python-build/3.8.9 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9-dev b/plugins/python-build/share/python-build/3.9-dev index 9019194d39..8133804206 100644 --- a/plugins/python-build/share/python-build/3.9-dev +++ b/plugins/python-build/share/python-build/3.9-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.0 b/plugins/python-build/share/python-build/3.9.0 index a76b1c8c4d..28e2ca1a8e 100644 --- a/plugins/python-build/share/python-build/3.9.0 +++ b/plugins/python-build/share/python-build/3.9.0 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 index ba0a7989e6..237743a5dc 100644 --- a/plugins/python-build/share/python-build/3.9.1 +++ b/plugins/python-build/share/python-build/3.9.1 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.10 b/plugins/python-build/share/python-build/3.9.10 index 40c6a3c3dd..0e68549a33 100644 --- a/plugins/python-build/share/python-build/3.9.10 +++ b/plugins/python-build/share/python-build/3.9.10 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.11 b/plugins/python-build/share/python-build/3.9.11 index 8179013a08..17cb140ba7 100644 --- a/plugins/python-build/share/python-build/3.9.11 +++ b/plugins/python-build/share/python-build/3.9.11 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.9.12 b/plugins/python-build/share/python-build/3.9.12 index dc48da5984..c21f77a538 100644 --- a/plugins/python-build/share/python-build/3.9.12 +++ b/plugins/python-build/share/python-build/3.9.12 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.9.13 b/plugins/python-build/share/python-build/3.9.13 index 64f737848a..2f457518ff 100644 --- a/plugins/python-build/share/python-build/3.9.13 +++ b/plugins/python-build/share/python-build/3.9.13 @@ -1,4 +1,3 @@ -#require_gcc 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 diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 index 3d741d2fa6..e4456eca47 100644 --- a/plugins/python-build/share/python-build/3.9.2 +++ b/plugins/python-build/share/python-build/3.9.2 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.4 b/plugins/python-build/share/python-build/3.9.4 index 9f164b30be..2e5cd7bf9c 100644 --- a/plugins/python-build/share/python-build/3.9.4 +++ b/plugins/python-build/share/python-build/3.9.4 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 index f6390889e1..2ec6a609fd 100644 --- a/plugins/python-build/share/python-build/3.9.5 +++ b/plugins/python-build/share/python-build/3.9.5 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.6 b/plugins/python-build/share/python-build/3.9.6 index 0de2f2456d..4ceccb838f 100644 --- a/plugins/python-build/share/python-build/3.9.6 +++ b/plugins/python-build/share/python-build/3.9.6 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.7 b/plugins/python-build/share/python-build/3.9.7 index 3aa1aa2881..012d505b93 100644 --- a/plugins/python-build/share/python-build/3.9.7 +++ b/plugins/python-build/share/python-build/3.9.7 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.8 b/plugins/python-build/share/python-build/3.9.8 index 5757252ea9..74c151af9a 100644 --- a/plugins/python-build/share/python-build/3.9.8 +++ b/plugins/python-build/share/python-build/3.9.8 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.9.9 b/plugins/python-build/share/python-build/3.9.9 index 71437275f4..320dec8dec 100644 --- a/plugins/python-build/share/python-build/3.9.9 +++ b/plugins/python-build/share/python-build/3.9.9 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/micropython-1.10 b/plugins/python-build/share/python-build/micropython-1.10 index 57df91f824..6bca881ce0 100644 --- a/plugins/python-build/share/python-build/micropython-1.10 +++ b/plugins/python-build/share/python-build/micropython-1.10 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.10.tar.xz#8488ec243217c4578f1cf2ed20e749344b01510a52d443da95304949cf7abfdb" \ || src="https://github.com/micropython/micropython/releases/download/v1.10/micropython-1.10.tar.gz#207de28a243d5be59c1d5433670a5c76472ece532b446cc25da6cf3c6e943fbc" diff --git a/plugins/python-build/share/python-build/micropython-1.11 b/plugins/python-build/share/python-build/micropython-1.11 index 5f264ef4f3..fb04d79a9d 100644 --- a/plugins/python-build/share/python-build/micropython-1.11 +++ b/plugins/python-build/share/python-build/micropython-1.11 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.11.tar.xz#c3d4918149e3b9427a318a8a78efb928f2b724123832f1feb4d7921af490269d" \ || src="https://github.com/micropython/micropython/releases/download/v1.11/micropython-1.11.tar.gz#2edda4ffe283899af6d7b59dd0a0a59f8b845fe0f26017f1a180661338eca35f" diff --git a/plugins/python-build/share/python-build/micropython-1.12 b/plugins/python-build/share/python-build/micropython-1.12 index cae1c6497f..ddb47c3427 100644 --- a/plugins/python-build/share/python-build/micropython-1.12 +++ b/plugins/python-build/share/python-build/micropython-1.12 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.12.tar.xz#181bfe82ba310a3f91540ee70d373f247141db3f9de8082fb189145df085d1b4" \ || src="https://github.com/micropython/micropython/releases/download/v1.12/micropython-1.12.tar.gz#98fd02366bca23a61c77bbf2b999a45cfc237132db66b5b0874378a5446d81ba" diff --git a/plugins/python-build/share/python-build/micropython-1.13 b/plugins/python-build/share/python-build/micropython-1.13 index 5557b8c66c..e883e848ad 100644 --- a/plugins/python-build/share/python-build/micropython-1.13 +++ b/plugins/python-build/share/python-build/micropython-1.13 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.13.tar.xz#fb5434ec1fd2f7d06733696b020a992e69005532bcb97a9b4158ec1fffbc9c1e" \ || src="https://github.com/micropython/micropython/releases/download/v1.13/micropython-1.13.tar.gz#9ab32eb2c19a682f6de7e9b4226de849c42cb92e1ecb4cf56438a75d763bd451" diff --git a/plugins/python-build/share/python-build/micropython-1.14 b/plugins/python-build/share/python-build/micropython-1.14 index cbc4f67f34..4aa5e8826d 100644 --- a/plugins/python-build/share/python-build/micropython-1.14 +++ b/plugins/python-build/share/python-build/micropython-1.14 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && { install=install_package; src="https://micropython.org/resources/source/micropython-1.14.tar.xz#97306156fdeab120a1244626c75a929bb820722afdfc1317dbd5dadef388d94c"; } \ || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.14.zip#9aff4d9d8231d93cb9dac2b239ff947d1f123a0fe7a58614c252474cdd3b88d9"; } diff --git a/plugins/python-build/share/python-build/micropython-1.9.3 b/plugins/python-build/share/python-build/micropython-1.9.3 index 08c4718a6b..bed5167a70 100644 --- a/plugins/python-build/share/python-build/micropython-1.9.3 +++ b/plugins/python-build/share/python-build/micropython-1.9.3 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.9.3.tar.xz#3aa37065f5ea8df372d36253d0ae6333c68572e577df8558d4b7b93e070c624d" \ || src="https://github.com/micropython/micropython/releases/download/v1.9.3/micropython-1.9.3.tar.gz#f94c0b4834edca625b86c0846c89e609ee8fbdbe98e7f719d5108d74b6b4945e" diff --git a/plugins/python-build/share/python-build/micropython-1.9.4 b/plugins/python-build/share/python-build/micropython-1.9.4 index a2c6483760..d0338c456e 100644 --- a/plugins/python-build/share/python-build/micropython-1.9.4 +++ b/plugins/python-build/share/python-build/micropython-1.9.4 @@ -1,4 +1,3 @@ -#require_gcc has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.9.4.tar.xz#1d358d99e908a94fd6dd0d6b448ee56c5830b609cf27a42e0db3bee40cc52a9e" \ || src="https://github.com/micropython/micropython/releases/download/v1.9.4/micropython-1.9.4.tar.gz#0db042011bffcbd65362b67eb3cca87eaefa9f2a55b747fa75e922c706b8ce1a" diff --git a/plugins/python-build/share/python-build/micropython-dev b/plugins/python-build/share/python-build/micropython-dev index 6b08129ee2..ee3d226ccf 100644 --- a/plugins/python-build/share/python-build/micropython-dev +++ b/plugins/python-build/share/python-build/micropython-dev @@ -1,2 +1 @@ -#require_gcc install_git micropython-dev https://github.com/micropython/micropython master micropython diff --git a/plugins/python-build/share/python-build/nogil-3.9.10 b/plugins/python-build/share/python-build/nogil-3.9.10 index 1d55cc87eb..6981b60c00 100644 --- a/plugins/python-build/share/python-build/nogil-3.9.10 +++ b/plugins/python-build/share/python-build/nogil-3.9.10 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/pypy-1.5-src b/plugins/python-build/share/python-build/pypy-1.5-src index bbd1ed4d93..cab008b098 100644 --- a/plugins/python-build/share/python-build/pypy-1.5-src +++ b/plugins/python-build/share/python-build/pypy-1.5-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-1.5-src" "https://foss.heptapod.net/pypy/pypy/-/archive/release-1.5/pypy-release-1.5.tar.gz" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.0-src b/plugins/python-build/share/python-build/pypy-2.0-src index 19f9f2b3a6..375b5a93e6 100644 --- a/plugins/python-build/share/python-build/pypy-2.0-src +++ b/plugins/python-build/share/python-build/pypy-2.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.0-src" "https://downloads.python.org/pypy/pypy-2.0-src.tar.bz2#d92dfd418beac915d3efc28f8a2090f3c13a89ec653419deff3d7112c5c111f3" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.0.1-src b/plugins/python-build/share/python-build/pypy-2.0.1-src index 6c06e4c48d..a8203af050 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.1-src +++ b/plugins/python-build/share/python-build/pypy-2.0.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.0.1-src" "https://downloads.python.org/pypy/pypy-2.0.1-src.tar.bz2#d1327bc325545939236ac609ec509548a545f97b1c933dedbe42f2482a130aa0" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.0.2-src b/plugins/python-build/share/python-build/pypy-2.0.2-src index 3bc1de6d60..b1fd1ced17 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.2-src +++ b/plugins/python-build/share/python-build/pypy-2.0.2-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.0.2-src" "https://downloads.python.org/pypy/pypy-2.0.2-src.tar.bz2#1991c90d6b98e2408b3790d4b57b71ec1c69346328b8321505ce8f6ab4544c3c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.1-src b/plugins/python-build/share/python-build/pypy-2.1-src index eb5fad2b3e..55e38ba194 100644 --- a/plugins/python-build/share/python-build/pypy-2.1-src +++ b/plugins/python-build/share/python-build/pypy-2.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.1-src" "https://downloads.python.org/pypy/pypy-2.1-src.tar.bz2#31b3066c9739b117d6bb1bdc485a919dc3b67370ec00437de1b74069943f7f17" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.2-src b/plugins/python-build/share/python-build/pypy-2.2-src index b9928c34d4..4aaf4fa430 100644 --- a/plugins/python-build/share/python-build/pypy-2.2-src +++ b/plugins/python-build/share/python-build/pypy-2.2-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.2-src" "https://downloads.python.org/pypy/pypy-2.2-src.tar.bz2#50fffcb86039e019530a63d656580bc53c173e5f19768bddd8699cd08448e04e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.2.1-src b/plugins/python-build/share/python-build/pypy-2.2.1-src index b83c91c940..e191f52b7c 100644 --- a/plugins/python-build/share/python-build/pypy-2.2.1-src +++ b/plugins/python-build/share/python-build/pypy-2.2.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.2.1-src" "https://downloads.python.org/pypy/pypy-2.2.1-src.tar.bz2#252045187e443656a2beb412dadac9296e8fe8db0f75a66ed5265db58c35035f" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3-src b/plugins/python-build/share/python-build/pypy-2.3-src index bd4b3f9ae5..96c7251717 100644 --- a/plugins/python-build/share/python-build/pypy-2.3-src +++ b/plugins/python-build/share/python-build/pypy-2.3-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-pypy-394146e9bb67" "https://downloads.python.org/pypy/pypy-2.3-src.tar.bz2#be2c271e7f9d7c0059a551ba1501713c00336e551e7f13107f0f34c721d95b0c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3.1-src b/plugins/python-build/share/python-build/pypy-2.3.1-src index 2e120b8880..326536e8a2 100644 --- a/plugins/python-build/share/python-build/pypy-2.3.1-src +++ b/plugins/python-build/share/python-build/pypy-2.3.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-pypy-32f35069a16d" "https://downloads.python.org/pypy/pypy-2.3.1-src.tar.bz2#6b10efab2be5502b475a25181870616e9ff83296b225aa2c7a7ec617c0ff78ef" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.4.0-src b/plugins/python-build/share/python-build/pypy-2.4.0-src index ed38e5b6ab..3122ef9a36 100644 --- a/plugins/python-build/share/python-build/pypy-2.4.0-src +++ b/plugins/python-build/share/python-build/pypy-2.4.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-pypy-c6ad44ecf5d8" "https://downloads.python.org/pypy/pypy-2.4.0-src.tar.bz2#38810007aee4885ca0703b566db6594dd7649adaaa287df7a1012f10e067740f" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.0-src b/plugins/python-build/share/python-build/pypy-2.5.0-src index e319ba7347..6e5bfccd28 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.0-src +++ b/plugins/python-build/share/python-build/pypy-2.5.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-pypy-10f1b29a2bd2" "https://downloads.python.org/pypy/pypy-2.5.0-src.tar.bz2#8ff1e131d8fefd79032dd81bcf3fde927e152d3acde5105356f6ffc1aad33f81" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.1-src b/plugins/python-build/share/python-build/pypy-2.5.1-src index e465d28baa..88f2c75e69 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.1-src +++ b/plugins/python-build/share/python-build/pypy-2.5.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.5.1-src" "https://downloads.python.org/pypy/pypy-2.5.1-src.tar.bz2#ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.0-src b/plugins/python-build/share/python-build/pypy-2.6.0-src index a1661d72f1..1ebe1d9003 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.0-src +++ b/plugins/python-build/share/python-build/pypy-2.6.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.6.0-src" "https://downloads.python.org/pypy/pypy-2.6.0-src.tar.bz2#9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.1-src b/plugins/python-build/share/python-build/pypy-2.6.1-src index aca1c9d491..b1482d547f 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.1-src +++ b/plugins/python-build/share/python-build/pypy-2.6.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-2.6.1-src" "https://downloads.python.org/pypy/pypy-2.6.1-src.tar.bz2#7fddd414c9348c2f899f79ad86adc3fc2b19443855b5243f58487e1f0ac46560" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.0-src b/plugins/python-build/share/python-build/pypy-4.0.0-src index e3491b26ef..451f0b5fe3 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.0-src +++ b/plugins/python-build/share/python-build/pypy-4.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-4.0.0-src" "https://downloads.python.org/pypy/pypy-4.0.0-src.tar.bz2#acff480e44ce92acd057f2e786775af36dc3c2cd12e9efc60a1ac6a562ad7b4d" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.1-src b/plugins/python-build/share/python-build/pypy-4.0.1-src index f85e228968..76aa78cfbd 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.1-src +++ b/plugins/python-build/share/python-build/pypy-4.0.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-4.0.1-src" "https://downloads.python.org/pypy/pypy-4.0.1-src.tar.bz2#29f5aa6ba17b34fd980e85172dfeb4086fdc373ad392b1feff2677d2d8aea23c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.0-src b/plugins/python-build/share/python-build/pypy-5.0.0-src index 1fbd6a8a67..e8d3b11935 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.0-src +++ b/plugins/python-build/share/python-build/pypy-5.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-5.0.0-src" "https://downloads.python.org/pypy/pypy-5.0.0-src.tar.bz2#89027b1b33553b53ff7733dc4838f0a76af23552c0d915d9f6de5875b8d7d4ab" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.1-src b/plugins/python-build/share/python-build/pypy-5.0.1-src index 4adb24c5ad..070add671d 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.1-src +++ b/plugins/python-build/share/python-build/pypy-5.0.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-5.0.1-src" "https://downloads.python.org/pypy/pypy-5.0.1-src.tar.bz2#1573c9284d3ec236c8e6ef3b954753932dff29462c54b5885b761d1ee68b6e05" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1-src b/plugins/python-build/share/python-build/pypy-5.1-src index c08e96ee96..a401980252 100644 --- a/plugins/python-build/share/python-build/pypy-5.1-src +++ b/plugins/python-build/share/python-build/pypy-5.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-5.1.0-src" "https://downloads.python.org/pypy/pypy-5.1.0-src.tar.bz2#16bab9501e942c0704abbf9cd6c4e950c6a76dc226cf1e447ea084916aef4714" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1.1-src b/plugins/python-build/share/python-build/pypy-5.1.1-src index a61263b34a..a8aed02fa7 100644 --- a/plugins/python-build/share/python-build/pypy-5.1.1-src +++ b/plugins/python-build/share/python-build/pypy-5.1.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy-5.1.1-src" "https://downloads.python.org/pypy/pypy-5.1.1-src.tar.bz2#ca3d943d7fbd78bb957ee9e5833ada4bb8506ac99a41b7628790e286a65ed2be" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-dev b/plugins/python-build/share/python-build/pypy-dev index 5e3633e776..02960d34f4 100644 --- a/plugins/python-build/share/python-build/pypy-dev +++ b/plugins/python-build/share/python-build/pypy-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_hg "pypy-dev" "https://foss.heptapod.net/pypy/pypy" "default" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.3-src b/plugins/python-build/share/python-build/pypy2-5.3-src index 0535d1bceb..e5d6829ae8 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3-src +++ b/plugins/python-build/share/python-build/pypy2-5.3-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.3.0-src" "https://downloads.python.org/pypy/pypy2-v5.3.0-src.tar.bz2#4142eb8f403810bc88a4911792bb5a502e152df95806e33e69050c828cd160d5" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.3.1-src b/plugins/python-build/share/python-build/pypy2-5.3.1-src index f127cd5797..04ae2f0fc6 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3.1-src +++ b/plugins/python-build/share/python-build/pypy2-5.3.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.3.1-src" "https://downloads.python.org/pypy/pypy2-v5.3.1-src.tar.bz2#31a52bab584abf3a0f0defd1bf9a29131dab08df43885e7eeddfc7dc9b71836e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.4-src b/plugins/python-build/share/python-build/pypy2-5.4-src index b932a5171b..a89eb6a134 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4-src +++ b/plugins/python-build/share/python-build/pypy2-5.4-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.4.0-src" "https://downloads.python.org/pypy/pypy2-v5.4.0-src.tar.bz2#d9568ebe9a14d0eaefde887d78f3cba63d665e95c0d234bb583932341f55a655" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.4.1-src b/plugins/python-build/share/python-build/pypy2-5.4.1-src index 4fd489867d..527c21a6f7 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4.1-src +++ b/plugins/python-build/share/python-build/pypy2-5.4.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.4.1-src" "https://downloads.python.org/pypy/pypy2-v5.4.1-src.tar.bz2#45dbc50c81498f6f1067201b8fc887074b43b84ee32cc47f15e7db17571e9352" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.6.0-src b/plugins/python-build/share/python-build/pypy2-5.6.0-src index e14e0c2a40..21894f560b 100644 --- a/plugins/python-build/share/python-build/pypy2-5.6.0-src +++ b/plugins/python-build/share/python-build/pypy2-5.6.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.6.0-src" "https://downloads.python.org/pypy/pypy2-v5.6.0-src.tar.bz2#7411448045f77eb9e087afdce66fe7eafda1876c9e17aad88cf891f762b608b0" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.7.0-src b/plugins/python-build/share/python-build/pypy2-5.7.0-src index 3f88f5f384..1674718d65 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.0-src +++ b/plugins/python-build/share/python-build/pypy2-5.7.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.7.0-src" "https://downloads.python.org/pypy/pypy2-v5.7.0-src.tar.bz2#e522ea7ca51b16ee5505f22b86803664b762a263a6d69ba84c359fcf8365ad3e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.7.1-src b/plugins/python-build/share/python-build/pypy2-5.7.1-src index 3f88f5f384..1674718d65 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.1-src +++ b/plugins/python-build/share/python-build/pypy2-5.7.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.7.0-src" "https://downloads.python.org/pypy/pypy2-v5.7.0-src.tar.bz2#e522ea7ca51b16ee5505f22b86803664b762a263a6d69ba84c359fcf8365ad3e" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.10.0-src b/plugins/python-build/share/python-build/pypy2.7-5.10.0-src index 9f3c20a791..5a1a85ab31 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.10.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.10.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.10.0-src" "https://downloads.python.org/pypy/pypy2-v5.10.0-src.tar.bz2#1209f2db718e6afda17528baa5138177a14a0938588a7d3e1b7c722c483079a8" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.8.0-src b/plugins/python-build/share/python-build/pypy2.7-5.8.0-src index a071bd0840..6f97bef4a3 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.8.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.8.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.8.0-src" "https://downloads.python.org/pypy/pypy2-v5.8.0-src.tar.bz2#504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.9.0-src b/plugins/python-build/share/python-build/pypy2.7-5.9.0-src index 8e33fa4596..350416940a 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.9.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.9.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v5.9.0-src" "https://downloads.python.org/pypy/pypy2-v5.9.0-src.tar.bz2#de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-6.0.0-src b/plugins/python-build/share/python-build/pypy2.7-6.0.0-src index 629dd1bc96..423f0cab15 100644 --- a/plugins/python-build/share/python-build/pypy2.7-6.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-6.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2-v6.0.0-src" "https://downloads.python.org/pypy/pypy2-v6.0.0-src.tar.bz2#6097ec5ee23d0d34d8cd27a1072bed041c8a080ad48731190a03a2223029212d" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.0.0-src b/plugins/python-build/share/python-build/pypy2.7-7.0.0-src index 21fbd93983..b5856cb630 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2.7-v7.0.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-src.tar.bz2#f51d8bbfc4e73a8a01820b7871a45d13c59f1399822cdf8a19388c69eb20c18c" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.0-src b/plugins/python-build/share/python-build/pypy2.7-7.1.0-src index 144218cb92..5c0a9357d1 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2.7-v7.1.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-src.tar.bz2#b051a71ea5b4fa27d0a744b28e6054661adfce8904dcc82500716b5edff5ce4b" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.1-src b/plugins/python-build/share/python-build/pypy2.7-7.1.1-src index c50458ad50..060e3ebc5c 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.1-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2.7-v7.1.1-src" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-src.tar.bz2#5f06bede6d71dce8dfbfe797aab26c8e35cb990e16b826914652dc093ad74451" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.2.0-src b/plugins/python-build/share/python-build/pypy2.7-7.2.0-src index 16cd24c617..abdb3e6e31 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.2.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.2.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2.7-v7.2.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-src.tar.bz2#55cb7757784fbe3952102447f65b27d80e6c885a464a7af1a9ce264492439dcc" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.0-src b/plugins/python-build/share/python-build/pypy2.7-7.3.0-src index 1619124ac7..ea593c5fa1 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy2.7-v7.3.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.0-src.tar.bz2#b0b25c7f8938ab0fedd8dedf26b9e73c490913b002b484c1b2f19d5844a518de" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.1-src b/plugins/python-build/share/python-build/pypy2.7-7.3.1-src index cfa833c39a..5a22502237 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.1-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.1-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy2.7-v7.3.1-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.1-src.tar.bz2#fa3771514c8a354969be9bd3b26d65a489c30e28f91d350e4ad2f4081a9c9321" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.2-src b/plugins/python-build/share/python-build/pypy2.7-7.3.2-src index fecfe431ff..736cd0c8ff 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.2-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.2-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy2.7-v7.3.2-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.2-src.tar.bz2#8189480d8350ad6364d05c2b39fd7d832644d4b1cd018f785126389df45928d1" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.3-src b/plugins/python-build/share/python-build/pypy2.7-7.3.3-src index b557648b48..8d5b49c526 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.3-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.3-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy2.7-v7.3.3-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.3-src.tar.bz2#f63488051ba877fd65840bf8d53822a9c6423d947839023b8720139f4b6e2336" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.4-src b/plugins/python-build/share/python-build/pypy2.7-7.3.4-src index 89fd610158..0824a399db 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.4-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.4-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy2.7-v7.3.4-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.4-src.tar.bz2#ff9b928237767efe08ccfba79dae489519b3c768fb6e3af52d39c2a8a1c21ca4" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.5-src b/plugins/python-build/share/python-build/pypy2.7-7.3.5-src index f7bee16b6c..c846078f6e 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.5-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.5-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy2.7-v7.3.5-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.5-src.tar.bz2#c0444fd9873058c1c0d99e13a934e92285cb05992c9968bf523c32bf9bec0a9d" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.6-src b/plugins/python-build/share/python-build/pypy2.7-7.3.6-src index 433b6c81f7..a7f411cbf2 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.6-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.6-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy2.7-v7.3.6-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.6-src.tar.bz2#0114473c8c57169cdcab1a69c60ad7fef7089731fdbe6f46af55060b29be41e4" "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3-2.3.1-src b/plugins/python-build/share/python-build/pypy3-2.3.1-src index 61e6debbcb..ec837998d3 100644 --- a/plugins/python-build/share/python-build/pypy3-2.3.1-src +++ b/plugins/python-build/share/python-build/pypy3-2.3.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-2.3.1-src" "https://downloads.python.org/pypy/pypy3-2.3.1-src.tar.bz2#924ca36bf85e02469c71d451c145f9a6d19b905df473a3d1c25179c63ea79d74" "pypy_builder" verify_py32 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3-2.4.0-src b/plugins/python-build/share/python-build/pypy3-2.4.0-src index dd0dbc17dd..9cee067635 100644 --- a/plugins/python-build/share/python-build/pypy3-2.4.0-src +++ b/plugins/python-build/share/python-build/pypy3-2.4.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-2.4.0-src" "https://downloads.python.org/pypy/pypy3-2.4.0-src.tar.bz2#d9ba207d6eecf8a0dc4414e9f4e92db1abd143e8cc6ec4a6bdcac75b29f104f3" "pypy_builder" verify_py32 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src index 780aa91a06..6242535214 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src +++ b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.3-v5.2.0-alpha1-src" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-src.tar.bz2#344c2f088c82ea1274964bb0505ab80d3f9e538cc03f91aa109325ddbaa61426" "pypy_builder" verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src index b012976019..9bdeed5943 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src +++ b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.5.0-src" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-src.tar.bz2#d5591c34d77253e9ed57d182b6f49585b95f7c09c3e121f0e8630e5a7e75ab5f" "pypy_builder" verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.0-src b/plugins/python-build/share/python-build/pypy3.5-5.10.0-src index 5ec3e779eb..c829916d16 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.10.0-src" "https://downloads.python.org/pypy/pypy3-v5.10.0-src.tar.bz2#a6e4cffde71e3f08b6e1befa5c0352a9bcc5f4e9f5cbf395001e0763a1a0d9e3" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.1-src b/plugins/python-build/share/python-build/pypy3.5-5.10.1-src index 57017c3ac7..90e283b0f8 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.1-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.10.1-src" "https://downloads.python.org/pypy/pypy3-v5.10.1-src.tar.bz2#f5548e06e2fc0c24ec8b6e3c5b09f90081818f7caa3e436dc312592611724713" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src b/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src index 2bd4e2adb8..d58b75566f 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.7-beta-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.7.0-src" "https://downloads.python.org/pypy/pypy3-v5.7.0-src.tar.bz2#f0f563b74f8b82ec33b022393219b93cc0d81e9f9500614fe8417b67a52e9569" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src index 90abe205cf..9755431876 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.7.1-src" "https://downloads.python.org/pypy/pypy3-v5.7.1-src.tar.bz2#40ece0145282980ac121390f13709404c0532896507d5767496381180b631bd0" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.8.0-src b/plugins/python-build/share/python-build/pypy3.5-5.8.0-src index 634e9716d6..cd8d4e8008 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.8.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.8.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.8.0-src" "https://downloads.python.org/pypy/pypy3-v5.8.0-src.tar.bz2#9d090127335c3c0fd2b14c8835bf91752e62756e55ea06aad3353f24a6854223" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.9.0-src b/plugins/python-build/share/python-build/pypy3.5-5.9.0-src index 5206ef429b..de3ab84197 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.9.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.9.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v5.9.0-src" "https://downloads.python.org/pypy/pypy3-v5.9.0-src.tar.bz2#a014f47f50a1480f871a0b82705f904b38c93c4ca069850eb37653fedafb1b97" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-6.0.0-src b/plugins/python-build/share/python-build/pypy3.5-6.0.0-src index 59a0c8e130..fc827487c4 100644 --- a/plugins/python-build/share/python-build/pypy3.5-6.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-6.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3-v6.0.0-src" "https://downloads.python.org/pypy/pypy3-v6.0.0-src.tar.bz2#ed8005202b46d6fc6831df1d13a4613bc40084bfa42f275068edadf8954034a3" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-7.0.0-src b/plugins/python-build/share/python-build/pypy3.5-7.0.0-src index bc4a409a23..00c828b8ff 100644 --- a/plugins/python-build/share/python-build/pypy3.5-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-7.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.5-v7.0.0-src" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-src.tar.bz2#b2ddb0f45cb4e0384fb498ef7fcca2ac96c730b9000affcf8d730169397f017f" "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.0.0-src b/plugins/python-build/share/python-build/pypy3.6-7.0.0-src index b344022a3a..6bec49552a 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.0.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.6-v7.0.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-src.tar.bz2#7ccbf81db5c647fa0c27636c7d18d059d2570fff7eaffc03857c67bee84b8a26" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.0-src b/plugins/python-build/share/python-build/pypy3.6-7.1.0-src index 7a29458fc3..623a8fe6c9 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.6-v7.1.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-src.tar.bz2#faa81f469bb2a7cbd22c64f22d4b4ddc5a1f7c798d43b7919b629b932f9b1c6f" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.1-src b/plugins/python-build/share/python-build/pypy3.6-7.1.1-src index 0fe4b17001..2f50fdf131 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.1-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.1-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.6-v7.1.1-src" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-src.tar.bz2#6a3ef876e3691a54f4cff045028ec3be94ab9beb2e99f051b83175302c1899a8" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.2.0-src b/plugins/python-build/share/python-build/pypy3.6-7.2.0-src index e981b83285..ebd7d95120 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.2.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.2.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.6-v7.2.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-src.tar.bz2#0d7c707df5041f1593fe82f29c40056c21e4d6cb66554bbd66769bd80bcbfafc" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.0-src b/plugins/python-build/share/python-build/pypy3.6-7.3.0-src index 297949f35c..7ee8b4e56c 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.0-src @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl install_package "pypy3.6-v7.3.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.0-src.tar.bz2#48d12c15fbcbcf4a32882a883195e1f922997cde78e7a16d4342b9b521eefcfa" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.1-src b/plugins/python-build/share/python-build/pypy3.6-7.3.1-src index 330b116ab9..019dd3c464 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.1-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.1-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.6-v7.3.1-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.1-src.tar.bz2#0c2cc3229da36c6984baee128c8ff8bb4516d69df1d73275dc4622bf249afa83" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.2-src b/plugins/python-build/share/python-build/pypy3.6-7.3.2-src index 2f5df00965..3dc4a7594b 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.2-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.2-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.6-v7.3.2-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.2-src.tar.bz2#fd6175fed63ff9fccd7886068078853078948d98afae9bd4f5554c6f7873c10d" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.3-src b/plugins/python-build/share/python-build/pypy3.6-7.3.3-src index e353a88ee6..173f87ac99 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.3-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.3-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.6-v7.3.3-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.3-src.tar.bz2#a23d21ca0de0f613732af4b4abb0b0db1cc56134b5bf0e33614eca87ab8805af" "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.2-src b/plugins/python-build/share/python-build/pypy3.7-7.3.2-src index b74d8866d9..b0beb7c5d0 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.2-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.2-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.7-v7.3.2-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.2-src.tar.bz2#9274186eb0c28716a8c6134803b1df857bc3f496e25e50e605c4d95201c8817d" "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.3-src b/plugins/python-build/share/python-build/pypy3.7-7.3.3-src index b0c6479454..1b8e6ab6b1 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.3-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.3-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.7-v7.3.3-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.3-src.tar.bz2#f6c96401f76331e474cca2d14437eb3b2f68a0f27220a6dcbc537445fe9d5b78" "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.4-src b/plugins/python-build/share/python-build/pypy3.7-7.3.4-src index 8afccf5284..5eda9e32e5 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.4-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.4-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.7-v7.3.4-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.4-src.tar.bz2#74d3c1e79f3fc7d384ffb32d3d2a95c2d5f61b81091eccce12ac76030d96ad08" "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.5-src b/plugins/python-build/share/python-build/pypy3.7-7.3.5-src index b48d5d067f..a3ba97e1b9 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.5-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.5-src @@ -1,4 +1,3 @@ -#require_gcc 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 "pypy3.7-v7.3.5-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.5-src.tar.bz2#d920fe409a9ecad9d074aa8568ca5f3ed3581be66f66e5d8988b7ec66e6d99a2" "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.6-src b/plugins/python-build/share/python-build/pypy3.7-7.3.6-src index fc910d4eec..945f29e96b 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.6-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.6-src @@ -1,7 +1,6 @@ VERSION='7.3.6' PYVER='3.7' -#require_gcc 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#9252ccaa130094205b3c7f0a2cad5adc0d9dfba31658ff3172f788dec1fdb348" "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.6-src b/plugins/python-build/share/python-build/pypy3.8-7.3.6-src index 37fccdb4ce..238381cea7 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.6-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.6-src @@ -2,7 +2,6 @@ VERSION='7.3.6' PYVER='3.8' # https://www.pypy.org/checksums.html -#require_gcc 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#f234c56eb0d4ab0afb196232fb38cd1ca8e19b1c65cf7b65eb691695499be259" "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.7-src b/plugins/python-build/share/python-build/pypy3.8-7.3.7-src index 4ac447ea30..0d9fbd6aef 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.7-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.7-src @@ -2,7 +2,6 @@ VERSION='7.3.7' PYVER='3.8' # https://www.pypy.org/checksums.html -#require_gcc 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#21ae339f4f5016d6ca7300305f3e3b554373835cb3c39a9041fe30e6811c80c6" "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7-dev b/plugins/python-build/share/python-build/stackless-2.7-dev index d54224612e..bad55dcd9a 100644 --- a/plugins/python-build/share/python-build/stackless-2.7-dev +++ b/plugins/python-build/share/python-build/stackless-2.7-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/stackless-2.7.10 b/plugins/python-build/share/python-build/stackless-2.7.10 index 80bcc42f0e..599dba2544 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.10 +++ b/plugins/python-build/share/python-build/stackless-2.7.10 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-b6b4c928e880" "http://www.stackless.com/binaries/stackless-2710-export.tar.xz#8af1318f95965138de51e290a509dc3d" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.11 b/plugins/python-build/share/python-build/stackless-2.7.11 index 20fe0b6fab..942263a91c 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.11 +++ b/plugins/python-build/share/python-build/stackless-2.7.11 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-456e93659e69" "http://www.stackless.com/binaries/stackless-2711-export.tar.xz#d5229693498a4ccc0b3245f7bf8e2b09" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.12 b/plugins/python-build/share/python-build/stackless-2.7.12 index 0571900899..f1f222ae2f 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.12 +++ b/plugins/python-build/share/python-build/stackless-2.7.12 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-82aaa252fbdc" "http://www.stackless.com/binaries/stackless-2712-export.tar.xz#c610611b39ee374ae36e891c5c739f39" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.14 b/plugins/python-build/share/python-build/stackless-2.7.14 index 09d6a0fc7a..67f37b94f6 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.14 +++ b/plugins/python-build/share/python-build/stackless-2.7.14 @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/stackless-2.7.16 b/plugins/python-build/share/python-build/stackless-2.7.16 index fd83f93d9e..a39d08ea9c 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.16 +++ b/plugins/python-build/share/python-build/stackless-2.7.16 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-43302de87df4" "http://www.stackless.com/binaries/stackless-2716-export.tar.xz#2db64fbd47567a1c0683fba7a54387892d2299915f9848b54c450b5eb95358dc" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.2 b/plugins/python-build/share/python-build/stackless-2.7.2 index 5f5e4b9397..159e81a0f5 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.2 +++ b/plugins/python-build/share/python-build/stackless-2.7.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-272-export" "http://www.stackless.com/binaries/stackless-272-export.tar.bz2#e2e2706b22839e3e3f45085d0ec8030dd7374d8a65d3297981b7189a7c613197" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.3 b/plugins/python-build/share/python-build/stackless-2.7.3 index 3aefbaa2b7..fff69771d9 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.3 +++ b/plugins/python-build/share/python-build/stackless-2.7.3 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-273-export" "http://www.stackless.com/binaries/stackless-273-export.tar.bz2#77bee863bfd16dc4eca7fc078b12db608db7dd6e2481981bb68250118e001dfc" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.4 b/plugins/python-build/share/python-build/stackless-2.7.4 index 40e4dae367..81679721a6 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.4 +++ b/plugins/python-build/share/python-build/stackless-2.7.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-274-export" "http://www.stackless.com/binaries/stackless-274-export.tar.bz2#ba566b18c66b095b65addbcfc4d814fc84f163c9fcffa1d0678755c581e64f45" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.5 b/plugins/python-build/share/python-build/stackless-2.7.5 index c0545e8374..b6c8fbad16 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.5 +++ b/plugins/python-build/share/python-build/stackless-2.7.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-275-export" "http://www.stackless.com/binaries/stackless-275-export.tar.bz2#5a389357762b32c590e1154a86b098cc379c71d10238b458a3e9b4fa4aac60d4" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.6 b/plugins/python-build/share/python-build/stackless-2.7.6 index 25fe114325..e7ce3d64f3 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.6 +++ b/plugins/python-build/share/python-build/stackless-2.7.6 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-276-export" "http://www.stackless.com/binaries/stackless-276-export.tar.bz2#1e905deaf74e8922f49b99139aa48e6670e9456c55fec8e60c47501f78c38ff5" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.7 b/plugins/python-build/share/python-build/stackless-2.7.7 index 60591691c5..203800487c 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.7 +++ b/plugins/python-build/share/python-build/stackless-2.7.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-a182f63395c3" "http://www.stackless.com/binaries/stackless-277-export.tar.bz2#4ac0a1e95bc12d6733d9e7f3c221ec4a" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.8 b/plugins/python-build/share/python-build/stackless-2.7.8 index ccf263f6e1..a0b64142ee 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.8 +++ b/plugins/python-build/share/python-build/stackless-2.7.8 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-ff29dd4f67de" "http://www.stackless.com/binaries/stackless-278-export.tar.bz2#2880f05e599020eb8f2624ce3796592b" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-2.7.9 b/plugins/python-build/share/python-build/stackless-2.7.9 index 4fef85da5d..d668f7eefd 100644 --- a/plugins/python-build/share/python-build/stackless-2.7.9 +++ b/plugins/python-build/share/python-build/stackless-2.7.9 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-43302de87df4" "http://www.stackless.com/binaries/stackless-279-export.tar.xz#35307558796389aa51d96b0bc83f6f6f" standard verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.2.2 b/plugins/python-build/share/python-build/stackless-3.2.2 index 9efa32ffd2..1ed5128f07 100644 --- a/plugins/python-build/share/python-build/stackless-3.2.2 +++ b/plugins/python-build/share/python-build/stackless-3.2.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-322-export" "http://www.stackless.com/binaries/stackless-322-export.tar.bz2#779700f12b451a350fe7af4cd2849842adc7006dc83fe14712dd1a0999277b07" standard verify_py32 diff --git a/plugins/python-build/share/python-build/stackless-3.2.5 b/plugins/python-build/share/python-build/stackless-3.2.5 index 8077bb1a5f..569588e763 100644 --- a/plugins/python-build/share/python-build/stackless-3.2.5 +++ b/plugins/python-build/share/python-build/stackless-3.2.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-325-export" "http://www.stackless.com/binaries/stackless-325-export.tar.bz2#b021125e578ddd267d38feee9e1cbdb675f6aab247a2b88f4494abcf23babb05" standard verify_py32 diff --git a/plugins/python-build/share/python-build/stackless-3.3.5 b/plugins/python-build/share/python-build/stackless-3.3.5 index fe0152d933..57c14a656d 100644 --- a/plugins/python-build/share/python-build/stackless-3.3.5 +++ b/plugins/python-build/share/python-build/stackless-3.3.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-c856cc204b1c" "http://www.stackless.com/binaries/stackless-335-export.tar.xz#d839295b932eb10443f2ddfecf2c25e9" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.3.7 b/plugins/python-build/share/python-build/stackless-3.3.7 index 725bf001d3..21f65b9492 100644 --- a/plugins/python-build/share/python-build/stackless-3.3.7 +++ b/plugins/python-build/share/python-build/stackless-3.3.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.3.7-slp" "https://github.com/stackless-dev/stackless/archive/v3.3.7-slp.tar.gz#f05b8ff8a0e318aa5880dc995518ab4453894d068a26a171b89e21b98da5a5c1" standard verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.4-dev b/plugins/python-build/share/python-build/stackless-3.4-dev index 9c4f6e4615..b704f954e4 100644 --- a/plugins/python-build/share/python-build/stackless-3.4-dev +++ b/plugins/python-build/share/python-build/stackless-3.4-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/stackless-3.4.2 b/plugins/python-build/share/python-build/stackless-3.4.2 index 7f58d95a5d..908b57b627 100644 --- a/plugins/python-build/share/python-build/stackless-3.4.2 +++ b/plugins/python-build/share/python-build/stackless-3.4.2 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-dev-stackless-587417070fe4" "http://www.stackless.com/binaries/stackless-342-export.tar.xz#dd6ae57cc8a162690a24f21ce1f0c4d96e096c24e17137783bacc9182b96b6dc" standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.4.7 b/plugins/python-build/share/python-build/stackless-3.4.7 index 0cecb2809d..d79e4a8000 100644 --- a/plugins/python-build/share/python-build/stackless-3.4.7 +++ b/plugins/python-build/share/python-build/stackless-3.4.7 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.4.7-slp" "https://github.com/stackless-dev/stackless/archive/v3.4.7-slp.tar.gz#e41959afcfc9381cbc9ac14c12110e3e748e65ceeec4fe61fb1c34cabcb9e6bf" standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.5.4 b/plugins/python-build/share/python-build/stackless-3.5.4 index b2106fbf64..27b7dc830a 100644 --- a/plugins/python-build/share/python-build/stackless-3.5.4 +++ b/plugins/python-build/share/python-build/stackless-3.5.4 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.5.4-slp" "https://github.com/stackless-dev/stackless/archive/v3.5.4-slp.tar.gz#ddb65a8118c754f66875f65c4d5d2a4937d67858ec8c361a6c5b386f5e4d9fce" standard verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-3.7.5 b/plugins/python-build/share/python-build/stackless-3.7.5 index 6a7799e34b..c804c8a2a1 100644 --- a/plugins/python-build/share/python-build/stackless-3.7.5 +++ b/plugins/python-build/share/python-build/stackless-3.7.5 @@ -1,4 +1,3 @@ -#require_gcc install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "stackless-3.7.5-slp" "https://github.com/stackless-dev/stackless/archive/v3.7.5-slp.tar.gz#e2562a8d235adc19be5451c170837f53ef916aec4cd5cd17d9e0ab1f1b875d3f" standard verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/stackless-dev b/plugins/python-build/share/python-build/stackless-dev index c5a760269b..03ba3ec7c8 100644 --- a/plugins/python-build/share/python-build/stackless-dev +++ b/plugins/python-build/share/python-build/stackless-dev @@ -1,4 +1,3 @@ -#require_gcc prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 From 304515f2cdd11db151b7a5733d11934d3990a67e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 30 Jun 2022 16:04:22 +0300 Subject: [PATCH 0453/1324] 2.3.2 --- CHANGELOG.md | 12 ++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a1a314248..156fb07816 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ ## Version History +## Release 2.3.2 + +* Add CPython 3.11.0b2 (#2380) +* Honor CFLAGS_EXTRA for MicroPython #2006 (#2007) +* Add post-install checks for curses, ctypes, lzma, and tkinter (#2353) +* Add CPython 3.11.0b3 (#2382) +* Add flags for Homebrew into `python-config --ldflags` (#2384) +* Add CPython 3.10.5 (#2386) +* Add Anaconda 2019.10, 2021.04, 2022.05; support Anaconda in add_miniconda.py (#2385) +* Add Pyston-2.3.4 (#2390) +* Update anaconda3-2022.05 MacOSX arm64 md5 (#2391) + ## Release 2.3.1 * Version file read improvements (#2269) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a27dcfcd62..787eb9f085 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.1" +version="2.3.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 207f33fc5eee230918072d1f193948d0cb8e1014 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 2 Jul 2022 22:05:34 +0300 Subject: [PATCH 0454/1324] Fix line endings in 3.7.13 patches --- ...system-libffi-patches-for-arm64-macO.patch | 620 +++++++++--------- ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 72 +- ...error-when-opening-header-with-non-U.patch | 60 +- 3 files changed, 376 insertions(+), 376 deletions(-) diff --git a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch index 524c13b221..f23946d0fb 100644 --- a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch +++ b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -1,310 +1,310 @@ -From: Christian Hammond -Date: Wed, 15 Dec 2021 23:12:36 -0800 -Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 - -This ports the following ctypes and libffi pyenv patches for Python -2.7.18 to Python 3.7.12: - -* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` -* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` -* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` - -These patches enable use of system libffi (fixing a broken `ctypes` -module on arm64 targets) and enable calling variadic functions on arm64. -They've been combined from patches port from Homebrew to pyenv by Takumi -Sueda, updated to work on the Python 3.7.12 codebase. - -The Homebrew patches are themselves backports of changes in Python 3.9 -and 3.10. That patch can be found at: - -https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch - -diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst -index 715d595b24..7743144978 100644 ---- a/Doc/library/ctypes.rst -+++ b/Doc/library/ctypes.rst -@@ -1551,6 +1551,13 @@ They are instances of a private class: - value usable as argument (integer, string, ctypes instance). This allows - defining adapters that can adapt custom objects as function parameters. - -+ .. attribute:: variadic -+ -+ Assign a boolean to specify that the function takes a variable number of -+ arguments. This does not matter on most platforms, but for Apple arm64 -+ platforms variadic functions have a different calling convention than -+ normal functions. -+ - .. attribute:: errcheck - - Assign a Python function or another callable to this attribute. The -diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py -index 4ebd82d3e0..7b73c190b6 100644 ---- a/Lib/test/test_unicode.py -+++ b/Lib/test/test_unicode.py -@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): - def test_from_format(self): - support.import_module('ctypes') - from ctypes import ( -+ c_char_p, - pythonapi, py_object, sizeof, - c_int, c_long, c_longlong, c_ssize_t, - c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) - name = "PyUnicode_FromFormat" - _PyUnicode_FromFormat = getattr(pythonapi, name) -+ _PyUnicode_FromFormat.argtypes = (c_char_p,) -+ _PyUnicode_FromFormat.variadic = True - _PyUnicode_FromFormat.restype = py_object - - def PyUnicode_FromFormat(format, *args): -diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c -index dd0c61fd8a..79137e1dc7 100644 ---- a/Modules/_ctypes/_ctypes.c -+++ b/Modules/_ctypes/_ctypes.c -@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) - } - } - -+static int -+PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) -+{ -+ StgDictObject *dict = PyObject_stgdict((PyObject *)self); -+ assert(dict); -+ int r = PyObject_IsTrue(ob); -+ if (r == 1) { -+ dict->flags |= FUNCFLAG_VARIADIC; -+ return 0; -+ } else if (r == 0) { -+ dict->flags &= ~FUNCFLAG_VARIADIC; -+ return 0; -+ } else { -+ return -1; -+ } -+} -+ -+static PyObject * -+PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) -+{ -+ StgDictObject *dict = PyObject_stgdict((PyObject *)self); -+ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ -+ if (dict->flags & FUNCFLAG_VARIADIC) -+ Py_RETURN_TRUE; -+ else -+ Py_RETURN_FALSE; -+} -+ - static int - PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) - { -@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { - { "argtypes", (getter)PyCFuncPtr_get_argtypes, - (setter)PyCFuncPtr_set_argtypes, - "specify the argument types", NULL }, -+ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, -+ "specify if function takes variable number of arguments", NULL }, - { NULL, NULL } - }; - -@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) - PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); - PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); - PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); -+ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); - PyModule_AddStringConstant(m, "__version__", "1.1.0"); - - PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); -diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c -index 9cbf9801ad..e7fe11176b 100644 ---- a/Modules/_ctypes/callproc.c -+++ b/Modules/_ctypes/callproc.c -@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, - ffi_type **atypes, - ffi_type *restype, - void *resmem, -- int argcount) -+ int argcount, -+ int argtypecount) - { - PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ - PyObject *error_object = NULL; -@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, - if ((flags & FUNCFLAG_CDECL) == 0) - cc = FFI_STDCALL; - #endif -- if (FFI_OK != ffi_prep_cif(&cif, -- cc, -- argcount, -- restype, -- atypes)) { -- PyErr_SetString(PyExc_RuntimeError, -- "ffi_prep_cif failed"); -- return -1; -+ -+#if HAVE_FFI_PREP_CIF_VAR -+ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but -+ * lots of existing code will not. If there's at least one arg and more -+ * args are passed than are defined in the prototype, then it must be a -+ * variadic function. */ -+ if ((flags & FUNCFLAG_VARIADIC) || -+ (argtypecount != 0 && argcount > argtypecount)) -+ { -+ if (FFI_OK != ffi_prep_cif_var(&cif, -+ cc, -+ argtypecount, -+ argcount, -+ restype, -+ atypes)) { -+ PyErr_SetString(PyExc_RuntimeError, -+ "ffi_prep_cif_var failed"); -+ return -1; -+ } -+ } else { -+#endif -+ if (FFI_OK != ffi_prep_cif(&cif, -+ cc, -+ argcount, -+ restype, -+ atypes)) { -+ PyErr_SetString(PyExc_RuntimeError, -+ "ffi_prep_cif failed"); -+ return -1; -+ } -+#if HAVE_FFI_PREP_CIF_VAR - } -+#endif - - if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { - error_object = _ctypes_get_errobj(&space); -@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, - - if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, - rtype, resbuf, -- Py_SAFE_DOWNCAST(argcount, -- Py_ssize_t, -- int))) -+ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), -+ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) - goto cleanup; - - #ifdef WORDS_BIGENDIAN -diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h -index e58f85233c..e45975f6ad 100644 ---- a/Modules/_ctypes/ctypes.h -+++ b/Modules/_ctypes/ctypes.h -@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, - #define FUNCFLAG_PYTHONAPI 0x4 - #define FUNCFLAG_USE_ERRNO 0x8 - #define FUNCFLAG_USE_LASTERROR 0x10 -+#define FUNCFLAG_VARIADIC 0x20 - - #define TYPEFLAG_ISPOINTER 0x100 - #define TYPEFLAG_HASPOINTER 0x200 -diff --git a/setup.py b/setup.py -index bf90600eaa..48ff120e9a 100644 ---- a/setup.py -+++ b/setup.py -@@ -142,6 +142,13 @@ def macosx_sdk_root(): - - return MACOS_SDK_ROOT - -+def is_macosx_at_least(vers): -+ if host_platform == 'darwin': -+ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') -+ if dep_target: -+ return tuple(map(int, str(dep_target).split('.'))) >= vers -+ return False -+ - def is_macosx_sdk_path(path): - """ - Returns True if 'path' can be located in an OSX SDK -@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): - or path.startswith('/System/') - or path.startswith('/Library/') ) - -+def grep_headers_for(function, headers): -+ for header in headers: -+ with open(header, 'r') as f: -+ if function in f.read(): -+ return True -+ return False -+ - def find_file(filename, std_dirs, paths): - """Searches for the directory where a given file is located, - and returns a possibly-empty list of additional directories, or None -@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): - return True - - def detect_ctypes(self, inc_dirs, lib_dirs): -- self.use_system_libffi = False -+ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): -+ self.use_system_libffi = True -+ else: -+ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") -+ - include_dirs = [] - extra_compile_args = [] - extra_link_args = [] -@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): - libraries=['m']) - self.extensions.extend([ext, ext_test]) - -+ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") -+ ffi_lib = None -+ - if host_platform == 'darwin': -- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): -+ if not self.use_system_libffi: - return -- # OS X 10.5 comes with libffi.dylib; the include files are -- # in /usr/include/ffi -- inc_dirs.append('/usr/include/ffi') -- -- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] -- if not ffi_inc or ffi_inc[0] == '': -- ffi_inc = find_file('ffi.h', [], inc_dirs) -- if ffi_inc is not None: -- ffi_h = ffi_inc[0] + '/ffi.h' -+ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") -+ if os.path.exists(ffi_in_sdk): -+ ffi_inc = ffi_in_sdk -+ ffi_lib = 'ffi' -+ else: -+ # OS X 10.5 comes with libffi.dylib; the include files are -+ # in /usr/include/ffi -+ inc_dirs.append('/usr/include/ffi') -+ -+ if not ffi_inc: -+ found = find_file('ffi.h', [], inc_dirs) -+ if found: -+ ffi_inc = found[0] -+ if ffi_inc: -+ ffi_h = ffi_inc + '/ffi.h' - if not os.path.exists(ffi_h): - ffi_inc = None - print('Header file {} does not exist'.format(ffi_h)) -- ffi_lib = None -- if ffi_inc is not None: -- for lib_name in ('ffi', 'ffi_pic'): -+ -+ if ffi_lib is None and ffi_inc: -+ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): - if (self.compiler.find_library_file(lib_dirs, lib_name)): - ffi_lib = lib_name - break - - if ffi_inc and ffi_lib: -- ext.include_dirs.extend(ffi_inc) -+ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) -+ if grep_headers_for('ffi_closure_alloc', ffi_headers): -+ try: -+ sources.remove('_ctypes/malloc_closure.c') -+ except ValueError: -+ pass -+ if grep_headers_for('ffi_prep_cif_var', ffi_headers): -+ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") -+ ext.include_dirs.append(ffi_inc) - ext.libraries.append(ffi_lib) - self.use_system_libffi = True - --- -2.30.1 (Apple Git-130) - +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch index efd7bd5901..dd4766050b 100644 --- a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch +++ b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -1,36 +1,36 @@ -From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001 -From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> -Date: Tue, 30 Jun 2020 02:15:46 -0700 -Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) - -Patch by Lawrence Danna. ---- - .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + - Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ - 2 files changed, 4 insertions(+) - create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst - -diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst -new file mode 100644 -index 0000000000..d6176d69f0 ---- /dev/null -+++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst -@@ -0,0 +1 @@ -+add arm64 to the allowable Mac OS arches in mpdecimal.h -\ No newline at end of file -diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h -index 108b76efa8..35ce429f60 100644 ---- a/Modules/_decimal/libmpdec/mpdecimal.h -+++ b/Modules/_decimal/libmpdec/mpdecimal.h -@@ -135,6 +135,9 @@ const char *mpd_version(void); - #elif defined(__x86_64__) - #define CONFIG_64 - #define ASM -+ #elif defined(__arm64__) -+ #define CONFIG_64 -+ #define ANSI - #else - #error "unknown architecture for universal build." - #endif --- -2.30.1 (Apple Git-130) +From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index 108b76efa8..35ce429f60 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.30.1 (Apple Git-130) diff --git a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch index 74ea149211..773b69fa0e 100644 --- a/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch +++ b/plugins/python-build/share/python-build/patches/3.7.13/Python-3.7.13/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -1,30 +1,30 @@ -From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 -From: Ronald Oussoren -Date: Sat, 14 Nov 2020 16:07:47 +0100 -Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 - encoding (GH-23279) - -grep_headers_for() would error out when a header contained -text that cannot be interpreted as UTF-8. - -cherry-picked from 7a27c7ed4b by Pedro Fonini ---- - setup.py | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/setup.py b/setup.py -index f211989aac..467362813d 100644 ---- a/setup.py -+++ b/setup.py -@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): - - def grep_headers_for(function, headers): - for header in headers: -- with open(header, 'r') as f: -+ with open(header, 'r', errors='surrogateescape') as f: - if function in f.read(): - return True - return False --- -2.34.1 - +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From fdaeaf1f97fc13f15b5294100f43179f4e6aedbd Mon Sep 17 00:00:00 2001 From: Pedro Fonini Date: Sun, 10 Jul 2022 17:00:51 -0300 Subject: [PATCH 0455/1324] Use version sort in `pyenv versions` if available (#2405) --- libexec/pyenv-versions | 14 +++++++++++- test/versions.bats | 49 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 273eb20a81..e4bb626492 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -123,7 +123,19 @@ if [ -n "$include_system" ] && \ fi shopt -s dotglob nullglob -for path in "$versions_dir"/*; do +versions_dir_entries=("$versions_dir"/*) +if sort --version-sort /dev/null 2>&1; then + # system sort supports version sorting + OLDIFS="$IFS" + IFS=$'\n' + versions_dir_entries=($( + printf "%s\n" "${versions_dir_entries[@]}" | + sort --version-sort + )) + IFS="$OLDIFS" +fi + +for path in "${versions_dir_entries[@]}"; do if [ -d "$path" ]; then if [ -n "$skip_aliases" ] && [ -L "$path" ]; then target="$(realpath "$path")" diff --git a/test/versions.bats b/test/versions.bats index 932883c716..fb381dbee2 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -17,6 +17,14 @@ stub_system_python() { touch "$stub" && chmod +x "$stub" } +create_executable() { + local name="$1" + local bin="${PYENV_TEST_DIR}/bin" + mkdir -p "$bin" + sed -Ee '1s/^ +//' > "${bin}/$name" + chmod +x "${bin}/$name" +} + @test "no versions installed" { stub_system_python assert [ ! -d "${PYENV_ROOT}/versions" ] @@ -161,3 +169,44 @@ OUT run pyenv-versions --bare assert_success ".venv" } + +@test "sort supports version sorting" { + create_version "1.9.0" + create_version "1.53.0" + create_version "1.218.0" + create_executable sort < Date: Mon, 11 Jul 2022 17:05:34 -0400 Subject: [PATCH 0456/1324] Add CPython 3.11.0b4 (#2411) --- .../python-build/share/python-build/{3.11.0b3 => 3.11.0b4} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0b3 => 3.11.0b4} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0b3 b/plugins/python-build/share/python-build/3.11.0b4 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0b3 rename to plugins/python-build/share/python-build/3.11.0b4 index 5e8e390d29..904fe8f3c6 100644 --- a/plugins/python-build/share/python-build/3.11.0b3 +++ b/plugins/python-build/share/python-build/3.11.0b4 @@ -3,7 +3,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0b3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b3.tar.xz#c9b99f5315ea30f8e9fcbce6807a3739e875480d29124e6d9940f6fabcb7c902" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b4.tar.xz#1d93b611607903e080417c1a9567f5fbbf5124cc5c86f4afbba1c8fd34c5f6fb" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0b3" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b3.tgz#f52b738043251c88e3d6bb86e30cbf0e1098470a06b9d49feb31f145af5e8149" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b4.tgz#257e753db2294794fa8dec072c228f3f53fd541a303de9418854b3c2512ccbec" standard verify_py311 copy_python_gdb ensurepip fi From 0990e7843dd25d68777c3e45c5f563a2586e5d41 Mon Sep 17 00:00:00 2001 From: Sorin Sbarnea Date: Thu, 14 Jul 2022 14:29:59 +0100 Subject: [PATCH 0457/1324] python-build: Replace deprecated git protocol in the README (#2413) --- plugins/python-build/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 931d56ef03..6d6effd9ce 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -24,7 +24,7 @@ Installing python-build as a standalone program will give you access to the `python-build` command for precise control over Python version installation. If you have pyenv installed, you will also be able to use the `pyenv install` command. - git clone git://github.com/pyenv/pyenv.git + git clone https://github.com/pyenv/pyenv.git cd pyenv/plugins/python-build ./install.sh From 0eba0a5bd54dd29ab8a869c649777d91becd5124 Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Fri, 15 Jul 2022 23:55:30 +1000 Subject: [PATCH 0458/1324] docs: fix simple typo (#2414) Signed-off-by: Tim Gates --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 602068df9e..eedebd91e7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,7 +1,7 @@ General guidance ================ -* The usual principes of respecting existing conventions and making sure that your changes +* The usual principles of respecting existing conventions and making sure that your changes are in line with the overall product design apply when contributing code to Pyenv. * We are limited to Bash 3.2 features From 22fa683571d98b59ea16e5fe48ac411c67939653 Mon Sep 17 00:00:00 2001 From: James Stronz Date: Sat, 16 Jul 2022 15:01:04 -0700 Subject: [PATCH 0459/1324] CVE-2022-35861: Fixed relative path traversal due to using version string in path (#2412) --- libexec/pyenv-version-file-read | 13 ++++++++++--- test/version-file-read.bats | 12 ++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-version-file-read b/libexec/pyenv-version-file-read index 5dcc40fcd5..faaf1596f1 100755 --- a/libexec/pyenv-version-file-read +++ b/libexec/pyenv-version-file-read @@ -11,9 +11,16 @@ if [ -s "$VERSION_FILE" ]; then IFS="${IFS}"$'\r' sep= while read -n 1024 -r version _ || [[ $version ]]; do - [[ -z $version || $version == \#* ]] && continue - printf "%s%s" "$sep" "$version" - sep=: + if [[ -z $version || $version == \#* ]]; then + # Skip empty lines and comments + continue + elif [ "$version" = ".." ] || [[ $version == */* ]]; then + # The version string is used to construct a path and we skip dubious values. + # This prevents issues such as path traversal (CVE-2022-35861). + continue + fi + printf "%s%s" "$sep" "$version" + sep=: done <"$VERSION_FILE" [[ $sep ]] && { echo; exit; } fi diff --git a/test/version-file-read.bats b/test/version-file-read.bats index a7b184de73..18cfe131a9 100644 --- a/test/version-file-read.bats +++ b/test/version-file-read.bats @@ -82,3 +82,15 @@ IN run pyenv-version-file-read my-version assert_success "3.9.3:3.8.9:2.7.16" } + +@test "skips relative path traversal" { + cat > my-version < Date: Mon, 25 Jul 2022 22:55:11 +0200 Subject: [PATCH 0460/1324] Fix: patterns for pypy2.*/pypy3.* versions (#2419) Co-authored-by: native-api --- plugins/python-build/bin/python-build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5606cd7c1c..f215664552 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1637,10 +1637,13 @@ build_package_auto_tcltk() { fi } +# extglob must be set at parse time, not at runtime +# https://stackoverflow.com/questions/49283740/bash-script-throws-syntax-errors-when-the-extglob-option-is-set-inside-a-subsh +shopt -s extglob apply_python_patch() { local patchfile case "$1" in - Python-* | jython-* | pypy-* | stackless-* ) + Python-* | jython-* | pypy-* | pypy[:digit:].+([:digit:])-* | stackless-* ) patchfile="$(mktemp "${TMP}/python-patch.XXXXXX")" cat "${2:--}" >"$patchfile" @@ -1650,6 +1653,7 @@ apply_python_patch() { ;; esac } +shopt -u extglob build_package_symlink_version_suffix() { if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then From f5cbba06367274d275f2647623d6015eea8426cc Mon Sep 17 00:00:00 2001 From: brogon Date: Tue, 26 Jul 2022 21:03:26 +0200 Subject: [PATCH 0461/1324] Allow pypy2 pypy3 patching (#2421) * Fix: patterns for pypy2.*/pypy3.* versions * Shrink pypy patterns * Fix extglob pattern * Fix: no regex-charclasses like '[:digit:]' in 'extglob', needs also double-activation for parse/runtime stage Co-authored-by: native-api Co-authored-by: Bjoern Schneider --- plugins/python-build/bin/python-build | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f215664552..e03e4554a3 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1639,11 +1639,17 @@ build_package_auto_tcltk() { # extglob must be set at parse time, not at runtime # https://stackoverflow.com/questions/49283740/bash-script-throws-syntax-errors-when-the-extglob-option-is-set-inside-a-subsh +# +# The function is *parsed* with "extglob" only if an outer `shopt -s exglob` +# exists; at *runtime* you still need to activate it *within* the function. +# shopt -s extglob apply_python_patch() { local patchfile + # needed at runtime + shopt -s extglob case "$1" in - Python-* | jython-* | pypy-* | pypy[:digit:].+([:digit:])-* | stackless-* ) + Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* ) patchfile="$(mktemp "${TMP}/python-patch.XXXXXX")" cat "${2:--}" >"$patchfile" @@ -1652,6 +1658,7 @@ apply_python_patch() { patch -p$striplevel --force -i "$patchfile" ;; esac + shopt -u extglob } shopt -u extglob From d98d3f5055ea694a9ef826d03d1614d01c28d447 Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Tue, 26 Jul 2022 14:04:26 -0500 Subject: [PATCH 0462/1324] Add CPython 3.11.0b5 (#2420) --- .../python-build/share/python-build/{3.11.0b4 => 3.11.0b5} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0b4 => 3.11.0b5} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0b4 b/plugins/python-build/share/python-build/3.11.0b5 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0b4 rename to plugins/python-build/share/python-build/3.11.0b5 index 904fe8f3c6..9d2c96c215 100644 --- a/plugins/python-build/share/python-build/3.11.0b4 +++ b/plugins/python-build/share/python-build/3.11.0b5 @@ -3,7 +3,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0b4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b4.tar.xz#1d93b611607903e080417c1a9567f5fbbf5124cc5c86f4afbba1c8fd34c5f6fb" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b5.tar.xz#3810bd22f7dc34a99c2a2eb4b85264a4df4f05ef59c4e0ccc2ea82ee9c491698" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0b4" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b4.tgz#257e753db2294794fa8dec072c228f3f53fd541a303de9418854b3c2512ccbec" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0b5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b5.tgz#3f7d1a4ab0e64425f4ffd92d49de192ad2ee1c62bc52e3877e9f7b254c702e60" standard verify_py311 copy_python_gdb ensurepip fi From ff9d3ca69ef5006352cadc31e57f51aca42705a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 27 Jul 2022 23:08:14 +0200 Subject: [PATCH 0463/1324] Add GraalPython 22.2.0 (#2425) --- .../share/python-build/graalpython-22.2.0 | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpython-22.2.0 diff --git a/plugins/python-build/share/python-build/graalpython-22.2.0 b/plugins/python-build/share/python-build/graalpython-22.2.0 new file mode 100644 index 0000000000..3ae93d0824 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpython-22.2.0 @@ -0,0 +1,48 @@ +# Copyright (c) 2022, 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='22.2.0' +BUILD='' + +case "$(pypy_architecture 2>/dev/null || true)" in +"linux64" ) + graalpython_arch="linux" + checksum="75a7e5d7afc158169fd87df9c69c3801aa0293dd727ba09facad6b01e1b6dee5" + ;; +"osx64" ) + graalpython_arch="macos" + checksum="575d78ae2be8d4ce4adbc9c61229b6f1271f557f0f3ec410a494de7b29986dd7" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPython is available for $(pypy_architecture 2>/dev/null || true)." + 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/vm-${VERSION}" +fi + +install_package "graalpython-${VERSION}${BUILD}" "${urlprefix}/graalpython-${VERSION}-${graalpython_arch}-amd64.tar.gz#${checksum}" "graalpython" ensurepip From 1ae5596bfa04984786a5129d41963c574269d4f4 Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Tue, 2 Aug 2022 15:51:31 -0500 Subject: [PATCH 0464/1324] Add CPython 3.10.6 (#2428) --- plugins/python-build/share/python-build/3.10.6 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.6 diff --git a/plugins/python-build/share/python-build/3.10.6 b/plugins/python-build/share/python-build/3.10.6 new file mode 100644 index 0000000000..6a9c84abec --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.6 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.6" "https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tar.xz#f795ff87d11d4b0c7c33bc8851b0c28648d8a4583aa2100a98c22b4326b6d3f3" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.6" "https://www.python.org/ftp/python/3.10.6/Python-3.10.6.tgz#848cb06a5caa85da5c45bd7a9221bb821e33fc2bdcba088c127c58fad44e6343" standard verify_py310 copy_python_gdb ensurepip +fi From 37a6070855d7053c34441b01b79ac6133ae5e5d9 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 2 Aug 2022 23:59:30 +0300 Subject: [PATCH 0465/1324] 2.3.3 --- CHANGELOG.md | 11 +++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 156fb07816..27c230e24e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ ## Version History +## Release 2.3.3 + +* Use version sort in `pyenv versions` (#2405) +* Add CPython 3.11.0b4 (#2411) +* Python-build: Replace deprecated git protocol use with https in docs (#2413) +* Fix relative path traversal due to using version string in path (#2412) +* Allow pypy2 and pypy3 patching (#2421, #2419) +* Add CPython 3.11.0b5 (#2420) +* Add GraalPython 22.2.0 (#2425) +* Add CPython 3.10.6 (#2428) + ## Release 2.3.2 * Add CPython 3.11.0b2 (#2380) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 787eb9f085..906687ee71 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.2" +version="2.3.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From ae22c6950563af3e0ff5405367d42ceed40997d5 Mon Sep 17 00:00:00 2001 From: Janith Petangoda <22471198+janithpet@users.noreply.github.com> Date: Sat, 6 Aug 2022 16:12:11 +0100 Subject: [PATCH 0466/1324] Small update to instruction in README.md (#2431) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index af883e74c8..5ddb5a5042 100644 --- a/README.md +++ b/README.md @@ -288,7 +288,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi configuration commands to both `.bashrc` (for interactive shells) and the profile file that Bash would use (for login shells). - First, add the commands to `~/.bashrc`: + First, add the commands to `~/.bashrc` by running the following in your terminal: ~~~ bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc From 965421d5d45bafd7ecac89a1c1c93343bbfdceb6 Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Sun, 14 Aug 2022 07:12:22 -0500 Subject: [PATCH 0467/1324] Add CPython 3.11.0rc1 (#2434) --- .../python-build/share/python-build/{3.11.0b5 => 3.11.0rc1} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0b5 => 3.11.0rc1} (52%) diff --git a/plugins/python-build/share/python-build/3.11.0b5 b/plugins/python-build/share/python-build/3.11.0rc1 similarity index 52% rename from plugins/python-build/share/python-build/3.11.0b5 rename to plugins/python-build/share/python-build/3.11.0rc1 index 9d2c96c215..cc946eddfa 100644 --- a/plugins/python-build/share/python-build/3.11.0b5 +++ b/plugins/python-build/share/python-build/3.11.0rc1 @@ -3,7 +3,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0b5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b5.tar.xz#3810bd22f7dc34a99c2a2eb4b85264a4df4f05ef59c4e0ccc2ea82ee9c491698" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0rc1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc1.tar.xz#53a5377c37a8a2c6da075b14eb9d63374579f7f3c718fa20f0a1fbb0e94a922b" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0b5" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0b5.tgz#3f7d1a4ab0e64425f4ffd92d49de192ad2ee1c62bc52e3877e9f7b254c702e60" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0rc1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc1.tgz#456f32a8d66e7cae226478a74c3ebb358bae09eba0b8537f47d7b2790f65a1f0" standard verify_py311 copy_python_gdb ensurepip fi From afeb971fa25b343760051423149aaa4514f3d41d Mon Sep 17 00:00:00 2001 From: hardikpnsp Date: Mon, 15 Aug 2022 22:55:46 +0530 Subject: [PATCH 0468/1324] Add support for multiple versions in `pyenv uninstall` (#2432) --- COMMANDS.md | 4 +- README.md | 2 +- man/man1/pyenv.1 | 6 +-- plugins/python-build/bin/pyenv-uninstall | 66 ++++++++++++++---------- plugins/python-build/test/hooks.bats | 35 +++++++++++++ plugins/python-build/test/pyenv.bats | 24 +++++++-- 6 files changed, 99 insertions(+), 38 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 04d0f57788..4d4676f1bf 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -238,9 +238,9 @@ To install the latest major release for Python 3 try: ## `pyenv uninstall` -Uninstall a specific Python version. +Uninstall Python versions. - Usage: pyenv uninstall [-f|--force] + Usage: pyenv uninstall [-f|--force] ... -f Attempt to remove the specified version without prompting for confirmation. If the version does not exist, do not diff --git a/README.md b/README.md index 5ddb5a5042..c57ab35471 100644 --- a/README.md +++ b/README.md @@ -432,7 +432,7 @@ for more details on how the selection works and more information on its usage. As time goes on, you will accumulate Python versions in your `$(pyenv root)/versions` directory. -To remove old Python versions, use [`pyenv uninstall `](COMMANDS.md#pyenv-uninstall). +To remove old Python versions, use [`pyenv uninstall `](COMMANDS.md#pyenv-uninstall). Alternatively, you can simply `rm -rf` the directory of the version you want to remove. You can find the directory of a particular Python version diff --git a/man/man1/pyenv.1 b/man/man1/pyenv.1 index 04c32d156d..621a3c3e76 100644 --- a/man/man1/pyenv.1 +++ b/man/man1/pyenv.1 @@ -106,7 +106,7 @@ Set or show the shell\-specific Python version List existing pyenv shims .TP .B uninstall -Uninstall a specific Python version +Uninstall Python versions .TP .B version Show the current Python version(s) and its origin @@ -452,10 +452,10 @@ $ pyenv versions .fi .IP "" 0 .SS "pyenv uninstall" -Uninstall a specific Python version\. +Uninstall Python versions\. .IP "" 4 .nf -Usage: pyenv uninstall [\-f|\-\-force] +Usage: pyenv uninstall [\-f|\-\-force] ... \-f Attempt to remove the specified version without prompting for confirmation\. If the version does not exist, do not diff --git a/plugins/python-build/bin/pyenv-uninstall b/plugins/python-build/bin/pyenv-uninstall index 9f892097e9..3bf6d98edc 100755 --- a/plugins/python-build/bin/pyenv-uninstall +++ b/plugins/python-build/bin/pyenv-uninstall @@ -1,8 +1,8 @@ #!/usr/bin/env bash # -# Summary: Uninstall a specific Python version +# Summary: Uninstall Python versions # -# Usage: pyenv uninstall [-f|--force] +# Usage: pyenv uninstall [-f|--force] ... # # -f Attempt to remove the specified version without prompting # for confirmation. If the version does not exist, do not @@ -33,14 +33,17 @@ if [ "$1" = "-f" ] || [ "$1" = "--force" ]; then shift fi -[ "$#" -eq 1 ] || usage 1 >&2 +[ "$#" -gt 0 ] || usage 1 >&2 -DEFINITION="$1" -case "$DEFINITION" in -"" | -* ) - usage 1 >&2 - ;; -esac +versions=("$@") + +for version in "${versions[@]}"; do + case "$version" in + "" | -* ) + usage 1 >&2 + ;; + esac +done declare -a before_hooks after_hooks @@ -59,29 +62,36 @@ IFS=$'\n' scripts=(`pyenv-hooks uninstall`) IFS="$OLDIFS" for script in "${scripts[@]}"; do source "$script"; done +uninstall-python() { + local DEFINITION="$1" -VERSION_NAME="${DEFINITION##*/}" -PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}" + local VERSION_NAME="${DEFINITION##*/}" + local PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}" -if [ -z "$FORCE" ]; then - if [ ! -d "$PREFIX" ]; then - echo "pyenv: version \`$VERSION_NAME' not installed" >&2 - exit 1 + if [ -z "$FORCE" ]; then + if [ ! -d "$PREFIX" ]; then + echo "pyenv: version \`$VERSION_NAME' not installed" >&2 + exit 1 + fi + + read -p "pyenv: remove $PREFIX? [y|N] " + case "$REPLY" in + y | Y | yes | YES ) ;; + * ) exit 1 ;; + esac fi - read -p "pyenv: remove $PREFIX? [y|N] " - case "$REPLY" in - y | Y | yes | YES ) ;; - * ) exit 1 ;; - esac -fi + for hook in "${before_hooks[@]}"; do eval "$hook"; done -for hook in "${before_hooks[@]}"; do eval "$hook"; done + if [ -d "$PREFIX" ]; then + rm -rf "$PREFIX" + pyenv-rehash + echo "pyenv: $VERSION_NAME uninstalled" + fi -if [ -d "$PREFIX" ]; then - rm -rf "$PREFIX" - pyenv-rehash - echo "pyenv: $VERSION_NAME uninstalled" -fi + for hook in "${after_hooks[@]}"; do eval "$hook"; done +} -for hook in "${after_hooks[@]}"; do eval "$hook"; done +for version in "${versions[@]}"; do + uninstall-python "$version" +done diff --git a/plugins/python-build/test/hooks.bats b/plugins/python-build/test/hooks.bats index 4a1a294568..613c5c2e0d 100644 --- a/plugins/python-build/test/hooks.bats +++ b/plugins/python-build/test/hooks.bats @@ -55,3 +55,38 @@ OUT refute [ -d "${PYENV_ROOT}/versions/3.6.2" ] } + +@test "pyenv-uninstall hooks with multiple versions" { + cat > "${HOOK_PATH}/uninstall.bash" < Date: Tue, 16 Aug 2022 21:32:14 +0300 Subject: [PATCH 0469/1324] CONTRIBUTING.md: clarify that Bash 4+ optimizations are allowed --- CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index eedebd91e7..b1386bef95 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -9,6 +9,9 @@ General guidance That's because that's the version shipped with MacOS. (They didn't upgrade past it and switched to Zsh because later versions are covered by GPLv3 which has additional restrictions unacceptable for Apple.) + + You can still add performance optimizations and such that take advantage of newer Bash features + as long as there is a fallback execution route for Bash 3. * Be extra careful when submitting logic specific for the Apple Silicon platform From a8afc611467d2a62f8d119205943395c1b5111de Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 16 Aug 2022 21:33:49 +0300 Subject: [PATCH 0470/1324] CONTRIBUTING.md: phrasing --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b1386bef95..24b1ce6150 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ General guidance (They didn't upgrade past it and switched to Zsh because later versions are covered by GPLv3 which has additional restrictions unacceptable for Apple.) - You can still add performance optimizations and such that take advantage of newer Bash features + You can still add performance optimizations etc that take advantage of newer Bash features as long as there is a fallback execution route for Bash 3. * Be extra careful when submitting logic specific for the Apple Silicon platform From c89a69a6ed299b2d692312b4674d176c76038011 Mon Sep 17 00:00:00 2001 From: Dmitriy Serdyuk Date: Thu, 1 Sep 2022 06:48:26 -0400 Subject: [PATCH 0471/1324] Add micropython 1.18 and 1.19.1 (#2443) Support frozen builtin modules e.g. upip --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/share/python-build/micropython-1.18 | 4 ++++ plugins/python-build/share/python-build/micropython-1.19.1 | 4 ++++ plugins/python-build/test/compiler.bats | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 plugins/python-build/share/python-build/micropython-1.18 create mode 100644 plugins/python-build/share/python-build/micropython-1.19.1 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index e03e4554a3..52e8a8460a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -899,7 +899,7 @@ build_package_micropython() { "$MAKE" $MAKE_OPTS cd ../ports/unix "$MAKE" $MAKE_OPTS axtls - "$MAKE" $MAKE_OPTS CFLAGS_EXTRA="-DMICROPY_PY_SYS_PATH_DEFAULT='\"${PREFIX_PATH}/lib/micropython\"' $CFLAGS_EXTRA" + "$MAKE" $MAKE_OPTS CFLAGS_EXTRA="-DMICROPY_PY_SYS_PATH_DEFAULT='\".frozen:${PREFIX_PATH}/lib/micropython\"' $CFLAGS_EXTRA" "$MAKE" install $MAKE_INSTALL_OPTS PREFIX="${PREFIX_PATH}" ln -fs micropython "${PREFIX_PATH}/bin/python" mkdir -p "${PREFIX_PATH}/lib/micropython" diff --git a/plugins/python-build/share/python-build/micropython-1.18 b/plugins/python-build/share/python-build/micropython-1.18 new file mode 100644 index 0000000000..ce156d2e2c --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.18 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.18.tar.xz#96fc71b42ed331c64e1adc5a830ec4f29f2975c23e8751109c03f32b80fa3eb4"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.18.zip#90fa8049cf275310638b9e9c77121f6042f7250b814ef622f9522befde009f57"; } +$install micropython-1.18 "$src" micropython diff --git a/plugins/python-build/share/python-build/micropython-1.19.1 b/plugins/python-build/share/python-build/micropython-1.19.1 new file mode 100644 index 0000000000..8606896896 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.19.1 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.19.1.tar.xz#940e3815e8c425c6eaed3a2aa30d320220cc012a2654b6e086e1b6f0567df350"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.19.1.zip#7047ce208627457c6881850527edb78189a1855a974aa34e2d929c9a3b3c5cc3"; } +$install micropython-1.19.1 "$src" micropython diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index 70049d752b..96c304231d 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -115,6 +115,6 @@ DEF #assert_success assert_output < Date: Sat, 3 Sep 2022 02:11:33 +0300 Subject: [PATCH 0472/1324] CI: Exclude deleted scripts from modified check --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 15ca649753..a34056ed9a 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -12,7 +12,7 @@ jobs: run: > versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z | perl -ne 'BEGIN {$\="\n";$/="\0";} chomp; - if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/) + if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) { print $1.$2; }' \ | sort -u); echo -e "versions<> $GITHUB_ENV From 7c1e3a710ceb7fae99975fe9487635bd309a31df Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Sep 2022 02:20:24 +0300 Subject: [PATCH 0473/1324] CI: Support Micropython --- .github/workflows/modified_scripts_build.yml | 69 +++++++++++++------- 1 file changed, 46 insertions(+), 23 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index a34056ed9a..f3ae23b578 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -40,20 +40,31 @@ jobs: - run: | pyenv install ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} - - run: | - python --version - python -m pip --version - - shell: python # Prove that actual Python == expected Python - env: + # Micropython doesn't support --version + - run: > + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version; + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | - import os, sys, os.path - correct_dir = os.path.join( - os.environ['PYENV_ROOT'], - 'versions', - os.environ['EXPECTED_PYTHON'], - 'bin') - assert os.path.dirname(sys.executable) == correct_dir + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS - run: | pyenv global system @@ -82,16 +93,28 @@ jobs: - run: | pyenv install ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} - - run: python --version - - run: python -m pip --version - - shell: python # Prove that actual Python == expected Python - env: + # Micropython doesn't support --version + - run: > + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version; + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | - import os, sys, os.path - correct_dir = os.path.join( - os.environ['PYENV_ROOT'], - 'versions', - os.environ['EXPECTED_PYTHON'], - 'bin') - assert os.path.dirname(sys.executable) == correct_dir + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi From 27b5f62dfb431e9961f2d8ad940f3ea535a2e17e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Sep 2022 21:43:05 +0300 Subject: [PATCH 0474/1324] CI: Build with -v --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 4 ++-- .github/workflows/ubuntu_build.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 83f869575b..fb295baebe 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -27,7 +27,7 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install ${{ matrix.python-version }} + bin/pyenv install -v ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash - run: python --version diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index f3ae23b578..0544ada31b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -38,7 +38,7 @@ jobs: echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | - pyenv install ${{ matrix.python-version }} + pyenv install -v ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: > @@ -91,7 +91,7 @@ jobs: echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | - pyenv install ${{ matrix.python-version }} + pyenv install -v ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: > diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 3f9d2d58b5..852eb53021 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -29,7 +29,7 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install ${{ matrix.python-version }} + bin/pyenv install -v ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash - run: python --version From e52ad61389a192e1f728847fe8dd372b3a67bbc4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Sep 2022 22:31:00 +0300 Subject: [PATCH 0475/1324] CI: Bump versions --- .github/workflows/macos_build.yml | 8 ++++---- .github/workflows/ubuntu_build.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 83f869575b..e0fa37f941 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -6,10 +6,10 @@ jobs: fail-fast: false matrix: python-version: - - 3.7.10 - - 3.8.10 - - 3.9.5 - - 3.10.0 + - 3.7.13 + - 3.8.13 + - 3.9.13 + - 3.10.6 runs-on: macos-10.15 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 3f9d2d58b5..a325b10418 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -6,10 +6,10 @@ jobs: fail-fast: false matrix: python-version: - - 3.7.10 - - 3.8.10 - - 3.9.5 - - 3.10.0 + - 3.7.13 + - 3.8.13 + - 3.9.13 + - 3.10.6 runs-on: Ubuntu-20.04 steps: - uses: actions/checkout@v2 From 47b0ce77c03d82c1718621e5592fb27e712005d6 Mon Sep 17 00:00:00 2001 From: James Stronz Date: Sat, 3 Sep 2022 14:37:53 -0500 Subject: [PATCH 0476/1324] Re-allow paths in .python-version provided that they resolve to within the versions dir (#2442) * Fixes #2430 while still preventing CVE-2022-35861 * Adds a skipped version message to stderr Co-authored-by: Ivan Pozdeev --- libexec/pyenv-version-file-read | 25 +++++++++++++++++++----- test/version-file-read.bats | 34 +++++++++++++++++++++++++++------ 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/libexec/pyenv-version-file-read b/libexec/pyenv-version-file-read index faaf1596f1..7865a730d5 100755 --- a/libexec/pyenv-version-file-read +++ b/libexec/pyenv-version-file-read @@ -5,18 +5,33 @@ set -e VERSION_FILE="$1" +function is_version_safe() { + # As needed, check that the constructed path exists as a child path of PYENV_ROOT/versions + version="$1" + if [[ "$version" == ".." || "$version" == */* ]]; then + # Sanity check the value of version to prevent malicious path-traversal + ( + cd "$PYENV_ROOT/versions/$version" &>/dev/null || exit 1 + [[ "$PWD" == "$PYENV_ROOT/versions/"* ]] + ) + return $? + else + return 0 + fi +} + if [ -s "$VERSION_FILE" ]; then # Read the first non-whitespace word from the specified version file. # Be careful not to load it whole in case there's something crazy in it. - IFS="${IFS}"$'\r' + IFS="$IFS"$'\r' sep= while read -n 1024 -r version _ || [[ $version ]]; do - if [[ -z $version || $version == \#* ]]; then + if [[ -z "$version" || "$version" == \#* ]]; then # Skip empty lines and comments continue - elif [ "$version" = ".." ] || [[ $version == */* ]]; then - # The version string is used to construct a path and we skip dubious values. - # This prevents issues such as path traversal (CVE-2022-35861). + elif ! is_version_safe "$version"; then + # CVE-2022-35861 allowed arbitrary code execution in some contexts and is mitigated by is_version_safe. + echo "pyenv: invalid version \`$version' ignored in \`$VERSION_FILE'" >&2 continue fi printf "%s%s" "$sep" "$version" diff --git a/test/version-file-read.bats b/test/version-file-read.bats index 18cfe131a9..acd9d78164 100644 --- a/test/version-file-read.bats +++ b/test/version-file-read.bats @@ -83,14 +83,36 @@ IN assert_success "3.9.3:3.8.9:2.7.16" } -@test "skips relative path traversal" { +@test "skips \`..' relative path traversal" { + echo '..' > my-version + run pyenv-version-file-read my-version + assert_failure "pyenv: invalid version \`..' ignored in \`my-version'" +} + +@test "skips glob path traversal" { cat > my-version < my-version + run pyenv-version-file-read my-version + assert_success "${venv}" +} + +@test "skips relative paths that lead outside of versions" { + venv=../3.10.3/envs/test + mkdir -p "${PYENV_ROOT}/versions/${venv}" + echo -n "${venv}" > my-version + run pyenv-version-file-read my-version + assert_failure } From a648682ed63a257bf864729d4eb3c703476eebb8 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 4 Sep 2022 01:40:00 +0300 Subject: [PATCH 0477/1324] CI: Bump OS versions (#2448) * CI: Bump OS versions Github released ubuntu-22.04 and macos-12 from beta and deprecated ubuntu-18.04 and macos-10.15, due to dropping by 2013. * CI: clean up installed packages --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 10 +++++----- .github/workflows/pyenv_tests.yml | 4 ++-- .github/workflows/ubuntu_build.yml | 8 ++++---- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 17f7650af5..7b39ec76bb 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -10,7 +10,7 @@ jobs: - 3.8.13 - 3.9.13 - 3.10.6 - runs-on: macos-10.15 + runs-on: macos-11 steps: - uses: actions/checkout@v2 # Normally, we would use the superbly maintained... diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 0544ada31b..56c790653d 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -27,7 +27,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["macos-10.15", "macos-11"] + os: ["macos-11", "macos-12"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 @@ -77,15 +77,15 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["ubuntu-18.04", "ubuntu-20.04"] + os: ["ubuntu-20.04", "ubuntu-22.04"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 - run: | - sudo apt-get update -q; sudo apt-get install -yq build-essential \ + sudo apt-get update -q; sudo apt-get install -yq make build-essential \ libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - wget curl llvm libncurses5-dev libncursesw5-dev \ - xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + curl llvm libncurses5-dev libncursesw5-dev \ + xz-utils tk-dev libffi-dev liblzma-dev - run: | export PYENV_ROOT="$GITHUB_WORKSPACE" echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 7963922c46..2d3ba3c6dd 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -6,10 +6,10 @@ jobs: fail-fast: false matrix: os: + - ubuntu-22.04 - ubuntu-20.04 - - ubuntu-18.04 + - macos-12 - macos-11 - - macos-10.15 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 2b9a306a39..97e1b08165 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -10,7 +10,7 @@ jobs: - 3.8.13 - 3.9.13 - 3.10.6 - runs-on: Ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 # Normally, we would use the superbly maintained... @@ -19,9 +19,9 @@ jobs: # python-version: ${{ matrix.python-version }} # ... but in the repo, we want to test pyenv builds on Ubuntu - run: | - sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ - libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ - xz-utils tk-dev libffi-dev liblzma-dev python-openssl git + sudo apt-get install -yq make build-essential libssl-dev zlib1g-dev \ + libbz2-dev libreadline-dev libsqlite3-dev curl \ + libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # https://github.com/pyenv/pyenv#installation - run: pwd - env: From 7c1c1805510a94102431f9be5182b376d9003038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20=C5=A0?= Date: Sun, 4 Sep 2022 00:48:43 +0200 Subject: [PATCH 0478/1324] Add Cinder 3.8 (#2433) * Add Cinder 3.8 * Add distro and GCC warnings * Set the complier to GCC 10 if available Co-authored-by: Ivan Pozdeev --- .../share/python-build/cinder-3.8-dev | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 plugins/python-build/share/python-build/cinder-3.8-dev diff --git a/plugins/python-build/share/python-build/cinder-3.8-dev b/plugins/python-build/share/python-build/cinder-3.8-dev new file mode 100644 index 0000000000..5a3c8a8223 --- /dev/null +++ b/plugins/python-build/share/python-build/cinder-3.8-dev @@ -0,0 +1,31 @@ +require_distro Fedora 32 &>/dev/null || \ +{ echo + colorize 1 "WARNING" + cat >&2 </dev/null) == 10 ]] || \ +{ command -v "gcc-10" >/dev/null && \ + export CC="gcc-10" && \ + echo "python-build: setting the compiler to \`gcc-10'"; } || \ +{ + echo + colorize 1 WARNING + cat >&2 < Date: Sun, 4 Sep 2022 01:54:33 +0300 Subject: [PATCH 0479/1324] 2.3.4 --- CHANGELOG.md | 10 ++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 27c230e24e..1919615a34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ ## Version History +## Release 2.3.4 + +* Add CPython 3.11.0rc1 (#2434) +* Add support for multiple versions in `pyenv uninstall` (#2432) +* Add micropython 1.18 and 1.19.1 (#2443) +* CI: support Micropython, deleted scripts; build with -v (#2447) +* Re-allow paths in .python-version while still preventing CVE-2022-35861 (#2442) +* CI: Bump OS versions (#2448) +* Add Cinder 3.8 (#2433) + ## Release 2.3.3 * Use version sort in `pyenv versions` (#2405) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 906687ee71..61e793cbed 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.3" +version="2.3.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 4e31668c2136bd7c97b30776da62e80e9a376279 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 5 Sep 2022 23:20:39 +0300 Subject: [PATCH 0480/1324] Ignore beta and release candidates in :latest Fixes https://github.com/pyenv/pyenv/issues/2450 --- pyenv.d/install/latest.bash | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/pyenv.d/install/latest.bash b/pyenv.d/install/latest.bash index c04bc2f04b..f33e365b63 100644 --- a/pyenv.d/install/latest.bash +++ b/pyenv.d/install/latest.bash @@ -1,7 +1,13 @@ DEFINITION_PREFIX="${DEFINITION%%:*}" DEFINITION_TYPE="${DEFINITION_PREFIX%%-*}" # TODO: support non-CPython versions if [[ "${DEFINITION}" != "${DEFINITION_PREFIX}" ]]; then - DEFINITION_CANDIDATES=($(python-build --definitions | grep -F "${DEFINITION_PREFIX}" | grep "^${DEFINITION_TYPE}" | sed -e '/-dev$/d' -e '/-src$/d' | sort -t. -k1,1r -k 2,2nr -k 3,3nr || true)) + DEFINITION_CANDIDATES=\ + ($(python-build --definitions | \ + grep -F "${DEFINITION_PREFIX}" | \ + grep "^${DEFINITION_TYPE}" | \ + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' | \ + sort -t. -k1,1r -k 2,2nr -k 3,3nr \ + || true)) DEFINITION="${DEFINITION_CANDIDATES}" VERSION_NAME="${DEFINITION##*/}" fi From 23559ee6d10c5c702f924803b81eaa54a776b360 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 6 Sep 2022 01:43:12 +0300 Subject: [PATCH 0481/1324] Fix syntax error --- pyenv.d/install/latest.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyenv.d/install/latest.bash b/pyenv.d/install/latest.bash index f33e365b63..6f45a50dd5 100644 --- a/pyenv.d/install/latest.bash +++ b/pyenv.d/install/latest.bash @@ -1,8 +1,8 @@ DEFINITION_PREFIX="${DEFINITION%%:*}" DEFINITION_TYPE="${DEFINITION_PREFIX%%-*}" # TODO: support non-CPython versions if [[ "${DEFINITION}" != "${DEFINITION_PREFIX}" ]]; then - DEFINITION_CANDIDATES=\ - ($(python-build --definitions | \ + DEFINITION_CANDIDATES=(\ + $(python-build --definitions | \ grep -F "${DEFINITION_PREFIX}" | \ grep "^${DEFINITION_TYPE}" | \ sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' | \ From f6f1803ac9105773e458ff540e171a1169f43c91 Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Tue, 6 Sep 2022 11:13:59 -0500 Subject: [PATCH 0482/1324] Add CPython 3.10.7 (#2454) --- plugins/python-build/share/python-build/3.10.7 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.7 diff --git a/plugins/python-build/share/python-build/3.10.7 b/plugins/python-build/share/python-build/3.10.7 new file mode 100644 index 0000000000..0e1b04bf5b --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.7 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.7" "https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tar.xz#6eed8415b7516fb2f260906db5d48dd4c06acc0cb24a7d6cc15296a604dcdc48" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.7" "https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz#1b2e4e2df697c52d36731666979e648beeda5941d0f95740aafbf4163e5cc126" standard verify_py310 copy_python_gdb ensurepip +fi From 6a104f68d014813fc8a8e270933ac564e094a931 Mon Sep 17 00:00:00 2001 From: Grzegorz Date: Tue, 6 Sep 2022 20:39:31 +0200 Subject: [PATCH 0483/1324] docs: Add configuration option for Fish 3.2.0+ (#2449) The original instructions were added 2 years ago in https://github.com/pyenv/pyenv/commit/0f2d659732094f6bef11361dbc6261132edc63e2. Since then, [Fish released](https://github.com/fish-shell/fish-shell/releases/tag/3.2.0) [a more declarative instruction for this operation](https://fishshell.com/docs/current/cmds/fish_add_path.html), which is now the recommended way of manipulating `PATH` in Fish. --- README.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c57ab35471..ba9f86a506 100644 --- a/README.md +++ b/README.md @@ -324,14 +324,21 @@ See [Advanced configuration](#advanced-configuration) for details and more confi - For **Fish shell**: - Execute this interactively: + If you have Fish 3.2.0 or newer, execute this interactively: + + ~~~ fish + set -Ux PYENV_ROOT $HOME/.pyenv + fish_add_path $PYENV_ROOT/bin + ~~~ + + Otherwise, execute the snippet below: ~~~ fish set -Ux PYENV_ROOT $HOME/.pyenv set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths ~~~ - And add this to `~/.config/fish/config.fish`: + Now, add this to `~/.config/fish/config.fish`: ~~~ fish pyenv init - | source From a0fbdad292811101320c7cb1142f82a5b2e8f827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Wed, 7 Sep 2022 11:13:11 -0500 Subject: [PATCH 0484/1324] Add CPython security releases 3.7.14, 3.8.14 and 3.9.14 --- plugins/python-build/share/python-build/3.7.14 | 9 +++++++++ plugins/python-build/share/python-build/3.8.14 | 9 +++++++++ plugins/python-build/share/python-build/3.9.14 | 9 +++++++++ 3 files changed, 27 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.7.14 create mode 100644 plugins/python-build/share/python-build/3.8.14 create mode 100644 plugins/python-build/share/python-build/3.9.14 diff --git a/plugins/python-build/share/python-build/3.7.14 b/plugins/python-build/share/python-build/3.7.14 new file mode 100644 index 0000000000..0cac798012 --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.14 @@ -0,0 +1,9 @@ +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.14" "https://www.python.org/ftp/python/3.7.14/Python-3.7.14.tar.xz#4157ae31eb81af19e81c36882610491b0fb8f50e00fa8a17b095c88908b9c45c" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.14" "https://www.python.org/ftp/python/3.7.14/Python-3.7.14.tgz#82b2abf8978caa61a9011d166eede831b32de9cbebc0db8162900fa23437b709" standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.14 b/plugins/python-build/share/python-build/3.8.14 new file mode 100644 index 0000000000..288923e633 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.14 @@ -0,0 +1,9 @@ +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.14" "https://www.python.org/ftp/python/3.8.14/Python-3.8.14.tar.xz#5d77e278271ba803e9909a41a4f3baca006181c93ada682a5e5fe8dc4a24c5f3" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.14" "https://www.python.org/ftp/python/3.8.14/Python-3.8.14.tgz#41f959c480c59211feb55d5a28851a56c7e22d02ef91035606ebb21011723c31" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.14 b/plugins/python-build/share/python-build/3.9.14 new file mode 100644 index 0000000000..05b5d5e82f --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.14 @@ -0,0 +1,9 @@ +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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.14" "https://www.python.org/ftp/python/3.9.14/Python-3.9.14.tar.xz#651304d216c8203fe0adf1a80af472d8e92c3b0e0a7892222ae4d9f3ae4debcf" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.14" "https://www.python.org/ftp/python/3.9.14/Python-3.9.14.tgz#9201836e2c16361b2b7408680502393737d44f227333fe2e5729c7d5f6041675" standard verify_py39 copy_python_gdb ensurepip +fi From 0740fdf9107d00beff69333a2d2e8fb5025fac10 Mon Sep 17 00:00:00 2001 From: Tsuki <9085560+Tsuki@users.noreply.github.com> Date: Wed, 14 Sep 2022 12:48:12 +0800 Subject: [PATCH 0485/1324] Update miniconda3-3.9-4.12.0 (#2460) update checksum from https://repo.anaconda.com/miniconda/ Miniconda3-py39_4.12.0-MacOSX-arm64.sh 52.2M 2022-06-01 14:45:20 f7448cfeb278f2a84ed903db02d5525c --- plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 b/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 index 8e79e780f3..ad0b6fa0f1 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-4.12.0 @@ -12,7 +12,7 @@ case "$(anaconda_architecture 2>/dev/null || true)" in install_script "Miniconda3-py39_4.12.0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-Linux-x86_64.sh#7843dd7d0a2c53b0df37ca8189672992" "miniconda" verify_py39 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py39_4.12.0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-MacOSX-arm64.sh#31251793539cf952ee99c18e34c30c7f" "miniconda" verify_py39 + install_script "Miniconda3-py39_4.12.0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-MacOSX-arm64.sh#f7448cfeb278f2a84ed903db02d5525c" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) install_script "Miniconda3-py39_4.12.0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_4.12.0-MacOSX-x86_64.sh#143b9bb03b6e4865be4ebbf40b108772" "miniconda" verify_py39 From 1d28067353920f8cd8a9ef72d3675b07adefbe7c Mon Sep 17 00:00:00 2001 From: Viktor Haag Date: Wed, 14 Sep 2022 00:53:34 -0400 Subject: [PATCH 0486/1324] Add CPython 3.11.0rc2 (#2459) --- .../python-build/share/python-build/{3.11.0rc1 => 3.11.0rc2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.11.0rc1 => 3.11.0rc2} (58%) diff --git a/plugins/python-build/share/python-build/3.11.0rc1 b/plugins/python-build/share/python-build/3.11.0rc2 similarity index 58% rename from plugins/python-build/share/python-build/3.11.0rc1 rename to plugins/python-build/share/python-build/3.11.0rc2 index cc946eddfa..84bfef5826 100644 --- a/plugins/python-build/share/python-build/3.11.0rc1 +++ b/plugins/python-build/share/python-build/3.11.0rc2 @@ -3,7 +3,7 @@ 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 if has_tar_xz_support; then - install_package "Python-3.11.0rc1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc1.tar.xz#53a5377c37a8a2c6da075b14eb9d63374579f7f3c718fa20f0a1fbb0e94a922b" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0rc2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc2.tar.xz#25b35cc7d82c5ad34d867b179a1c1695d129be5ed14a21e46b6b7f2350a8b490" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0rc1" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc1.tgz#456f32a8d66e7cae226478a74c3ebb358bae09eba0b8537f47d7b2790f65a1f0" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0rc2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc2.tgz#d653d52498fa8e711f8b6bf42051e24a1fd14e21f48dba500803ab7e9218d6ec" standard verify_py311 copy_python_gdb ensurepip fi From cfe684ef42dd700d5aa88eec314b1da20fb226b6 Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Thu, 15 Sep 2022 10:53:22 -0400 Subject: [PATCH 0487/1324] Add patches for 3.7.14 needed for Apple Silicon (#2463) --- ...system-libffi-patches-for-arm64-macO.patch | 310 ++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 37 +++ 2 files changed, 347 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch diff --git a/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..f23946d0fb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,310 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..8ad6c8296b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,37 @@ +From f2595c038ed7bfd182d9d05d83786106ebd02ca0 Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index a67dd9bc12..3e9c8185c3 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.37.3 + From c5e0d2cd941743d44850482b9c16e8883aa1ab86 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 15 Sep 2022 22:01:05 +0300 Subject: [PATCH 0488/1324] Document extended support for 3.7.14 Added in https://github.com/pyenv/pyenv/pull/2463 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ba9f86a506..e276c545ae 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ Though we don't actively maintain those patches, since existing releases never c it's safe to assume that they will continue working until there are further incompatible changes in a later version of those environments. -* *3.7.8-3.7.13, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 +* *3.7.8-3.7.14, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 * *3.6.15* : MacOS 11+ and XCode 13.3 * *2.7.18* : MacOS 10.15+ and Apple Silicon From e6446555f3ca582eb1210d34c90809de42ff0ff7 Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Tue, 13 Sep 2022 16:25:15 +0300 Subject: [PATCH 0489/1324] Add envvar to skip Homebrew --- plugins/python-build/README.md | 5 +++-- plugins/python-build/bin/python-build | 23 ++++++++++++++--------- plugins/python-build/test/build.bats | 26 ++++++++++++++++++++++++++ 3 files changed, 43 insertions(+), 11 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 6d6effd9ce..0665c047a5 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -113,6 +113,7 @@ You can set certain environment variables to control the build process. checksum of the file to the mirror URL. * `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from their original source URLs instead of using a mirror. +* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew on macOS. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions in `share/python-build/` are looked up. * `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get @@ -231,7 +232,7 @@ the full build log for build failures. ### Testing new python versions -If you are contributing a new python version for python-build, +If you are contributing a new python version for python-build, you can test the build in a [docker](https://www.docker.com/) container based on Ubuntu 18.04. With docker installed: @@ -249,7 +250,7 @@ docker run -it my_container ``` The container will need to be rebuilt whenever you change the repo, -but after the first build, this will be very fast, +but after the first build, this will be very fast, as the layer including the build dependencies will be cached. Changes made inside the container will not be persisted. diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 52e8a8460a..1b5c30aa45 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -112,6 +112,11 @@ is_mac() { [ $# -eq 0 ] || [ "$(osx_version)" "$@" ] } +can_use_homebrew() { + [ -z "$PYTHON_BUILD_SKIP_HOMEBREW" ] || return 1 + is_mac || return 1 +} + # 9.1 -> 901 # 10.9 -> 1009 # 10.10 -> 1010 @@ -1322,7 +1327,7 @@ configured_with_package_dir() { } use_homebrew() { - is_mac || return 1 + can_use_homebrew || return 1 # unless Homebrew is at the default /usr/local, need to add its paths to # compiler search to be able to use non-keg-only deps from there if is_mac && command -v brew &>/dev/null; then @@ -1344,7 +1349,7 @@ needs_yaml() { } use_homebrew_yaml() { - is_mac || return 1 + can_use_homebrew || return 1 local libdir="$(brew --prefix libyaml 2>/dev/null || true)" if [ -d "$libdir" ]; then echo "python-build: use libyaml from homebrew" @@ -1388,7 +1393,7 @@ has_broken_mac_readline() { } use_homebrew_readline() { - is_mac || return 1 + can_use_homebrew || return 1 if ! configured_with_package_dir "python" "readline/rlconf.h"; then local libdir="$(brew --prefix readline 2>/dev/null || true)" if [ -d "$libdir" ]; then @@ -1429,7 +1434,7 @@ has_broken_mac_openssl() { } use_homebrew_openssl() { - is_mac || return 1 + can_use_homebrew || return 1 command -v brew >/dev/null || return 1 for openssl in ${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl}; do local ssldir="$(brew --prefix "${openssl}" || true)" @@ -1529,7 +1534,7 @@ build_package_verify_openssl() { } use_homebrew_zlib() { - is_mac || return 1 + can_use_homebrew || return 1 local brew_zlib="$(brew --prefix zlib 2>/dev/null || true)" if [ -d "$brew_zlib" ]; then echo "python-build: use zlib from homebrew" @@ -1549,7 +1554,7 @@ use_xcode_sdk_zlib() { } use_homebrew_tcltk() { - is_mac || return 1 + can_use_homebrew || return 1 # get the version from the folder that homebrew versions local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" if [ -d "$tcltk_libdir" ]; then @@ -1591,13 +1596,13 @@ use_custom_tcltk() { get_tcltk_flag_from() { IFS=$'\n' # parse input string into array - local opts_arr=( $(xargs -n1 <<<"$1") ) + local opts_arr=( $(xargs -n1 <<<"$1") ) # iterate through `opts_arr`, break if `--with-tcltk-libs=` was found. for opts in ${opts_arr[@]}; do # `--with-tcltk-libs=` must be the prefix. if [[ "$opts" == "--with-tcltk-libs="* ]]; then - # return + # return echo "$opts" break fi @@ -1607,7 +1612,7 @@ get_tcltk_flag_from() { } use_tcltk() { - if is_mac; then + if can_use_homebrew; then local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" fi local tcl_tk_libs="$(get_tcltk_flag_from "$PYTHON_CONFIGURE_OPTS")" diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 1034f0ba82..5e75716106 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -283,6 +283,32 @@ make install OUT } +@test "no library searches performed during normal operation touch homebrew if envvar is set" { + cached_tarball "Python-3.6.2" + + for i in {1..4}; do stub uname '-s : echo Darwin'; done + for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub brew true; brew + stub_make_install + export PYTHON_BUILD_SKIP_HOMEBREW=1 + + run_inline_definition < Date: Sat, 17 Sep 2022 04:54:04 +0300 Subject: [PATCH 0490/1324] Remove extraneous is_mac call --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/build.bats | 16 ++++++++-------- plugins/python-build/test/compiler.bats | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 1b5c30aa45..5ae819cbf0 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1330,7 +1330,7 @@ use_homebrew() { can_use_homebrew || return 1 # unless Homebrew is at the default /usr/local, need to add its paths to # compiler search to be able to use non-keg-only deps from there - if is_mac && command -v brew &>/dev/null; then + if command -v brew &>/dev/null; then local brew_prefix="$(brew --prefix 2>/dev/null || true)" # /usr/local/lib:/usr/lib is the default library search path if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 5e75716106..e770a6900b 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -151,7 +151,7 @@ OUT BREW_PREFIX="$TMP/homebrew-prefix" mkdir -p "$BREW_PREFIX" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..8}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix : echo '$BREW_PREFIX'" false stub_make_install @@ -179,7 +179,7 @@ OUT brew_libdir="$TMP/homebrew-yaml" mkdir -p "$brew_libdir" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix libyaml : echo '$brew_libdir'" for i in {1..4}; do stub brew false; done @@ -234,7 +234,7 @@ OUT readline_libdir="$TMP/homebrew-readline" mkdir -p "$readline_libdir" - for i in {1..8}; do stub uname '-s : echo Darwin'; done + for i in {1..7}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done for i in {1..2}; do stub brew false; done stub brew "--prefix readline : echo '$readline_libdir'" @@ -317,7 +317,7 @@ OUT mkdir -p "$readline_libdir/include/readline" touch "$readline_libdir/include/readline/rlconf.h" - for i in {1..8}; do stub uname '-s : echo Darwin'; done + for i in {1..7}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done for i in {1..3}; do stub brew false; done @@ -349,7 +349,7 @@ OUT mkdir -p "$tcl_tk_libdir/lib" echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew false @@ -383,7 +383,7 @@ OUT tcl_tk_version_long="8.6.10" tcl_tk_version="${tcl_tk_version_long%.*}" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..8}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done for i in {1..4}; do stub brew false; done @@ -411,7 +411,7 @@ OUT @test "number of CPU cores defaults to 2" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done stub sysctl false @@ -438,7 +438,7 @@ OUT @test "number of CPU cores is detected on Mac" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done stub sysctl '-n hw.ncpu : echo 4' diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index 96c304231d..867aa88bc0 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -63,7 +63,7 @@ DEF mkdir -p "$INSTALL_ROOT" cd "$INSTALL_ROOT" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..3}; do stub sw_vers '-productVersion : echo 10.10'; done stub cc 'false' From 73d4f3102aea375b3a91e9c33eca657ac8a6a93e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 17 Sep 2022 05:21:53 +0300 Subject: [PATCH 0491/1324] Allow to test python-build separately --- Makefile | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a1e2625ef0..d7a85a158a 100644 --- a/Makefile +++ b/Makefile @@ -1,11 +1,15 @@ -.PHONY: test test-build +.PHONY: test test-build test-unit test-plugin # Do not pass in user flags to build tests. unexport PYTHON_CFLAGS unexport PYTHON_CONFIGURE_OPTS -test: bats +test: test-unit test-plugin + +test-unit: bats PATH="./bats/bin:$$PATH" test/run + +test-plugin: bats cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test PYTHON_BUILD_ROOT := $(CURDIR)/plugins/python-build From d722f059a0efc35ca34df49e6825b4d73a11e238 Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Thu, 22 Sep 2022 10:32:50 +0300 Subject: [PATCH 0492/1324] Drop Travis integration (#2468) It has been unused since Travis dropped free plans --- .travis.yml | 83 ----------------------------------------------------- 1 file changed, 83 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4537e71c27..0000000000 --- a/.travis.yml +++ /dev/null @@ -1,83 +0,0 @@ -# Two types of tests: -# -# 1. shell tests run using bats -# 2. build tests also run using bats -# -# Shell tests are run unconditionally on Linux (see jobs.include). -# -# Build tests can be skipped by starting the commit message with -# '[skip build]'. -# -# Build tests are run on platforms generated from all combinations -# of keys below. -language: c - -os: -- linux -- osx - -dist: -- focal - -# https://docs.travis-ci.com/user/reference/osx/#macos-version -osx_image: -- xcode9.4.1 # macOS 10.13.6 -- xcode10.3 # macOS 10.14.4 -- xcode11.6 # macOS 10.15.7 -- xcode12.2 # macOS 10.15.7 - -env: -- PYTHON_BUILD_VERSION=3.9.1 -- PYTHON_BUILD_VERSION=3.7.5 - -before_install: -- date +%Y-%m-%dT%H:%M:%S - -install: git clone --depth 1 --branch v1.2.0 https://github.com/bats-core/bats-core.git bats - -# Default for auto-generated jobs. -script: make test-build - -jobs: - include: - # Shell-based tests should execute every time. - - stage: test shell - script: make test - env: PYENV_NATIVE_EXT=1 - after_script: [] - os: linux - - stage: test shell - script: make test - env: PYENV_NATIVE_EXT= - after_script: [] - os: linux - - exclude: - # For each osx_image but one there should be an entry in the exclude - # list, to prevent duplicate Linux builds. - - os: linux - osx_image: xcode9.4 - - os: linux - osx_image: xcode10 - - allow_failures: - - env: PYTHON_BUILD_VERSION=3.9.1 - -stages: -- test shell -- name: test - if: NOT (commit_message =~ /^\[skip build\]/) - -# Default - -notifications: - email: - on_success: never - -deploy: - provider: releases - api_key: - secure: FLWevL09KYp7V1SjJUNEdWzuomuocXwNvPr1DSAFH7mmrjKTtjzwrjINAthSqzjlDrs5B//P47l1VLyHp5byEzy673W+bOmEg8swmqc7E9FrHLRyEByd/yca3DzkZgXEXgGdY/cl7tHhM4V2fYKEgAIWbFV+takmTFMK4WkEtNg= - on: - repo: pyenv/pyenv - tags: true From 5b08a6492b22a22b291be483321009fd85be63fa Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 22 Sep 2022 10:59:03 +0300 Subject: [PATCH 0493/1324] Add missing patch for 3.7.14 (#2469) --- ...error-when-opening-header-with-non-U.patch | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..773b69fa0e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.14/Python-3.7.14/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From f3521e88be02230dc979a8b0fa82df8e0c007a57 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 23 Sep 2022 12:16:39 +0300 Subject: [PATCH 0494/1324] Allow to build CPython with --with-dsymutil Since 3.12, CPython can provide debug symbols in Apple's nonstandard way, "dSYM bundles" --- plugins/python-build/bin/python-build | 11 +++++ plugins/python-build/test/build.bats | 69 +++++++++++++++++++++++++-- 2 files changed, 75 insertions(+), 5 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5ae819cbf0..4531f1dc43 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -779,6 +779,7 @@ build_package_standard_build() { else use_homebrew_zlib || true fi + use_dsymutil || true fi ( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then @@ -1626,6 +1627,16 @@ use_tcltk() { fi } +# Since 3.12, CPython can add DWARF debug information in MacOS +# using Apple's nonstandard way, `dsymutil', that creates a "dSYM bundle" +# that's supposed to be installed alongside executables +# (https://github.com/python/cpython/issues/95973). +use_dsymutil() { + if [[ -n "$PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL" ]] && is_mac; then + package_option python configure --with-dsymutil + fi +} + build_package_enable_shared() { package_option python configure --enable-shared } diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index e770a6900b..f761c8f1af 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -515,26 +515,85 @@ make install DOGE="such wow" OUT } -@test "setting MAKE_INSTALL_OPTS to a multi-word string" { +@test "configuring with dSYM in MacOS" { cached_tarball "Python-3.6.2" - for i in {1..8}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + for i in {1..4}; do stub brew false; done stub_make_install - export MAKE_INSTALL_OPTS="DOGE=\"such wow\"" run_inline_definition < Date: Fri, 23 Sep 2022 16:15:30 +0300 Subject: [PATCH 0495/1324] Build 3.12+ with --with-dsymutil --- plugins/python-build/share/python-build/3.12-dev | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index 08396a674c..8fa3a02ebb 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -1,5 +1,6 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.12-dev" "https://github.com/python/cpython" main standard verify_py312 copy_python_gdb ensurepip From 2c2619a49e5917e62471e3ba7f7a77e7b4cd36e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Wed, 5 Oct 2022 20:52:20 +0300 Subject: [PATCH 0496/1324] Add Pyston 2.3.5 (#2476) --- .../share/python-build/pyston-2.3.5 | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 plugins/python-build/share/python-build/pyston-2.3.5 diff --git a/plugins/python-build/share/python-build/pyston-2.3.5 b/plugins/python-build/share/python-build/pyston-2.3.5 new file mode 100644 index 0000000000..caaac6b557 --- /dev/null +++ b/plugins/python-build/share/python-build/pyston-2.3.5 @@ -0,0 +1,23 @@ +# sha256sum used for checksum values + +# version of pyston +VER='2.3.5' +# alias for download location +DOWNLOAD='https://github.com/pyston/pyston/releases/download' + +case "$(pyston_architecture 2>/dev/null || true)" in +"linux64" ) + install_package "pyston_${VER}_portable_amd64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_amd64.tar.gz#c71c711d60a9c18f243a9e30fd35e0818674ae96f534c67c27b0cdfbc9132ef8" "pyston" verify_py38 get_pip + ;; +"linux-aarch64" ) + install_package "pyston_${VER}_portable_arm64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_arm64.tar.gz#c578cb806c62d9dca8728f190a87e172305bd80887e206df42c4c5658ab469c1" "pyston" verify_py38 get_pip + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": A Pyston ${VER} binary is not available for $(pyston_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From ea6085e3f37f94a02da770fa46d5662f58abfb9e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 8 Oct 2022 20:49:49 +0300 Subject: [PATCH 0497/1324] 2.3.5 --- CHANGELOG.md | 13 +++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1919615a34..b5282f16f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ ## Version History +## Release 2.3.5 + +* Add CPython 3.10.7 (#2454) +* Docs: update Fish PATH update (#2449) +* Add CPython 3.7.14, 3.8.14 and 3.9.14 (#2456) +* Update miniconda3-3.9-4.12.0 (#2460) +* Add CPython 3.11.0rc2 (#2459) +* Add patches for 3.7.14 to support Apple Silicon (#2463) +* Add ability to skip all use of Homebrew (#2464) +* Drop Travis integration (#2468) +* Build CPython 3.12+ with --with-dsymutil in MacOS (#2471) +* Add Pyston 2.3.5 (#2476) + ## Release 2.3.4 * Add CPython 3.11.0rc1 (#2434) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 61e793cbed..4ac0d55936 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.4" +version="2.3.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 776f6ff9fa2ec6b703aed84f7fc4cdaac282b00e Mon Sep 17 00:00:00 2001 From: MuX <64381665+MuXodious@users.noreply.github.com> Date: Wed, 12 Oct 2022 07:39:42 +0300 Subject: [PATCH 0498/1324] Add CPython 3.10.8 (#2480) --- plugins/python-build/share/python-build/3.10.8 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.8 diff --git a/plugins/python-build/share/python-build/3.10.8 b/plugins/python-build/share/python-build/3.10.8 new file mode 100644 index 0000000000..b5d4773985 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.8 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.8" "https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tar.xz#6a30ecde59c47048013eb5a658c9b5dec277203d2793667f578df7671f7f03f3" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.8" "https://www.python.org/ftp/python/3.10.8/Python-3.10.8.tgz#f400c3fb394b8bef1292f6dc1292c5fadc3533039a5bc0c3e885f3e16738029a" standard verify_py310 copy_python_gdb ensurepip +fi From 03a5d65387db282f77a8bc92581cd734133329b5 Mon Sep 17 00:00:00 2001 From: Adam Johnson Date: Wed, 12 Oct 2022 18:52:53 +0100 Subject: [PATCH 0499/1324] Add CPython 3.7.15, 3.8.15, and 3.9.15 (#2482) Co-authored-by: Ivan Pozdeev --- .../python-build/share/python-build/3.7.15 | 9 + .../python-build/share/python-build/3.8.15 | 9 + .../python-build/share/python-build/3.9.15 | 9 + ...system-libffi-patches-for-arm64-macO.patch | 310 ++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 37 +++ ...error-when-opening-header-with-non-U.patch | 30 ++ 6 files changed, 404 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.7.15 create mode 100644 plugins/python-build/share/python-build/3.8.15 create mode 100644 plugins/python-build/share/python-build/3.9.15 create mode 100644 plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/3.7.15 b/plugins/python-build/share/python-build/3.7.15 new file mode 100644 index 0000000000..3aab86cf32 --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.15 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.15" "https://www.python.org/ftp/python/3.7.15/Python-3.7.15.tar.xz#5911475a07ac2b53d746e88a0716af6d2b4734941919136ea0d33fb9c75b9714" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.15" "https://www.python.org/ftp/python/3.7.15/Python-3.7.15.tgz#cf2993798ae8430f3af3a00d96d9fdf320719f4042f039380dca79967c25e436" standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.15 b/plugins/python-build/share/python-build/3.8.15 new file mode 100644 index 0000000000..83ef126f85 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.15 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.15" "https://www.python.org/ftp/python/3.8.15/Python-3.8.15.tar.xz#5114fc7918a2a5e20eb5aac696b30c36f412c6ef24b13f5c9eb9e056982d9550" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.15" "https://www.python.org/ftp/python/3.8.15/Python-3.8.15.tgz#924d46999df82aa2eaa1de5ca51d6800ffb56b4bf52486a28f40634e3362abc4" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.15 b/plugins/python-build/share/python-build/3.9.15 new file mode 100644 index 0000000000..39c372232a --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.15 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.15" "https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tar.xz#12daff6809528d9f6154216950423c9e30f0e47336cb57c6aa0b4387dd5eb4b2" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.15" "https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tgz#48d1ccb29d5fbaf1fb8f912271d09f7450e426d4dfe95978ef6aaada70ece4d8" standard verify_py39 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..f23946d0fb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,310 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..8ad6c8296b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,37 @@ +From f2595c038ed7bfd182d9d05d83786106ebd02ca0 Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index a67dd9bc12..3e9c8185c3 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.37.3 + diff --git a/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..773b69fa0e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.15/Python-3.7.15/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From 0726e02e3a1b638f6442dffd880abf256e9c2bf7 Mon Sep 17 00:00:00 2001 From: Noam Cohen Date: Mon, 24 Oct 2022 22:49:48 +0300 Subject: [PATCH 0500/1324] Add CPython 3.11.0 (#2493) --- plugins/python-build/share/python-build/3.11.0 | 9 +++++++++ plugins/python-build/share/python-build/3.11.0rc2 | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.11.0 delete mode 100644 plugins/python-build/share/python-build/3.11.0rc2 diff --git a/plugins/python-build/share/python-build/3.11.0 b/plugins/python-build/share/python-build/3.11.0 new file mode 100644 index 0000000000..0f8504b8a0 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.0 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" 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.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz#a57dc82d77358617ba65b9841cee1e3b441f386c3789ddc0676eca077f2951c3" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz#20d77729a64b2a300f08717f7ffcb8da189d02e7c51e6e4a06c0340b619cbf32" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.0rc2 b/plugins/python-build/share/python-build/3.11.0rc2 deleted file mode 100644 index 84bfef5826..0000000000 --- a/plugins/python-build/share/python-build/3.11.0rc2 +++ /dev/null @@ -1,9 +0,0 @@ -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 -if has_tar_xz_support; then - install_package "Python-3.11.0rc2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc2.tar.xz#25b35cc7d82c5ad34d867b179a1c1695d129be5ed14a21e46b6b7f2350a8b490" standard verify_py311 copy_python_gdb ensurepip -else - install_package "Python-3.11.0rc2" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0rc2.tgz#d653d52498fa8e711f8b6bf42051e24a1fd14e21f48dba500803ab7e9218d6ec" standard verify_py311 copy_python_gdb ensurepip -fi From d7389c10eee4c28e9192a0b46075a809270c0600 Mon Sep 17 00:00:00 2001 From: Igor Davydenko Date: Wed, 26 Oct 2022 20:21:53 +0200 Subject: [PATCH 0501/1324] Update Python 3.11.0 tgz checksum (#2496) For some reason checksum for `Python-3.11.0.tgz` file introduced in 0726e02e3a1b638f6442dffd880abf256e9c2bf7 is invalid. Update that checksum to ensure `pyenv install 3.11.0` works well on systems without tar.xz support. --- plugins/python-build/share/python-build/3.11.0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.11.0 b/plugins/python-build/share/python-build/3.11.0 index 0f8504b8a0..596508dcc2 100644 --- a/plugins/python-build/share/python-build/3.11.0 +++ b/plugins/python-build/share/python-build/3.11.0 @@ -5,5 +5,5 @@ install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2. if has_tar_xz_support; then install_package "Python-3.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tar.xz#a57dc82d77358617ba65b9841cee1e3b441f386c3789ddc0676eca077f2951c3" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz#20d77729a64b2a300f08717f7ffcb8da189d02e7c51e6e4a06c0340b619cbf32" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.0" "https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz#64424e96e2457abbac899b90f9530985b51eef2905951febd935f0e73414caeb" standard verify_py311 copy_python_gdb ensurepip fi From faceb4b79cc2d965a94ae71b591fcba88febe2bc Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 26 Oct 2022 23:32:02 +0300 Subject: [PATCH 0502/1324] Allow patching supplementary packages --- plugins/python-build/bin/python-build | 48 ++++++++++++++------------- 1 file changed, 25 insertions(+), 23 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4531f1dc43..a8b6d2caad 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -714,7 +714,7 @@ build_package() { echo "Installing ${package_name}..." >&2 - [ -n "$HAS_PATCH" ] && apply_python_patch "$package_name" + [ -n "$HAS_PATCH" ] && apply_patch "$package_name" <(cat "${package_name}.patch") for command in $commands; do "build_package_${command}" "$package_name" @@ -1071,13 +1071,13 @@ setup_builtin_patches() { local package_name="$1" local package_patch_path="${DEFINITION_PATH%/*}/patches/${DEFINITION_PATH##*/}/${package_name}" - ORIG_HAS_PATCH="$HAS_PATCH" # Apply built-in patches if patch was not given from stdin - if [ -z "$HAS_PATCH" ] && [ -d "${package_patch_path}" ]; then + if [[ -n "$HAS_STDIN_PATCH" ]] && package_is_python "${package_name}"; then + cat >"${package_name}.patch" + HAS_PATCH=true + elif [[ -d "${package_patch_path}" ]]; then { find "${package_patch_path}" -maxdepth 1 -type f } 2>/dev/null | sort | xargs cat 1>"${package_name}.patch" - exec <&- - exec <"${package_name}.patch" HAS_PATCH=true fi } @@ -1085,7 +1085,7 @@ setup_builtin_patches() { cleanup_builtin_patches() { local package_name="$1" rm -f "${package_name}.patch" - HAS_PATCH="$ORIG_HAS_PATCH" + unset HAS_PATCH } fix_directory_permissions() { @@ -1653,31 +1653,33 @@ build_package_auto_tcltk() { fi } -# extglob must be set at parse time, not at runtime +# extglob must be set at both parse time and runtime # https://stackoverflow.com/questions/49283740/bash-script-throws-syntax-errors-when-the-extglob-option-is-set-inside-a-subsh -# -# The function is *parsed* with "extglob" only if an outer `shopt -s exglob` -# exists; at *runtime* you still need to activate it *within* the function. -# shopt -s extglob -apply_python_patch() { - local patchfile - # needed at runtime +package_is_python() { shopt -s extglob case "$1" in - Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* ) - patchfile="$(mktemp "${TMP}/python-patch.XXXXXX")" - cat "${2:--}" >"$patchfile" - - local striplevel=0 - grep -q '^diff --git a/' "$patchfile" && striplevel=1 - patch -p$striplevel --force -i "$patchfile" - ;; + Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* ) + return 0 + ;; esac + return 1 shopt -u extglob } shopt -u extglob +apply_patch() { + local package_name="$1" + local patchfile + patchfile="$(mktemp "${TMP}/python-patch.XXXXXX")" + cat "${2:--}" >"$patchfile" + + local striplevel=0 + grep -q '^diff --git a/' "$patchfile" && striplevel=1 + patch -p$striplevel --force -i "$patchfile" +} + + build_package_symlink_version_suffix() { if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if [ -e "${PREFIX_PATH}/bin" ]; then @@ -2016,7 +2018,7 @@ for option in "${OPTIONS[@]}"; do VERBOSE=true ;; "p" | "patch" ) - HAS_PATCH=true + HAS_STDIN_PATCH=true ;; "g" | "debug" ) DEBUG=true From 9f5dcbffd451d2249b9fc99f177fc8af8a507268 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 26 Oct 2022 21:56:28 +0300 Subject: [PATCH 0503/1324] Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ "error: implicitly declaring library function 'memcmp'" Downstream backport of https://github.com/openssl/openssl/issues/18720 --- .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.11.0/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch diff --git a/plugins/python-build/share/python-build/patches/3.11.0/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.11.0/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.0/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; From 16c4924f22bec8aebced449913f22e21aca3a16d Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Wed, 26 Oct 2022 18:41:30 -0500 Subject: [PATCH 0504/1324] Add CPython 3.12.0a1 (#2495) --- plugins/python-build/share/python-build/3.12.0a1 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.0a1 diff --git a/plugins/python-build/share/python-build/3.12.0a1 b/plugins/python-build/share/python-build/3.12.0a1 new file mode 100644 index 0000000000..54ed16c807 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.0a1 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" 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.0a1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a1.tar.xz#7be2bd9b1fc9f64b334660581bb645f0eae0b344c80130f1eb22983a1c292f43" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.0a1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a1.tgz#db4dd2315715e11250175f5dc06fa9d32d4a9fed4db7b6774d4be72d7b94b7e3" standard verify_py312 copy_python_gdb ensurepip +fi From 44510a68f1b3a8fa5defd6f635643308473f1b88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Thu, 27 Oct 2022 01:55:27 +0200 Subject: [PATCH 0505/1324] Add graalpy-22.3.0 (#2497) --- plugins/python-build/bin/python-build | 20 +++++++ .../share/python-build/graalpy-22.3.0 | 54 +++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-22.3.0 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a8b6d2caad..d30b39b93a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -938,10 +938,30 @@ pypy_architecture() { esac } +graalpy_architecture() { + case "$(uname -s)" in + "Darwin" ) + case "$(uname -m)" in + "x86_64" ) echo "macos-amd64" ;; + "arm64" ) echo "macos-aarch64" ;; + * ) return 1 ;; + esac + ;; + "Linux" ) + case "$(uname -m)" in + "x86_64" ) echo "linux-amd64" ;; + "aarch64" ) echo "linux-aarch64" ;; + * ) return 1 ;; + esac + ;; + esac +} + pyston_architecture() { pypy_architecture } +# Note: not used by graalpy >= 23.3.0 anymore build_package_graalpython() { build_package_copy ln -fs "${PREFIX_PATH}/bin/graalpython" "${PREFIX_PATH}/bin/python" diff --git a/plugins/python-build/share/python-build/graalpy-22.3.0 b/plugins/python-build/share/python-build/graalpy-22.3.0 new file mode 100644 index 0000000000..41f592e7e0 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-22.3.0 @@ -0,0 +1,54 @@ +# Copyright (c) 2022, 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='22.3.0' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="9853036fcde0b115026d8802a4f671b62d7a17fccb269c1e8b5fbf80cef10e23" + ;; +"linux-aarch64" ) + checksum="c48c5d9ff5699046c0629181a40a3116172e1c508c851f0993dcca45d86349c0" + ;; +"macos-amd64" ) + checksum="cc8454f460b5730e778d5b8f79385cf92c39321fbf27d44bb9ca90584670f921" + ;; +"macos-aarch64" ) + checksum="9a388834f28fbb86ff9588d9a150a4d26e9bec28be06c3d60ebe20079f855e41" + ;; +* ) + { 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/vm-${VERSION}" +fi + +install_package "graalpy-${VERSION}${BUILD}" "${urlprefix}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip From 5b0ac41dece9694c16f4e5983510992cd2c05b8f Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 29 Oct 2022 22:48:13 +0300 Subject: [PATCH 0506/1324] Discover Tcl/Tk from Homebrew via pkgconfig for 3.11+ (#2501) CPython 3.11+ dropped support for --with-tcl-tk-* in favor of pure pkgconfig --- plugins/python-build/bin/python-build | 9 +- .../python-build/share/python-build/3.11-dev | 1 + .../python-build/share/python-build/3.11.0 | 1 + .../python-build/share/python-build/3.12-dev | 1 + plugins/python-build/test/build.bats | 113 +++++++++--------- plugins/python-build/test/test_helper.bash | 6 +- 6 files changed, 70 insertions(+), 61 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index d30b39b93a..0b29c4e559 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1580,9 +1580,12 @@ use_homebrew_tcltk() { local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" if [ -d "$tcltk_libdir" ]; then echo "python-build: use tcl-tk from homebrew" - 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" + 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" + fi + export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" fi } diff --git a/plugins/python-build/share/python-build/3.11-dev b/plugins/python-build/share/python-build/3.11-dev index c1865cddee..904f2138ed 100644 --- a/plugins/python-build/share/python-build/3.11-dev +++ b/plugins/python-build/share/python-build/3.11-dev @@ -1,5 +1,6 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.11-dev" "https://github.com/python/cpython" 3.11 standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.11.0 b/plugins/python-build/share/python-build/3.11.0 index 596508dcc2..f96cb69d4d 100644 --- a/plugins/python-build/share/python-build/3.11.0 +++ b/plugins/python-build/share/python-build/3.11.0 @@ -1,5 +1,6 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" 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 diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index 8fa3a02ebb..ba0b8fe695 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -1,5 +1,6 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index f761c8f1af..649af776d0 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -35,7 +35,7 @@ tarball() { executable "$configure" <> build.log +echo "$name: CPPFLAGS=\\"\$CPPFLAGS\\" LDFLAGS=\\"\$LDFLAGS\\" PKG_CONFIG_PATH=\\"\$PKG_CONFIG_PATH\\"" >> build.log echo "$name: \$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log OUT @@ -74,11 +74,11 @@ assert_build_log() { unstub make assert_build_log < Date: Sat, 29 Oct 2022 23:08:02 +0300 Subject: [PATCH 0507/1324] Fix invalid syntax error in `pyenv init -` if PYENV_ROOT has spaces (#2506) --- libexec/pyenv-init | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index f3b0f38be4..24ef3b163c 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -155,7 +155,11 @@ function print_path() { # (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason). # This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367). # --norc negates this behavior of such a customized Bash. - echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); for i in ${!paths[@]}; do if [[ ${paths[i]} == "'\'"${PYENV_ROOT}/shims"\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; fi; done; echo "${paths[*]}"'\'')"' + echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); ' + echo 'for i in ${!paths[@]}; do ' + echo 'if [[ ${paths[i]} == "'\'\'"${PYENV_ROOT}/shims"\'\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; ' + echo 'fi; done; ' + echo 'echo "${paths[*]}"'\'')"' echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"' ;; esac From a12f947cc3b21e908648d063229678147c09e7be Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 30 Oct 2022 03:38:40 +0300 Subject: [PATCH 0508/1324] Auto-resolve prefixes to the latest version (#2487) --- .github/workflows/macos_build.yml | 8 +-- .github/workflows/ubuntu_build.yml | 8 +-- libexec/pyenv-latest | 78 +++++++++++++++++++++ libexec/pyenv-prefix | 1 + libexec/pyenv-version-name | 2 + plugins/python-build/bin/pyenv-install | 4 ++ plugins/python-build/bin/python-build | 23 +++++-- plugins/python-build/test/definitions.bats | 19 +++++ plugins/python-build/test/hooks.bats | 1 + plugins/python-build/test/pyenv.bats | 14 ++++ plugins/python-build/test/test_helper.bash | 26 +++++++ test/latest.bats | 80 ++++++++++++++++++++++ test/version-name.bats | 7 ++ 13 files changed, 258 insertions(+), 13 deletions(-) create mode 100755 libexec/pyenv-latest create mode 100644 test/latest.bats diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 7b39ec76bb..c8eb06409e 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -6,10 +6,10 @@ jobs: fail-fast: false matrix: python-version: - - 3.7.13 - - 3.8.13 - - 3.9.13 - - 3.10.6 + - "3.7" + - "3.8" + - "3.9" + - "3.10" runs-on: macos-11 steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 97e1b08165..59e7978c05 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -6,10 +6,10 @@ jobs: fail-fast: false matrix: python-version: - - 3.7.13 - - 3.8.13 - - 3.9.13 - - 3.10.6 + - "3.7" + - "3.8" + - "3.9" + - "3.10" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest new file mode 100755 index 0000000000..af0b018f5e --- /dev/null +++ b/libexec/pyenv-latest @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +# Summary: Print the latest installed or known version with the given prefix +# Usage: pyenv latest [-k|--known] [-q|--quiet] +# +# -k/--known Select from all known versions instead of installed +# -q/--quiet Do not print a + +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +while [[ $# -gt 0 ]] +do + case "$1" in + -k|--known) + FROM_KNOWN=1 + shift + ;; + -q|--quiet) + QUIET=1 + shift + ;; + *) + break + ;; + esac +done + +prefix=$1 +exitcode=0 + +IFS=$'\n' + + if [[ -z $FROM_KNOWN ]]; then + DEFINITION_CANDIDATES=( $(pyenv-versions --bare) ) + else + DEFINITION_CANDIDATES=( $(python-build --definitions ) ) + fi + # if grep -xFe "$prefix" <<<"${DEFINITION_CANDIDATES[@]}"; then + # echo "$prefix" + # exit $exitcode + # fi + # https://stackoverflow.com/questions/11856054/is-there-an-easy-way-to-pass-a-raw-string-to-grep/63483807#63483807 + prefix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$prefix")" + # FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash + DEFINITION_CANDIDATES=(\ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ + grep -Ee "^$prefix_re[-.]" || true)) + + DEFINITION_CANDIDATES=(\ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(b|rc)[0-9]+$/d')); + + # Compose a sorting key, followed by | and original value + DEFINITION_CANDIDATES=(\ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ + awk \ + '{ if (match($0,"^[[:alnum:]]+-")) + { print substr($0,0,RLENGTH-1) "." substr($0,RLENGTH+1) "..|" $0; } + else + { print $0 "...|" $0; } + }')) + DEFINITION_CANDIDATES=(\ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" \ + | sort -t. -k1,1r -k 2,2nr -k 3,3nr -k4,4nr \ + | cut -f2 -d $'|' \ + || true)) + DEFINITION="${DEFINITION_CANDIDATES[0]}" + + if [[ -n "$DEFINITION" ]]; then + echo "$DEFINITION" + else + if [[ -z $QUIET ]]; then + echo "pyenv: no $([[ -z $FROM_KNOWN ]] && echo installed || echo known) versions match the prefix \`$prefix'" >&2 + fi + exitcode=1 + fi + +exit $exitcode diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index e244e76a25..38b8f823a4 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -42,6 +42,7 @@ OLDIFS="$IFS" exit 1 fi else + version="$(pyenv-latest -q "$version" || echo "$version")" PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}" fi if [ -d "$PYENV_PREFIX_PATH" ]; then diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index 65a198a419..d06357cbf4 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -34,6 +34,8 @@ OLDIFS="$IFS" versions=("${versions[@]}" "${version}") elif version_exists "${version#python-}"; then versions=("${versions[@]}" "${version#python-}") + elif resolved_version="$(pyenv-latest -q "$version")"; then + versions=("${versions[@]}" "${resolved_version}") else echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 any_not_installed=1 diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index b966ff881f..e7877b2d61 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -145,6 +145,10 @@ IFS=$'\n' scripts=(`pyenv-hooks install`) IFS="$OLDIFS" for script in "${scripts[@]}"; do source "$script"; done +# Try to resolve a prefix if user indeed gave a prefix. +# We install the version under the resolved name +# and hooks also see the resolved name +DEFINITION="$(pyenv-latest -q -k "$DEFINITION" || echo "$DEFINITION")" # Set VERSION_NAME from $DEFINITION, if it is not already set. Then # compute the installation prefix. diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0b29c4e559..eca0031977 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2067,12 +2067,25 @@ DEFINITION_PATH="${ARGUMENTS[0]}" if [ -z "$DEFINITION_PATH" ]; then usage 1 >&2 elif [ ! -f "$DEFINITION_PATH" ]; then - for DEFINITION_DIR in "${PYTHON_BUILD_DEFINITIONS[@]}"; do - if [ -f "${DEFINITION_DIR}/${DEFINITION_PATH}" ]; then - DEFINITION_PATH="${DEFINITION_DIR}/${DEFINITION_PATH}" - break + + search_definitions() { + for DEFINITION_DIR in "${PYTHON_BUILD_DEFINITIONS[@]}"; do + if [ -f "${DEFINITION_DIR}/${DEFINITION_PATH}" ]; then + DEFINITION_PATH="${DEFINITION_DIR}/${DEFINITION_PATH}" + break + fi + done + } + + search_definitions + if [ ! -f "$DEFINITION_PATH" ]; then + if RESOLVED_DEFINITION_PATH="$(command -v pyenv-latest >/dev/null && pyenv-latest -k -q "$DEFINITION_PATH")"; then + DEFINITION_PATH="$RESOLVED_DEFINITION_PATH" + unset RESOLVED_DEFINITION_PATH + search_definitions fi - done + fi + unset search_definitions if [ ! -f "$DEFINITION_PATH" ]; then echo "python-build: definition not found: ${DEFINITION_PATH}" >&2 diff --git a/plugins/python-build/test/definitions.bats b/plugins/python-build/test/definitions.bats index 4f9e32a1f4..61d318bf99 100644 --- a/plugins/python-build/test/definitions.bats +++ b/plugins/python-build/test/definitions.bats @@ -60,11 +60,30 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 - } @test "installing nonexistent definition" { + stub pyenv-latest false run python-build "nonexistent" "${TMP}/install" assert [ "$status" -eq 2 ] assert_output "python-build: definition not found: nonexistent" } +@test "resolves prefixes via pyenv-latest" { + stub pyenv-latest "echo 2.7.8" + export PYTHON_BUILD_ROOT="$TMP" + mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" + echo 'echo 2.7.8' > "${PYTHON_BUILD_ROOT}/share/python-build/2.7.8" + run python-build "2.7" "${TMP}/install" + assert_success "2.7.8" +} + +@test "doesn't resolve prefixes if pyenv-latest is unavailable" { + export PATH="$(path_without pyenv-latest)" + export PYTHON_BUILD_ROOT="$TMP" + mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" + echo 'echo 2.7.8' > "${PYTHON_BUILD_ROOT}/share/python-build/2.7.8" + run python-build "2.7" "${TMP}/install" + assert_failure "python-build: definition not found: 2.7" +} + @test "sorting Python versions" { export PYTHON_BUILD_ROOT="$TMP" mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" diff --git a/plugins/python-build/test/hooks.bats b/plugins/python-build/test/hooks.bats index 613c5c2e0d..032895244d 100644 --- a/plugins/python-build/test/hooks.bats +++ b/plugins/python-build/test/hooks.bats @@ -15,6 +15,7 @@ after_install 'echo after: \$STATUS' OUT stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash" stub pyenv-rehash "echo rehashed" + stub pyenv-latest false definition="${TMP}/3.6.2" cat > "$definition" <<<"echo python-build" diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index e1b35818e8..90359c48bb 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -10,6 +10,7 @@ setup() { stub_python_build() { stub python-build "--lib : $BATS_TEST_DIRNAME/../bin/python-build --lib" "$@" + stub pyenv-latest " : false" } @test "install proper" { @@ -23,6 +24,19 @@ stub_python_build() { unstub pyenv-rehash } +@test "install resolves a prefix" { + stub_python_build 'echo python-build "$@"' + stub pyenv-latest '-q -k 3.4 : echo 3.4.2' + pyenv-latest || true # pass through the stub entry added by stub_python_build + + run pyenv-install 3.4 + assert_success "python-build 3.4.2 ${PYENV_ROOT}/versions/3.4.2" + + unstub python-build + unstub pyenv-hooks + unstub pyenv-rehash +} + @test "install pyenv local version by default" { stub_python_build 'echo python-build "$1"' stub pyenv-local 'echo 3.4.2' diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index 459ca6bc4f..c7a20ac2c8 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -139,3 +139,29 @@ assert_output_contains() { } | flunk } } + +# Output a modified PATH that ensures that the given executable is not present, +# but in which system utils necessary for pyenv operation are still available. +path_without() { + local path=":${PATH}:" + for exe; do + local found alt util + for found in $(PATH="$path" type -aP "$exe"); do + found="${found%/*}" + if [ "$found" != "${PYENV_ROOT}/shims" ]; then + alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" + mkdir -p "$alt" + for util in bash head cut readlink greadlink; do + if [ -x "${found}/$util" ]; then + ln -s "${found}/$util" "${alt}/$util" + fi + done + path="${path/:${found}:/:${alt}:}" + fi + done + done + path="${path#:}" + path="${path%:}" + echo "$path" +} + diff --git a/test/latest.bats b/test/latest.bats new file mode 100644 index 0000000000..e3d2f4451e --- /dev/null +++ b/test/latest.bats @@ -0,0 +1,80 @@ +#!/usr/bin/env bats + +load test_helper + +setup() { + export PATH="${PYENV_TEST_DIR}/bin:$PATH" +} + +create_executable() { + local name="$1" + local bin="${PYENV_TEST_DIR}/bin" + mkdir -p "$bin" + sed -Ee '1s/^ +//' > "${bin}/$name" + chmod +x "${bin}/$name" +} + +@test "read from installed" { + create_executable pyenv-versions < Date: Sun, 30 Oct 2022 04:12:42 +0300 Subject: [PATCH 0509/1324] Revert version auto-resolution in `python-build` It was moved to `pyenv-install` --- plugins/python-build/bin/python-build | 23 +++++----------------- plugins/python-build/test/definitions.bats | 19 ------------------ 2 files changed, 5 insertions(+), 37 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index eca0031977..0b29c4e559 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2067,25 +2067,12 @@ DEFINITION_PATH="${ARGUMENTS[0]}" if [ -z "$DEFINITION_PATH" ]; then usage 1 >&2 elif [ ! -f "$DEFINITION_PATH" ]; then - - search_definitions() { - for DEFINITION_DIR in "${PYTHON_BUILD_DEFINITIONS[@]}"; do - if [ -f "${DEFINITION_DIR}/${DEFINITION_PATH}" ]; then - DEFINITION_PATH="${DEFINITION_DIR}/${DEFINITION_PATH}" - break - fi - done - } - - search_definitions - if [ ! -f "$DEFINITION_PATH" ]; then - if RESOLVED_DEFINITION_PATH="$(command -v pyenv-latest >/dev/null && pyenv-latest -k -q "$DEFINITION_PATH")"; then - DEFINITION_PATH="$RESOLVED_DEFINITION_PATH" - unset RESOLVED_DEFINITION_PATH - search_definitions + for DEFINITION_DIR in "${PYTHON_BUILD_DEFINITIONS[@]}"; do + if [ -f "${DEFINITION_DIR}/${DEFINITION_PATH}" ]; then + DEFINITION_PATH="${DEFINITION_DIR}/${DEFINITION_PATH}" + break fi - fi - unset search_definitions + done if [ ! -f "$DEFINITION_PATH" ]; then echo "python-build: definition not found: ${DEFINITION_PATH}" >&2 diff --git a/plugins/python-build/test/definitions.bats b/plugins/python-build/test/definitions.bats index 61d318bf99..4f9e32a1f4 100644 --- a/plugins/python-build/test/definitions.bats +++ b/plugins/python-build/test/definitions.bats @@ -60,30 +60,11 @@ NUM_DEFINITIONS="$(find "$BATS_TEST_DIRNAME"/../share/python-build -maxdepth 1 - } @test "installing nonexistent definition" { - stub pyenv-latest false run python-build "nonexistent" "${TMP}/install" assert [ "$status" -eq 2 ] assert_output "python-build: definition not found: nonexistent" } -@test "resolves prefixes via pyenv-latest" { - stub pyenv-latest "echo 2.7.8" - export PYTHON_BUILD_ROOT="$TMP" - mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" - echo 'echo 2.7.8' > "${PYTHON_BUILD_ROOT}/share/python-build/2.7.8" - run python-build "2.7" "${TMP}/install" - assert_success "2.7.8" -} - -@test "doesn't resolve prefixes if pyenv-latest is unavailable" { - export PATH="$(path_without pyenv-latest)" - export PYTHON_BUILD_ROOT="$TMP" - mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" - echo 'echo 2.7.8' > "${PYTHON_BUILD_ROOT}/share/python-build/2.7.8" - run python-build "2.7" "${TMP}/install" - assert_failure "python-build: definition not found: 2.7" -} - @test "sorting Python versions" { export PYTHON_BUILD_ROOT="$TMP" mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" From 4a031504db759a4dbf69d74511f7d64dbcd0793f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 30 Oct 2022 05:28:53 +0300 Subject: [PATCH 0510/1324] Document prefix auto-resolution et al. * Document listing available versions in the tutorial (#1677) * Reflect 3.7.15's extended support * Document using development head with Homebrew * Structurize the Upgrading section * Fix Pyenv-latest documentation --- COMMANDS.md | 14 +++++++++++++ README.md | 50 +++++++++++++++++++++++++++++++++++++++++--- libexec/pyenv-latest | 6 +----- 3 files changed, 62 insertions(+), 8 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 4d4676f1bf..e57010c39b 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -20,6 +20,7 @@ The most common subcommands are: * [`pyenv exec`](#pyenv-exec) * [`pyenv root`](#pyenv-root) * [`pyenv prefix`](#pyenv-prefix) +* [`pyenv latest`](#pyenv-latest) * [`pyenv hooks`](#pyenv-hooks) * [`pyenv shims`](#pyenv-shims) * [`pyenv init`](#pyenv-init) @@ -330,6 +331,19 @@ locations of the currently selected versions. $ pyenv prefix 3.9.7 /home/user/.pyenv/versions/3.9.7 +## `pyenv latest` + +Displays the latest installed or known version with the given prefix + + Usage: pyenv latest [-k|--known] [-q|--quiet] + + -k/--known Select from all known versions instead of installed + -q/--quiet Do not print an error message on resolution failure + +Only full prefixes are searched: in the actual name, the given prefix must be followed by a dot or a dash. + +Prereleases and versions with specific suffixes (e.g. `-src`) are ignored. + ## `pyenv hooks` Lists installed hook scripts for a given pyenv command. diff --git a/README.md b/README.md index e276c545ae..8de27b0eb0 100644 --- a/README.md +++ b/README.md @@ -53,17 +53,20 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Install Python build dependencies](#install-python-build-dependencies) * **[Usage](#usage)** * [Install additional Python versions](#install-additional-python-versions) + * [Prefix auto-resolution](#prefix-auto-resolution) * [Python versions with extended support](#python-versions-with-extended-support) * [Switch between Python versions](#switch-between-python-versions) * [Uninstall Python versions](#uninstall-python-versions) * [Other operations](#other-operations) * [Upgrading](#upgrading) + * [Upgrading with Homebrew](#upgrading-with-homebrew) + * [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout) * [Uninstalling pyenv](#uninstalling-pyenv) * [Advanced Configuration](#advanced-configuration) * [Using Pyenv without shims](#using-pyenv-without-shims) * [Environment variables](#environment-variables) * **[Development](#development)** - * [Contributing](#contributing)** + * [Contributing](#contributing) * [Version History](#version-history) * [License](#license) @@ -383,6 +386,8 @@ For example, to download and install Python 3.10.4, run: pyenv install 3.10.4 ``` +Running `pyenv install -l` gives the list of all available versions. + **NOTE:** Most Pyenv-provided Python releases are source releases and are built from source as part of installation (that's why you need Python build dependencies preinstalled). You can pass options to Python's `configure` and compiler flags to customize the build, @@ -397,6 +402,23 @@ please visit the wiki page about [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). +#### Prefix auto-resolution + +Pyenv automatically resolves full prefixes to the latest version in the corresponding version line. +E.g. to install the latest 3.10 release: + +```sh +pyenv install 3.10 +``` + +The same happens whenever Pyenv selects a version to use. +Installation selects the latest version known to Pyenv +while switching -- the latest installed version. + +You can run [`pyenv latest `](COMMANDS.md#pyenv-latest) to see +what a specific prefix would be resolved to. + + #### Python versions with extended support For the following Python releases, Pyenv applies user-provided patches that add support for some newer environments. @@ -404,7 +426,7 @@ Though we don't actively maintain those patches, since existing releases never c it's safe to assume that they will continue working until there are further incompatible changes in a later version of those environments. -* *3.7.8-3.7.14, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 +* *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 * *3.6.15* : MacOS 11+ and XCode 13.3 * *2.7.18* : MacOS 10.15+ and Apple Silicon @@ -459,12 +481,34 @@ Note that Pyenv plugins that you install may add their own subcommands. ## Upgrading +### Upgrading with Homebrew + If you've installed Pyenv using Homebrew, upgrade using: ```sh brew upgrade pyenv ``` -If you've installed Pyenv using Pyenv-installer or Git checkout, you can +To switch from a release to the latest development version of Pyenv, use: + +```sh +brew uninstall pyenv +brew install pyenv --head +``` + +then you can upgrade it with `brew upgrade pyenv` as usual. + + +### Upgrading with Installer or Git checkout + +If you've installed Pyenv with Pyenv-installer, you likely have the +[Pyenv-Update](https://github.com/pyenv/pyenv-update) plugin that would +upgrade Pyenv and all installed plugins: + +```sh +pyenv update +``` + +If you've installed Pyenv using Pyenv-installer or Git checkout, you can also upgrade your installation at any time using Git. To upgrade to the latest development version of pyenv, use `git pull`: diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index af0b018f5e..2b265a6893 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -3,7 +3,7 @@ # Usage: pyenv latest [-k|--known] [-q|--quiet] # # -k/--known Select from all known versions instead of installed -# -q/--quiet Do not print a +# -q/--quiet Do not print an error message on resolution failure set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -35,10 +35,6 @@ IFS=$'\n' else DEFINITION_CANDIDATES=( $(python-build --definitions ) ) fi - # if grep -xFe "$prefix" <<<"${DEFINITION_CANDIDATES[@]}"; then - # echo "$prefix" - # exit $exitcode - # fi # https://stackoverflow.com/questions/11856054/is-there-an-easy-way-to-pass-a-raw-string-to-grep/63483807#63483807 prefix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$prefix")" # FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash From a8f921ce4dfeb190d45d0372379b366b43030695 Mon Sep 17 00:00:00 2001 From: Rust Saiargaliev Date: Sun, 30 Oct 2022 11:42:20 +0200 Subject: [PATCH 0511/1324] Document the release process (#2503) --- MAINTENANCE.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 MAINTENANCE.md diff --git a/MAINTENANCE.md b/MAINTENANCE.md new file mode 100644 index 0000000000..cba674a8a2 --- /dev/null +++ b/MAINTENANCE.md @@ -0,0 +1,15 @@ +Creating a release +================== + +The release of the new version of Pyenv is done via GitHub Releases. + +Release checklist: +* Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv/releases) to generate a summary of changes. Save the summary locally. + * The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI) +* Push the version number in `libexec/pyenv---version` + * Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases). + * Major version is pushed if there are breaking changes +* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section), reformatting it like the rest of the changelog sections +* Commit the changes locally into `master` +* Create a new tag with the new version number and push the changes including the tag +* Create a new release on GitHub based on the tag, using the saved summary \ No newline at end of file From e03118235a13f3caab9ec99b92325adee7d0fdb5 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 30 Oct 2022 21:38:06 +0300 Subject: [PATCH 0512/1324] Improve prefix resolution documentation --- COMMANDS.md | 8 +++++++- README.md | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/COMMANDS.md b/COMMANDS.md index e57010c39b..5d52e13f69 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -229,7 +229,13 @@ Then install the desired versions: 2.6.8 * 2.7.6 (set by /home/yyuu/.pyenv/version) -To install the latest version of Python without giving a specific version use the `:latest` syntax. For example, to install the latest patch version for Python 3.8 you could do: +You can also install the latest version of Python in a specific version line by supplying a prefix instead of a complete name: + + $ pyenv install 3.10 + +See the [`pyenv latest` documentation](#pyenv-latest) for details on prefix resolution. + +An older option is to use the `:latest` syntax. For example, to install the latest patch version for Python 3.8 you could do: pyenv install 3.8:latest diff --git a/README.md b/README.md index 8de27b0eb0..80d7cbf4ab 100644 --- a/README.md +++ b/README.md @@ -418,6 +418,8 @@ while switching -- the latest installed version. You can run [`pyenv latest `](COMMANDS.md#pyenv-latest) to see what a specific prefix would be resolved to. +See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details on the resolution process. + #### Python versions with extended support From 6da0e8920738044f53b555f5b47f5f7a3bebbb10 Mon Sep 17 00:00:00 2001 From: Rust Saiargaliev Date: Thu, 3 Nov 2022 09:26:31 +0100 Subject: [PATCH 0513/1324] 2.3.6 --- CHANGELOG.md | 16 ++++++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5282f16f2..c335f0f07e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ ## Version History +## Release 2.3.6 + +* Add CPython 3.10.8 (#2480) +* Add CPython 3.7.15, 3.8.15, and 3.9.15 (#2482) +* Add CPython 3.11.0 (#2493) +* Add CPython 3.12.0a1 (#2495) +* Add graalpy-22.3.0 (#2497) +* Auto-resolve prefixes to the latest version (#2487) + * It must be a full prefix -- the actual searched prefix is `[-.]` + * Other flavors are likely sorted incorrectly atm + * Prereleases and versions with some suffixes (`-dev`, `-src`, `-latest`) are not searched + * `pyenv uninstall` has been excluded from the resolution feature: deleting a dynamically selected installation could be problematic +* Fix OpenSSL 1.1.1q compilation error in MacOS 11+ (#2500) +* Link to Tcl/Tk from Homebrew via pkgconfig for 3.11+ (#2501) +* Fix syntax error in `pyenv init -` if PYENV_ROOT has spaces (#2506) + ## Release 2.3.5 * Add CPython 3.10.7 (#2454) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 4ac0d55936..b1afaf008b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.5" +version="2.3.6" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From ad6a950734a56c62cccdb3a005f4ec5cddbd453f Mon Sep 17 00:00:00 2001 From: Omer Korner Date: Thu, 3 Nov 2022 16:32:52 +0200 Subject: [PATCH 0514/1324] Add Python version 3.11 to the macOS build (#2510) --- .github/workflows/macos_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index c8eb06409e..7af8f16e1c 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -10,6 +10,7 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" runs-on: macos-11 steps: - uses: actions/checkout@v2 From 1250d7dd30c34855ef57720de8ece7f36c1c46c9 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 5 Nov 2022 02:11:55 +0300 Subject: [PATCH 0515/1324] Don't use Zlib from XCode SDK if a custom compiler is used (#2516) --- plugins/python-build/bin/python-build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0b29c4e559..8b6c97f674 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1564,6 +1564,8 @@ use_homebrew_zlib() { } use_xcode_sdk_zlib() { + # If a custom compiler is used, including XCode SDK will likely break it + [[ "${CC:-clang}" != "clang" || "$(command -v clang 2>/dev/null || true)" != "/usr/bin/clang" ]] && return 1 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" From 036fd63bbd9fea17f3363a511a264e7eaf47ce88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ho=C3=A0ng?= <10150902+hoang-himself@users.noreply.github.com> Date: Sun, 6 Nov 2022 23:18:04 +0700 Subject: [PATCH 0516/1324] style: convert crlf to lf (#2517) --- .github/workflows/no-response.yml | 52 +++---- CONTRIBUTING.md | 218 +++++++++++++++--------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index afaae8ede6..9f62c14ee3 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -1,26 +1,26 @@ -name: No Response - -# Both `issue_comment` and `scheduled` event types are required for this Action -# to work properly. -on: - issue_comment: - types: [created] - schedule: - # Schedule for ten minutes after the hour, every hour - - cron: '10 * * * *' - -jobs: - noResponse: - runs-on: ubuntu-latest - steps: - - uses: lee-dohm/no-response@v0.5.0 - with: - token: ${{ github.token }} - daysUntilClose: 30 - responseRequiredLabel: need-feedback - closeComment: > - This issue has been automatically closed because there has been no response - to our request for more information from the original author. With only the - information that is currently in the issue, we don't have enough information - to take action. Please reach out if you have or find the answers we need so - that we can investigate further. +name: No Response + +# Both `issue_comment` and `scheduled` event types are required for this Action +# to work properly. +on: + issue_comment: + types: [created] + schedule: + # Schedule for ten minutes after the hour, every hour + - cron: '10 * * * *' + +jobs: + noResponse: + runs-on: ubuntu-latest + steps: + - uses: lee-dohm/no-response@v0.5.0 + with: + token: ${{ github.token }} + daysUntilClose: 30 + responseRequiredLabel: need-feedback + closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 24b1ce6150..3f59ee0381 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,109 +1,109 @@ -General guidance -================ - -* The usual principles of respecting existing conventions and making sure that your changes - are in line with the overall product design apply when contributing code to Pyenv. - -* We are limited to Bash 3.2 features - - That's because that's the version shipped with MacOS. - (They didn't upgrade past it and switched to Zsh because later versions - are covered by GPLv3 which has additional restrictions unacceptable for Apple.) - - You can still add performance optimizations etc that take advantage of newer Bash features - as long as there is a fallback execution route for Bash 3. - -* Be extra careful when submitting logic specific for the Apple Silicon platform - - As of this writing, Github Actions do not support it and only one team member has the necessary hardware. - So we may be unable to test your changes and may have to take your word for it. - - -Formatting PRs -============== - -We strive to keep commit history one-concern-per-commit to keep it meaningful and easy to follow. -If a pull request (PR) addresses a single concern (the typical case), we usually squash commits -from it together when merging so its commit history doesn't matter. -If however a PR addresses multiple separate concerns, each of them should be presented as a separate commit. -Adding multiple new Python releases of the same flavor is okay with either a single or multiple commits. - - -Authoring installation scripts -============================== - -Adding new Python release support ---------------------------------- - -The easiest way to add support for a new Python release is to copy the script from the previous one -and adjust it as necessary. In many cases, just changing version numbers, URLs and hashes is enough. -Do pay attention to other "magic numbers" that may be present in a script -- -e.g. the set of architectures and OS versions supported by a release -- since those change from time to time, too. - -Make sure to also copy any patches for the previous release that still apply to the new one. -Typically, a patch no longer applies if it addresses a problem that's already fixed in the new release. - -For prereleases, we only create an entry for the latest prerelease in a specific version line. -When submitting a newer prerelease, replace the older one. - - -Adding version-specific fixes/patches -------------------------------------- - -We accept fixes to issues in specific Python releases that prevent users from using them with Pyenv. - -In the default configuration for a Python release, we strive to provide as close to vanilla experience as practical, -to maintain [the principle of the least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment). -As such, any such fixes: - -* Must not break or degrade (e.g. disable features) the build in any of the environments that the release officially supports -* Must not introduce incompatibilities with the vanilla release (including binary incompatibilities) -* Should not patch things unnecessarily, to minimize the risk of the aforementioned undesirable side effects. - * E.g. if the fix is for a specific environment, its logic ought to only fire in this specific environment and not touch execution paths for other environments. - * As such, it's advisable to briefly explain in the PR what each added patch does and why it is necessary to fix the declared problem - -Generally, version-specific fixes belong in the scripts for the affected releases and/or patches for them -- this guarantees that their effect is limited to only those releases. - -

Backporting upstream patches

- -Usually, this is the easiest way to backport a fix for a problem that is fixed in a newer release. - -* Clone Python, check out the tag for the appropriate release and create a branch -* Apply existing patches if there are any (with either `patch` or `git am`) and commit -* Cherry-pick the upstream commit that fixes the problem in a newer release -* Commit and `git format-patch` -* Commit the generated patch file into Pyenv, test your changes and submit a PR - - -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. -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. - 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. - - -Advanced changes / adding new Python flavor support ---------------------------------------------------- - -An installation script is sourced from `python-build`. All installation scripts are based on the same logic: - -1. Select the source to download and other variable parameters as needed. - - This includes showing an error if the user's environment (OS, architecture) is not supported by the release. - Binary releases that only officially support specific distro(s) typically show a warning in other distros instead. - -2. Run one of the `install_*` shell functions - -`install_*` shell functions defined in `python-build` install Python from different kinds of sources -- compressed package (binary or source), upstream installation script, VCS checkout. Pick one that's the most appropriate for your packaging. - -Each of them accepts a couple of function-specific arguments which are followed by arguments that constitute the build sequence. Each `` in the build sequence corresponds to the `install_*_` function in `python-build`. Check what's available and add any functions with logic specific to your flavor if needed. - -We strive to keep out of `python-build` parts of build logic that are release-specific and/or tend to change abruptly between releases -- e.g. sets of supported architectures and other software's versions. This results in logic duplication between installation scripts -- but since old releases never change once released, this doesn't really add to the maintenance burden. As a rule of thumb, `python-build` can host parts of logic that are expected to stay the same for an indefinite amount of time -- for an entire Python flavor or release line. +General guidance +================ + +* The usual principles of respecting existing conventions and making sure that your changes + are in line with the overall product design apply when contributing code to Pyenv. + +* We are limited to Bash 3.2 features + + That's because that's the version shipped with MacOS. + (They didn't upgrade past it and switched to Zsh because later versions + are covered by GPLv3 which has additional restrictions unacceptable for Apple.) + + You can still add performance optimizations etc that take advantage of newer Bash features + as long as there is a fallback execution route for Bash 3. + +* Be extra careful when submitting logic specific for the Apple Silicon platform + + As of this writing, Github Actions do not support it and only one team member has the necessary hardware. + So we may be unable to test your changes and may have to take your word for it. + + +Formatting PRs +============== + +We strive to keep commit history one-concern-per-commit to keep it meaningful and easy to follow. +If a pull request (PR) addresses a single concern (the typical case), we usually squash commits +from it together when merging so its commit history doesn't matter. +If however a PR addresses multiple separate concerns, each of them should be presented as a separate commit. +Adding multiple new Python releases of the same flavor is okay with either a single or multiple commits. + + +Authoring installation scripts +============================== + +Adding new Python release support +--------------------------------- + +The easiest way to add support for a new Python release is to copy the script from the previous one +and adjust it as necessary. In many cases, just changing version numbers, URLs and hashes is enough. +Do pay attention to other "magic numbers" that may be present in a script -- +e.g. the set of architectures and OS versions supported by a release -- since those change from time to time, too. + +Make sure to also copy any patches for the previous release that still apply to the new one. +Typically, a patch no longer applies if it addresses a problem that's already fixed in the new release. + +For prereleases, we only create an entry for the latest prerelease in a specific version line. +When submitting a newer prerelease, replace the older one. + + +Adding version-specific fixes/patches +------------------------------------- + +We accept fixes to issues in specific Python releases that prevent users from using them with Pyenv. + +In the default configuration for a Python release, we strive to provide as close to vanilla experience as practical, +to maintain [the principle of the least surprise](https://en.wikipedia.org/wiki/Principle_of_least_astonishment). +As such, any such fixes: + +* Must not break or degrade (e.g. disable features) the build in any of the environments that the release officially supports +* Must not introduce incompatibilities with the vanilla release (including binary incompatibilities) +* Should not patch things unnecessarily, to minimize the risk of the aforementioned undesirable side effects. + * E.g. if the fix is for a specific environment, its logic ought to only fire in this specific environment and not touch execution paths for other environments. + * As such, it's advisable to briefly explain in the PR what each added patch does and why it is necessary to fix the declared problem + +Generally, version-specific fixes belong in the scripts for the affected releases and/or patches for them -- this guarantees that their effect is limited to only those releases. + +

Backporting upstream patches

+ +Usually, this is the easiest way to backport a fix for a problem that is fixed in a newer release. + +* Clone Python, check out the tag for the appropriate release and create a branch +* Apply existing patches if there are any (with either `patch` or `git am`) and commit +* Cherry-pick the upstream commit that fixes the problem in a newer release +* Commit and `git format-patch` +* Commit the generated patch file into Pyenv, test your changes and submit a PR + + +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. +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. + 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. + + +Advanced changes / adding new Python flavor support +--------------------------------------------------- + +An installation script is sourced from `python-build`. All installation scripts are based on the same logic: + +1. Select the source to download and other variable parameters as needed. + + This includes showing an error if the user's environment (OS, architecture) is not supported by the release. + Binary releases that only officially support specific distro(s) typically show a warning in other distros instead. + +2. Run one of the `install_*` shell functions + +`install_*` shell functions defined in `python-build` install Python from different kinds of sources -- compressed package (binary or source), upstream installation script, VCS checkout. Pick one that's the most appropriate for your packaging. + +Each of them accepts a couple of function-specific arguments which are followed by arguments that constitute the build sequence. Each `` in the build sequence corresponds to the `install_*_` function in `python-build`. Check what's available and add any functions with logic specific to your flavor if needed. + +We strive to keep out of `python-build` parts of build logic that are release-specific and/or tend to change abruptly between releases -- e.g. sets of supported architectures and other software's versions. This results in logic duplication between installation scripts -- but since old releases never change once released, this doesn't really add to the maintenance burden. As a rule of thumb, `python-build` can host parts of logic that are expected to stay the same for an indefinite amount of time -- for an entire Python flavor or release line. From 904fe964b0cbe9f87198a71b1291c414447d9089 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 7 Nov 2022 04:46:44 +0300 Subject: [PATCH 0517/1324] README: Prefix auto-resolution: improve phrasing --- README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 80d7cbf4ab..e80d393592 100644 --- a/README.md +++ b/README.md @@ -404,21 +404,21 @@ please visit the wiki page about #### Prefix auto-resolution -Pyenv automatically resolves full prefixes to the latest version in the corresponding version line. -E.g. to install the latest 3.10 release: +All Pyenv subcommands except `uninstall` automatically resolve full prefixes to the latest version in the corresponding version line. + +`pyenv install` picks the latest known version while other subcommands -- the latest installed version. + +E.g. to install and then switch to the latest 3.10 release: ```sh pyenv install 3.10 +pyenv global 3.10 ``` -The same happens whenever Pyenv selects a version to use. -Installation selects the latest version known to Pyenv -while switching -- the latest installed version. - You can run [`pyenv latest `](COMMANDS.md#pyenv-latest) to see what a specific prefix would be resolved to. -See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details on the resolution process. +See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details. #### Python versions with extended support From ed1083ec27a16f0dae90394c19019183cde74eac Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 10 Nov 2022 04:46:14 +0300 Subject: [PATCH 0518/1324] Fix resolution of a name that's a prefix of another name (#2521) --- libexec/pyenv-latest | 6 ++++++ test/latest.bats | 15 +++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 2b265a6893..8bc1b3f5e3 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -35,6 +35,12 @@ IFS=$'\n' else DEFINITION_CANDIDATES=( $(python-build --definitions ) ) fi + + if printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | grep -qxFe "$prefix"; then + echo "$prefix" + exit $exitcode; + fi + # https://stackoverflow.com/questions/11856054/is-there-an-easy-way-to-pass-a-raw-string-to-grep/63483807#63483807 prefix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$prefix")" # FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash diff --git a/test/latest.bats b/test/latest.bats index e3d2f4451e..31474786ae 100644 --- a/test/latest.bats +++ b/test/latest.bats @@ -64,6 +64,21 @@ pyenv: no known versions match the prefix \`3.8' ! } +@test "complete name resolves to itself" { + create_executable pyenv-versions < Date: Thu, 10 Nov 2022 03:46:55 +0200 Subject: [PATCH 0519/1324] GitHub Workflows security hardening (#2511) Signed-off-by: Alex --- .github/workflows/macos_build.yml | 4 ++++ .github/workflows/no-response.yml | 4 ++++ .github/workflows/pyenv_tests.yml | 4 ++++ .github/workflows/ubuntu_build.yml | 4 ++++ 4 files changed, 16 insertions(+) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 7af8f16e1c..0722cc2640 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -1,5 +1,9 @@ name: macos_build on: [pull_request, push] + +permissions: + contents: read # to fetch code (actions/checkout) + jobs: macos_build: strategy: diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index 9f62c14ee3..275b75637c 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -9,8 +9,12 @@ on: # Schedule for ten minutes after the hour, every hour - cron: '10 * * * *' +permissions: {} jobs: noResponse: + permissions: + issues: write # to update issues (lee-dohm/no-response) + runs-on: ubuntu-latest steps: - uses: lee-dohm/no-response@v0.5.0 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 2d3ba3c6dd..5937d86d9a 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -1,5 +1,9 @@ name: pyenv_tests on: [pull_request, push] + +permissions: + contents: read # to fetch code (actions/checkout) + jobs: pyenv_tests: strategy: diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 59e7978c05..205d05840b 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -1,5 +1,9 @@ name: ubuntu_build on: [pull_request, push] + +permissions: + contents: read # to fetch code (actions/checkout) + jobs: ubuntu_build: strategy: From 19359de7b8089556477963e108e6c25236c1f967 Mon Sep 17 00:00:00 2001 From: James Campbell Date: Thu, 10 Nov 2022 15:58:04 +0000 Subject: [PATCH 0520/1324] Add activate.nu to shim creation exception list (#2524) --- pyenv.d/rehash/source.d/default.list | 1 + 1 file changed, 1 insertion(+) diff --git a/pyenv.d/rehash/source.d/default.list b/pyenv.d/rehash/source.d/default.list index 1964bb7827..30b9fbfdfb 100644 --- a/pyenv.d/rehash/source.d/default.list +++ b/pyenv.d/rehash/source.d/default.list @@ -2,5 +2,6 @@ activate activate.csh activate.fish +activate.nu # gettext (#688) gettext.sh From cd2858aa17a32b2672fdb620f086cd0709a2997b Mon Sep 17 00:00:00 2001 From: Twangboy Date: Wed, 9 Nov 2022 02:11:00 +0300 Subject: [PATCH 0521/1324] Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.15 and 3.8.15 --- .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.8.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch diff --git a/plugins/python-build/share/python-build/patches/3.8.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.8.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; diff --git a/plugins/python-build/share/python-build/patches/3.9.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.9.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; From 3bfaa33c1b935fc4eaf9dcb5be5ae4768b281b75 Mon Sep 17 00:00:00 2001 From: Twangboy Date: Sun, 13 Nov 2022 04:24:22 +0300 Subject: [PATCH 0522/1324] Gitignore special files of PyCharm and Vim --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index dbb70df9c5..71bc98394e 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ /src/*.o /bats/ /default-packages +.idea +*.un~ From c162dcd932368c41938f286f4639f514a4c550f8 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sat, 12 Nov 2022 21:35:45 -0500 Subject: [PATCH 0523/1324] Add .editorconfig (#2518) --- .editorconfig | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .editorconfig diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..8fd5e1f8f8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +# Editor configuration, see https://editorconfig.org +root = true + +[*] +end_of_line = lf +charset = utf-8 + +# Makefiles always use tabs for indentation +[Makefile] +indent_style = tab +indent_size = unset # Allow user-defined tab width From 31355676f041294bc72d97044976e35338bc95d6 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 15 Nov 2022 20:57:04 +0300 Subject: [PATCH 0524/1324] Support `aria2c` being a snap (#2528) Likely in Ubuntu where it's only available as a snap --- plugins/python-build/bin/python-build | 30 +++++++++++++++++++++++++-- plugins/python-build/test/fetch.bats | 2 +- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 8b6c97f674..797ab75f8c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -360,12 +360,38 @@ http_head_aria2c() { } http_get_aria2c() { - local out="${2:-$(mktemp "out.XXXXXX")}" - if aria2c --allow-overwrite=true --no-conf=true -o "${out}" ${ARIA2_OPTS} "$1" >&4; then + # aria2c always treats -o argument as a relative path + local out dir_out; + if [[ -n "$2" ]]; then + out="$(basename $2)"; + dir_out="$(dirname $2)"; + else + out="$(mktemp "out.XXXXXX")"; + dir_out="$TMPDIR"; + fi + + # In Ubuntu, aria2c is only available as a snap. Snaps cannot read or write /tmp + # (files cannot be found, any write result is silently discarded). + local aria2c_is_snap; + if [[ $(command -v aria2c) == "/snap/"* ]]; then aria2c_is_snap=1; fi + + if [[ -n $aria2c_is_snap ]]; then + local real_dir_out="$dir_out" + # presumably, snaps can always write to under $HOME + dir_out="$HOME" + fi + + if aria2c --allow-overwrite=true --no-conf=true -d "${dir_out}" -o "${out}" ${ARIA2_OPTS} "$1" >&4; then [ -n "$2" ] || cat "${out}" else false fi + ret=$? + + if [[ -n "$2" && -n $aria2c_is_snap ]]; then + mv "$dir_out/$out" "$real_dir_out/$out" + fi + return "$ret" } http_head_curl() { diff --git a/plugins/python-build/test/fetch.bats b/plugins/python-build/test/fetch.bats index c412f6a599..0edd38aada 100644 --- a/plugins/python-build/test/fetch.bats +++ b/plugins/python-build/test/fetch.bats @@ -21,7 +21,7 @@ setup() { @test "using aria2c if available" { export PYTHON_BUILD_ARIA2_OPTS= export -n PYTHON_BUILD_HTTP_CLIENT - stub aria2c "--allow-overwrite=true --no-conf=true -o * http://example.com/* : cp $FIXTURE_ROOT/\${5##*/} \$4" + stub aria2c "--allow-overwrite=true --no-conf=true -d * -o * http://example.com/* : cp $FIXTURE_ROOT/\${7##*/} \$6" install_fixture definitions/without-checksum assert_success From 4c261e6ea1a123e321a47b6c723ebd2603527e4d Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Wed, 16 Nov 2022 02:40:34 +0530 Subject: [PATCH 0525/1324] Add CPython 3.12.0a2 (#2527) --- plugins/python-build/share/python-build/3.12.0a1 | 9 --------- plugins/python-build/share/python-build/3.12.0a2 | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.12.0a1 create mode 100644 plugins/python-build/share/python-build/3.12.0a2 diff --git a/plugins/python-build/share/python-build/3.12.0a1 b/plugins/python-build/share/python-build/3.12.0a1 deleted file mode 100644 index 54ed16c807..0000000000 --- a/plugins/python-build/share/python-build/3.12.0a1 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl11 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" 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.0a1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a1.tar.xz#7be2bd9b1fc9f64b334660581bb645f0eae0b344c80130f1eb22983a1c292f43" standard verify_py312 copy_python_gdb ensurepip -else - install_package "Python-3.12.0a1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a1.tgz#db4dd2315715e11250175f5dc06fa9d32d4a9fed4db7b6774d4be72d7b94b7e3" standard verify_py312 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.12.0a2 b/plugins/python-build/share/python-build/3.12.0a2 new file mode 100644 index 0000000000..107183e1a4 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.0a2 @@ -0,0 +1,9 @@ +prefer_openssl11 +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.0a2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a2.tar.xz#1eafc1384e532cac6432632a77350ef504a114c4235c1f6f2a85f817f5b1926a" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.0a2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a2.tgz#81fa3468cada25f5ac8868230a847999495464f8ab67df1df3e8e8e280df0b2b" standard verify_py312 copy_python_gdb ensurepip +fi From cc56f76733c8f57ccd1f3d2f7110221351e5fc89 Mon Sep 17 00:00:00 2001 From: Isaac Levy Date: Fri, 18 Nov 2022 16:01:59 -0500 Subject: [PATCH 0526/1324] Add --no-push-path option (#2526) In some advanced shell setups, the order of custom-added PATH entries is important. We disregard it by default, always pushing shims to the front of PATH, to ensure that Pyenv works even in poorly maintained shell environments and with minimal hassle for non-export users (an attempt to do the opposite (#1898) has ended in a disaster). Some advanced users are however ready and able to carefully maintain their environment and deal with breakages and inconvenience. This option is for them. --- COMMANDS.md | 3 +- libexec/pyenv-init | 81 +++++++++++++++++++++++++++++++++------------- test/init.bats | 45 +++++++++++++++++++++++++- 3 files changed, 104 insertions(+), 25 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 5d52e13f69..203250d417 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -386,11 +386,12 @@ List existing pyenv shims. Configure the shell environment for pyenv - Usage: eval "$(pyenv init [-|--path] [--no-rehash] [])" + Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [])" - Initialize shims directory, print PYENV_SHELL variable, completions path and shell function --path Print shims path + --no-push-path Do not push shim to the start of PATH if they're already there --no-rehash Add no rehash command to output ## `pyenv completions` diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 24ef3b163c..7d22237702 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Summary: Configure the shell environment for pyenv -# Usage: eval "$(pyenv init [-|--path] [--no-rehash] [])" +# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [])" set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -9,6 +9,7 @@ set -e if [ "$1" = "--complete" ]; then echo - echo --path + echo --no-push-path echo --no-rehash echo bash echo fish @@ -19,6 +20,7 @@ fi mode="help" no_rehash="" +no_push_path="" for args in "$@" do if [ "$args" = "-" ]; then @@ -30,6 +32,11 @@ do mode="path" shift fi + + if [ "$args" = "--no-push-path" ]; then + no_push_path=1 + shift + fi if [ "$args" = "--no-rehash" ]; then no_rehash=1 @@ -141,28 +148,56 @@ function init_dirs() { } function print_path() { - case "$shell" in - fish ) - echo 'while set index (contains -i -- '\'"${PYENV_ROOT}/shims"\'' $PATH)' - echo 'set -eg PATH[$index]; end; set -e index' - echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH' - ;; - * ) - # Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option - # that makes it source `bashrc` under SSH even when not interactive. - # This is inhibited by a guard in Debian's stock `bashrc` but some people remove it - # in order to get proper environment for noninteractive remote commands - # (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason). - # This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367). - # --norc negates this behavior of such a customized Bash. - echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); ' - echo 'for i in ${!paths[@]}; do ' - echo 'if [[ ${paths[i]} == "'\'\'"${PYENV_ROOT}/shims"\'\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; ' - echo 'fi; done; ' - echo 'echo "${paths[*]}"'\'')"' - echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"' - ;; - esac + # if no_push_path is set, guard the PATH manipulation with a check on whether + # the shim is already in the PATH. + if [ -n "$no_push_path" ]; then + case "$shell" in + fish ) + echo 'if not contains -- "'"${PYENV_ROOT}/shims"'" $PATH' + print_path_prepend_shims + echo 'end' + ;; + * ) + echo 'if [[ ":$PATH:" != *'\':"${PYENV_ROOT}"/shims:\''* ]]; then' + print_path_prepend_shims + echo 'fi' + ;; + esac + else + case "$shell" in + fish ) + echo 'while set pyenv_index (contains -i -- "'"${PYENV_ROOT}/shims"'" $PATH)' + echo 'set -eg PATH[$pyenv_index]; end; set -e pyenv_index' + print_path_prepend_shims + ;; + * ) + # Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option + # that makes it source `bashrc` under SSH even when not interactive. + # This is inhibited by a guard in Debian's stock `bashrc` but some people remove it + # in order to get proper environment for noninteractive remote commands + # (SSH provides /etc/ssh/sshrc and ~/.ssh/rc for that but no-one seems to use them for some reason). + # This has caused an infinite `bashrc` execution loop for those people in the below nested Bash invocation (#2367). + # --norc negates this behavior of such a customized Bash. + echo 'PATH="$(bash --norc -ec '\''IFS=:; paths=($PATH); ' + echo 'for i in ${!paths[@]}; do ' + echo 'if [[ ${paths[i]} == "'\'\'"${PYENV_ROOT}/shims"\'\''" ]]; then unset '\'\\\'\''paths[i]'\'\\\'\''; ' + echo 'fi; done; ' + echo 'echo "${paths[*]}"'\'')"' + print_path_prepend_shims + ;; + esac + fi +} + +function print_path_prepend_shims() { + case "$shell" in + fish ) + echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH' + ;; + * ) + echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"' + ;; + esac } function print_env() { diff --git a/test/init.bats b/test/init.bats index 154d340b7d..bfe253e374 100755 --- a/test/init.bats +++ b/test/init.bats @@ -98,7 +98,6 @@ echo "\$PATH" command -v fish >/dev/null || skip "-- fish not installed" OLDPATH="$PATH" export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" - # fish 2 (Ubuntu Bionic) adds spurious messages when setting PATH, messing up the output run fish </dev/null || skip "-- fish not installed" + export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" + run fish </dev/null || skip "-- fish not installed" + export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:${PYENV_ROOT}/shims:/bin:/usr/local/bin" + run fish < Date: Fri, 18 Nov 2022 22:55:06 +0300 Subject: [PATCH 0527/1324] Add 3.11 into CI for Linux --- .github/workflows/ubuntu_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 205d05840b..1061586ddb 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -14,6 +14,7 @@ jobs: - "3.8" - "3.9" - "3.10" + - "3.11" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 From 6d13db992fdf49a96e25d1c0993f871a30baa72f Mon Sep 17 00:00:00 2001 From: weensy Date: Tue, 29 Nov 2022 01:43:11 +0900 Subject: [PATCH 0528/1324] Fix typo in README.md (#2535) There was a space at the beginning of the `git clone` command --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index e80d393592..b6a1424c61 100644 --- a/README.md +++ b/README.md @@ -258,14 +258,14 @@ easy to fork and contribute any changes back upstream. * **Check out Pyenv where you want it installed.** A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else): - - git clone https://github.com/pyenv/pyenv.git ~/.pyenv - + ``` + git clone https://github.com/pyenv/pyenv.git ~/.pyenv + ``` * Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't worry if it fails; Pyenv will still work normally: - - cd ~/.pyenv && src/configure && make -C src - + ``` + cd ~/.pyenv && src/configure && make -C src + ``` ### Set up your shell environment for Pyenv From 4971d9e35e0ebe94a7b2d8e42d6590b6fc4fb7e7 Mon Sep 17 00:00:00 2001 From: spookyuser <16196262+spookyuser@users.noreply.github.com> Date: Tue, 29 Nov 2022 22:00:22 +0200 Subject: [PATCH 0529/1324] Copy auto installer oneliner to README (#2538) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b6a1424c61..9f1d447201 100644 --- a/README.md +++ b/README.md @@ -247,7 +247,9 @@ which does install native Windows Python versions. #### Automatic installer -Visit our other project: +`curl https://pyenv.run | bash` + +For more details visit our other project: https://github.com/pyenv/pyenv-installer From 59c560893a58194c82302d2068e4fb1075c76d35 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 1 Dec 2022 10:15:45 +0300 Subject: [PATCH 0530/1324] 2.3.7 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index b1afaf008b..5c6d854dfd 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.6" +version="2.3.7" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 74f923b5fca82054b3c579f9eb936338c7f5a394 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 1 Dec 2022 10:16:53 +0300 Subject: [PATCH 0531/1324] 2.3.7 --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c335f0f07e..42e5ac8291 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ ## Version History +## Release 2.3.7 + +* Add Python version 3.11 to the macOS build by @jbkkd in https://github.com/pyenv/pyenv/pull/2510 +* Don't use Zlib from XCode SDK if a custom compiler is used by @native-api in https://github.com/pyenv/pyenv/pull/2516 +* Change line endings from CRLF to LF by @hoang-himself in https://github.com/pyenv/pyenv/pull/2517 +* Fix resolution of a name that's a prefix of another name by @native-api in https://github.com/pyenv/pyenv/pull/2521 +* GitHub Workflows security hardening by @sashashura in https://github.com/pyenv/pyenv/pull/2511 +* Add nushell to activate list by @theref in https://github.com/pyenv/pyenv/pull/2524 +* Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.15 and 3.8.15 by @twangboy in https://github.com/pyenv/pyenv/pull/2520 +* Add simple `.editorconfig` file by @aphedges in https://github.com/pyenv/pyenv/pull/2518 +* Support `aria2c` being a snap by @native-api in https://github.com/pyenv/pyenv/pull/2528 +* Add CPython 3.12.0a2 by @saaketp in https://github.com/pyenv/pyenv/pull/2527 +* Add --no-push-path option by @isaacl in https://github.com/pyenv/pyenv/pull/2526 +* Fix typo in README.md by @weensy in https://github.com/pyenv/pyenv/pull/2535 +* Copy auto installer oneliner to readme by @spookyuser in https://github.com/pyenv/pyenv/pull/2538 + ## Release 2.3.6 * Add CPython 3.10.8 (#2480) From c1674cd5522ddb3573673ed851b29429bcaf78ac Mon Sep 17 00:00:00 2001 From: Ian Chen Date: Wed, 30 Nov 2022 17:53:00 +0800 Subject: [PATCH 0532/1324] Detect shell --- libexec/pyenv-init | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 7d22237702..3d21f31f57 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -1,6 +1,6 @@ #!/usr/bin/env bash # Summary: Configure the shell environment for pyenv -# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [])" +# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--detect-shell] [--no-rehash] [])" set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -11,6 +11,7 @@ if [ "$1" = "--complete" ]; then echo --path echo --no-push-path echo --no-rehash + echo --detect-shell echo bash echo fish echo ksh @@ -33,6 +34,11 @@ do shift fi + if [ "$args" = "--detect-shell" ]; then + mode="detect-shell" + shift + fi + if [ "$args" = "--no-push-path" ]; then no_push_path=1 shift @@ -76,12 +82,17 @@ function main() { print_shell_function exit 0 ;; + "detect-shell") + detect_profile + print_detect_shell + exit 0 + ;; esac # should never get here exit 2 } -function help_() { +function detect_profile() { case "$shell" in bash ) if [ -e '~/.bash_profile' ]; then @@ -105,7 +116,16 @@ function help_() { rc='your shell'\''s interactive startup file' ;; esac +} +function print_detect_shell() { + echo "PYENV_SHELL_DETECT=$shell" + echo "PYENV_PROFILE_DETECT=$profile" + echo "PYENV_RC_DETECT=$rc" +} + +function help_() { + detect_profile { case "$shell" in fish ) From 881ba40ff4880051093c8c32c34978c8091b5c9e Mon Sep 17 00:00:00 2001 From: Rodolfo Puig Date: Tue, 6 Dec 2022 17:36:03 -0500 Subject: [PATCH 0533/1324] Add CPython 3.10.9 Signed-off-by: Rodolfo Puig --- plugins/python-build/share/python-build/3.10.9 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.9 diff --git a/plugins/python-build/share/python-build/3.10.9 b/plugins/python-build/share/python-build/3.10.9 new file mode 100644 index 0000000000..2486eaba41 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.9 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.9" "https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tar.xz#5ae03e308260164baba39921fdb4dbf8e6d03d8235a939d4582b33f0b5e46a83" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.9" "https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz#4ccd7e46c8898f4c7862910a1703aa0e63525913a519abb2f55e26220a914d88" standard verify_py310 copy_python_gdb ensurepip +fi From b05d15f673641d6482e98d4394ed7432f1a5bd5b Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Wed, 7 Dec 2022 04:57:31 +0530 Subject: [PATCH 0534/1324] Add CPython 3.12.0a3 --- .../python-build/share/python-build/{3.12.0a2 => 3.12.0a3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0a2 => 3.12.0a3} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0a2 b/plugins/python-build/share/python-build/3.12.0a3 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0a2 rename to plugins/python-build/share/python-build/3.12.0a3 index 107183e1a4..dde14fc9e6 100644 --- a/plugins/python-build/share/python-build/3.12.0a2 +++ b/plugins/python-build/share/python-build/3.12.0a3 @@ -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.0a2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a2.tar.xz#1eafc1384e532cac6432632a77350ef504a114c4235c1f6f2a85f817f5b1926a" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a3.tar.xz#1b64b3075e0a9241974e580e09b09c9117a1c4e2be698039201ef1d8a73453d1" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0a2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a2.tgz#81fa3468cada25f5ac8868230a847999495464f8ab67df1df3e8e8e280df0b2b" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a3.tgz#fd414e6b6520171f5cefc5cba1067265187a322417f7bdec8d024db7fc8fbe96" standard verify_py312 copy_python_gdb ensurepip fi From 8680247381c3e396188a64e3ee1fde36fafa949b Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 7 Dec 2022 13:21:36 +0300 Subject: [PATCH 0535/1324] Add CPython 3.11.1 --- plugins/python-build/share/python-build/3.11.1 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.1 diff --git a/plugins/python-build/share/python-build/3.11.1 b/plugins/python-build/share/python-build/3.11.1 new file mode 100644 index 0000000000..23a3c31079 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.1 @@ -0,0 +1,10 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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.11.1" "https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tar.xz#85879192f2cffd56cb16c092905949ebf3e5e394b7f764723529637901dfb58f" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.1" "https://www.python.org/ftp/python/3.11.1/Python-3.11.1.tgz#baed518e26b337d4d8105679caf68c5c32630d702614fc174e98cb95c46bdfa4" standard verify_py311 copy_python_gdb ensurepip +fi From 8cfa967d74b34aa62fdd4928b1357c0028c5eb5d Mon Sep 17 00:00:00 2001 From: Nick Henderson Date: Wed, 7 Dec 2022 12:56:03 -0800 Subject: [PATCH 0536/1324] add -latest suffix to miniforge3 The auto-resolve feature (#2487) means that pyenv install miniforge3 installs miniforge3-4.10.3-10 and not the exactly named "miniforge3" recipe. Renaming "miniforge3" to "miniforge3-latest" solves this issue allowing users to execute pyenv install miniforge3-latest This is similar to the naming of the current "miniconda3-latest" recipe. --- .../share/python-build/{miniforge3 => miniforge3-latest} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename plugins/python-build/share/python-build/{miniforge3 => miniforge3-latest} (100%) diff --git a/plugins/python-build/share/python-build/miniforge3 b/plugins/python-build/share/python-build/miniforge3-latest similarity index 100% rename from plugins/python-build/share/python-build/miniforge3 rename to plugins/python-build/share/python-build/miniforge3-latest From 48b0224aafd95cefbf92bc5b721af3e187244413 Mon Sep 17 00:00:00 2001 From: Chad Crawford Date: Wed, 7 Dec 2022 16:26:27 -0500 Subject: [PATCH 0537/1324] Add CPython 3.7.16, 3.8.16, 3.9.16 (#2550) --- .../python-build/share/python-build/3.7.16 | 9 + .../python-build/share/python-build/3.8.16 | 9 + .../python-build/share/python-build/3.9.16 | 9 + ...system-libffi-patches-for-arm64-macO.patch | 310 ++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 37 +++ ...error-when-opening-header-with-non-U.patch | 30 ++ 6 files changed, 404 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.7.16 create mode 100644 plugins/python-build/share/python-build/3.8.16 create mode 100644 plugins/python-build/share/python-build/3.9.16 create mode 100644 plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/3.7.16 b/plugins/python-build/share/python-build/3.7.16 new file mode 100644 index 0000000000..d3df2bc104 --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.16 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.16" "https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tar.xz#8338f0c2222d847e904c955369155dc1beeeed806e8d5ef04b00ef4787238bfd" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.16" "https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz#0cf2da07fa464636755215415909e22eb1d058817af4824bc15af8390d05fb38" standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.16 b/plugins/python-build/share/python-build/3.8.16 new file mode 100644 index 0000000000..c42175c938 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.16 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.16" "https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tar.xz#d85dbb3774132473d8081dcb158f34a10ccad7a90b96c7e50ea4bb61f5ce4562" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.16" "https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz#71ca9d935637ed2feb59e90a368361dc91eca472a90acb1d344a2e8178ccaf10" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.16 b/plugins/python-build/share/python-build/3.9.16 new file mode 100644 index 0000000000..1cdbd595ea --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.16 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.16" "https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tar.xz#22dddc099246dd2760665561e8adb7394ea0cc43a72684c6480f9380f7786439" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.16" "https://www.python.org/ftp/python/3.9.16/Python-3.9.16.tgz#1ad539e9dbd2b42df714b69726e0693bc6b9d2d2c8e91c2e43204026605140c5" standard verify_py39 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..f23946d0fb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,310 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..8ad6c8296b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,37 @@ +From f2595c038ed7bfd182d9d05d83786106ebd02ca0 Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index a67dd9bc12..3e9c8185c3 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.37.3 + diff --git a/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..773b69fa0e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.16/Python-3.7.16/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From 3f0dd1962fef951dbc89aca1ea1a00602431806c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 8 Dec 2022 10:07:26 +0300 Subject: [PATCH 0538/1324] 2.3.8 --- CHANGELOG.md | 10 +++++++++- libexec/pyenv---version | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42e5ac8291..9905ac9d9f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,12 @@ -## Version History +# Version History + +## Release 2.3.8 + +* Export detected shell environment in pyenv-init by @ianchen-tw in https://github.com/pyenv/pyenv/pull/2540 +* Add CPython 3.12.0a3 by @saaketp in https://github.com/pyenv/pyenv/pull/2545 +* Add CPython 3.11.1 by @anton-petrov in https://github.com/pyenv/pyenv/pull/2549 +* Add CPython 3.10.9 by @rudisimo in https://github.com/pyenv/pyenv/pull/2544 +* Add 3.7.16, 3.8.16, 3.9.16 by @chadac in https://github.com/pyenv/pyenv/pull/2550 ## Release 2.3.7 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5c6d854dfd..dbc8e432ec 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.7" +version="2.3.8" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From b3d52b05d288deeeee56b2eb82637be0f9e069f7 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 8 Dec 2022 12:17:53 +0300 Subject: [PATCH 0539/1324] --enable-shared by default on non-mac systems --- plugins/python-build/bin/python-build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 797ab75f8c..fadbd1fa5d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -806,6 +806,9 @@ build_package_standard_build() { use_homebrew_zlib || true fi use_dsymutil || true + if ! is_mac; then + build_package_enable_shared || true + fi fi ( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then From cf50e2a2dbdb9bdae6cbffb5bc77d2efb14d9f9a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 Dec 2022 11:41:26 +0300 Subject: [PATCH 0540/1324] Don't hide output from extension checks --- plugins/python-build/bin/python-build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index fadbd1fa5d..caed6fd96b 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1791,7 +1791,7 @@ verify_python() { } try_python_module() { - if ! "$PYTHON_BIN" -c "import $1" 1>/dev/null 2>&1; then + if ! "$PYTHON_BIN" -c "import $1"; then { colorize 1 "WARNING" echo ": The Python $1 extension was not compiled${3:+ $3}. Missing the ${2:-$1}?" return 0 @@ -1800,7 +1800,7 @@ try_python_module() { } verify_python_module() { - if ! "$PYTHON_BIN" -c "import $1" 1>/dev/null 2>&1; then + if ! "$PYTHON_BIN" -c "import $1"; then { colorize 1 "ERROR" echo ": The Python $1 extension was not compiled. Missing the ${2:-$1}?" echo From 03bba03291a1d6535145e894e71dfeb772823db3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 Dec 2022 16:52:47 +0300 Subject: [PATCH 0541/1324] Set --enable-shared earlier To take advantage of the existing logic to add to rpath --- plugins/python-build/bin/python-build | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index caed6fd96b..739bac43db 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -806,9 +806,6 @@ build_package_standard_build() { use_homebrew_zlib || true fi use_dsymutil || true - if ! is_mac; then - build_package_enable_shared || true - fi fi ( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then @@ -2191,11 +2188,15 @@ if [ -n "$DEBUG" ]; then package_option python configure --with-pydebug fi +if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--enable-framework"* ]]; then + package_option python configure --enable-shared +fi + # python-build: Specify `--libdir` on configure to fix build on openSUSE (#36) package_option python configure --libdir="${PREFIX_PATH}/lib" # python-build: Set `RPATH` if `--enable-shared` was given (#65, #66, #82) -if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-shared"* ]]; then +if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS ${PYTHON_CONFIGURE_OPTS_ARRAY[@]}" == *"--enable-shared"* ]]; then # The ld on Darwin embeds the full paths to each dylib by default if [[ "$LDFLAGS" != *"-rpath="* ]] && ! is_mac; then export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}" From 79fdf1e3bbbd5a66701799def3d588e19ce24f66 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 Dec 2022 16:58:44 +0300 Subject: [PATCH 0542/1324] Improve Mac feature messages phrasing --- plugins/python-build/bin/python-build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 739bac43db..5e7080c8c3 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2211,7 +2211,7 @@ fi # Add support for framework installation (`--enable-framework`) of CPython (#55, #99) if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if ! is_mac; then - echo "python-build: framework installation is not supported." >&2 + echo "python-build: framework installation is not supported outside of MacOS." >&2 exit 1 fi create_framework_dirs() { @@ -2232,7 +2232,7 @@ fi # Build against universal SDK if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then if ! is_mac; then - echo "python-build: universal installation is not supported." >&2 + echo "python-build: universal installation is not supported outside of MacOS." >&2 exit 1 fi package_option python configure --enable-universalsdk=/ From cad18bb332c58ad52c4a1d8bc5de70a034a2bab0 Mon Sep 17 00:00:00 2001 From: Dan Dees Date: Mon, 5 Dec 2022 23:00:32 +0300 Subject: [PATCH 0543/1324] Add PyPy 7.3.10 --- plugins/python-build/bin/python-build | 8 +- .../share/python-build/pypy2.7-7.3.10 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.10-src | 14 ++++ .../share/python-build/pypy2.7-7.3.9 | 52 ++++++------ .../share/python-build/pypy3.7-7.3.9 | 52 ++++++------ .../share/python-build/pypy3.8-7.3.10 | 81 +++++++++++++++++++ .../share/python-build/pypy3.8-7.3.10-src | 14 ++++ .../share/python-build/pypy3.8-7.3.9 | 52 ++++++------ .../share/python-build/pypy3.9-7.3.10 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.10-src | 14 ++++ .../share/python-build/pypy3.9-7.3.9 | 52 ++++++------ 11 files changed, 396 insertions(+), 105 deletions(-) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.10 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.10-src create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.10 create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.10-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.10 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.10-src diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 797ab75f8c..7fc9004e60 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -940,7 +940,13 @@ build_package_micropython() { pypy_architecture() { case "$(uname -s)" in - "Darwin" ) echo "osx64" ;; + "Darwin" ) + case "$(uname -m)" in + "arm64" ) echo "osarm64" ;; + "x86_64" ) echo "osx64" ;; + * ) return 1 ;; + esac + ;; "Linux" ) case "$(uname -m)" in "armel" ) echo "linux-armel" ;; diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.10 b/plugins/python-build/share/python-build/pypy2.7-7.3.10 new file mode 100644 index 0000000000..378ccd2cb0 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.10 @@ -0,0 +1,81 @@ +VERSION='7.3.10' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=274342f0e75e99d60ba7a0cfb0e13792e7664163e01450d2f7f2f7825603a0ae +linux32_hash=0b17132f62d2a0c3c4572c57eb53820f25611afad71f3d6a310202942baed6e1 +linux64_hash=461fb6df524208af9e94ffb16989f628b585bdb4b9e97d81e668899fc3a064a3 +osarm64_hash=14b178f005603e3df6db7574b77b9c65ae79feda1a629214cafcb4eee7da679d +osx64_hash=188551185ee945d5e42a3a619205d02ac31db77bdd5d98b6c11469e125c3bdb5 +s390x_hash=0fac1ec1e05c70941f758be05d40ce7ffe6a42c0416e70b55d40a7523e3e70ae + +### 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.10-src b/plugins/python-build/share/python-build/pypy2.7-7.3.10-src new file mode 100644 index 0000000000..2b638e21f5 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.10-src @@ -0,0 +1,14 @@ +VERSION='7.3.10' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=35e2cf4519cb51c4d5ffb4493ee24f0c7f42b4b04944903ca4b33981a04a3bc5 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.9 b/plugins/python-build/share/python-build/pypy2.7-7.3.9 index 99cfd12cfa..4606967626 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.9 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.9 @@ -11,29 +11,38 @@ win64_hash=ca7b0f4c576995b388cfb4c796e3f6f20b037e5314571bf267daa068a3a2af31 ### 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 + # pypy architecture tag local ARCH="${1}" - local basesrc="pypy${PYVER}-${VERSION}-src" - local basever="pypy${PYVER}-v${VERSION}" - local baseurl="https://downloads.python.org/pypy/${basever}" - # defaults local cmd='install_package' # use bz2 local pkg="${ARCH}" # assume matches - local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local ext='tar.bz2' # windows is always diff... local hash='' # undefined - case "${pkg}" in + # select the hash, fix pkg if not match ARCH, windows has ext of zip + case "${ARCH}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + pkg='aarch64' ;; 'linux' ) hash="${linux32_hash}" - pkg='linux32' # package name revised - url="${baseurl}-${pkg}.tar.bz2" # new url + pkg='linux32' ;; 'linux64' ) hash="${linux64_hash}" @@ -42,13 +51,7 @@ function pypy_pkg_data { if require_osx_version "10.13"; then hash="${osx64_hash}" else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + err_no_binary "${ARCH}, OS X < 10.13" fi ;; 's390x' ) @@ -57,21 +60,18 @@ function pypy_pkg_data { 'win64' ) hash="${win64_hash}" cmd='install_zip' # diff command - url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ext='zip' # zip rather than bz2 ;; * ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + 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}" "${url}#${hash}" + echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}" } # determine command, package directory, url+hash diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.9 b/plugins/python-build/share/python-build/pypy3.7-7.3.9 index 83f2455cad..d38cff1992 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.9 +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.9 @@ -11,29 +11,38 @@ win64_hash=8acb184b48fb3c854de0662e4d23a66b90e73b1ab73a86695022c12c745d8b00 ### 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 + # pypy architecture tag local ARCH="${1}" - local basesrc="pypy${PYVER}-${VERSION}-src" - local basever="pypy${PYVER}-v${VERSION}" - local baseurl="https://downloads.python.org/pypy/${basever}" - # defaults local cmd='install_package' # use bz2 local pkg="${ARCH}" # assume matches - local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local ext='tar.bz2' # windows is always diff... local hash='' # undefined - case "${pkg}" in + # select the hash, fix pkg if not match ARCH, windows has ext of zip + case "${ARCH}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + pkg='aarch64' ;; 'linux' ) hash="${linux32_hash}" - pkg='linux32' # package name revised - url="${baseurl}-${pkg}.tar.bz2" # new url + pkg='linux32' ;; 'linux64' ) hash="${linux64_hash}" @@ -42,13 +51,7 @@ function pypy_pkg_data { if require_osx_version "10.13"; then hash="${osx64_hash}" else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + err_no_binary "${ARCH}, OS X < 10.13" fi ;; 's390x' ) @@ -57,21 +60,18 @@ function pypy_pkg_data { 'win64' ) hash="${win64_hash}" cmd='install_zip' # diff command - url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ext='zip' # zip rather than bz2 ;; * ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + 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}" "${url}#${hash}" + echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}" } # determine command, package directory, url+hash diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.10 b/plugins/python-build/share/python-build/pypy3.8-7.3.10 new file mode 100644 index 0000000000..6877e301b0 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.10 @@ -0,0 +1,81 @@ +VERSION='7.3.10' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +aarch64_hash=e4caa1a545f22cfee87d5b9aa6f8852347f223643ad7d2562e0b2a2f4663ad98 +linux32_hash=b70ed7fdc73a74ebdc04f07439f7bad1a849aaca95e26b4a74049d0e483f071c +linux64_hash=ceef6496fd4ab1c99e3ec22ce657b8f10f8bb77a32427fadfb5e1dd943806011 +osarm64_hash=6cb1429371e4854b718148a509d80143f801e3abfc72fef58d88aeeee1e98f9e +osx64_hash=399eb1ce4c65f62f6a096b7c273536601b7695e3c0dc0457393a659b95b7615b +s390x_hash=c294f8e815158388628fe77ac5b8ad6cd93c8db1359091fa02d41cf6da4d61a1 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.10-src b/plugins/python-build/share/python-build/pypy3.8-7.3.10-src new file mode 100644 index 0000000000..5530b6601e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.10-src @@ -0,0 +1,14 @@ +VERSION='7.3.10' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +hash=218a1e062f17aba89f61bc398e8498f13c048b9fcf294343f5d9d56c3ac9b882 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.9 b/plugins/python-build/share/python-build/pypy3.8-7.3.9 index 5b908ae8e8..168a953646 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.9 +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.9 @@ -11,29 +11,38 @@ win64_hash=05022baaa55db2b60880f2422312d9e4025e1267303ac57f33e8253559d0be88 ### 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 + # pypy architecture tag local ARCH="${1}" - local basesrc="pypy${PYVER}-${VERSION}-src" - local basever="pypy${PYVER}-v${VERSION}" - local baseurl="https://downloads.python.org/pypy/${basever}" - # defaults local cmd='install_package' # use bz2 local pkg="${ARCH}" # assume matches - local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local ext='tar.bz2' # windows is always diff... local hash='' # undefined - case "${pkg}" in + # select the hash, fix pkg if not match ARCH, windows has ext of zip + case "${ARCH}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + pkg='aarch64' ;; 'linux' ) hash="${linux32_hash}" - pkg='linux32' # package name revised - url="${baseurl}-${pkg}.tar.bz2" # new url + pkg='linux32' ;; 'linux64' ) hash="${linux64_hash}" @@ -42,13 +51,7 @@ function pypy_pkg_data { if require_osx_version "10.13"; then hash="${osx64_hash}" else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + err_no_binary "${ARCH}, OS X < 10.13" fi ;; 's390x' ) @@ -57,21 +60,18 @@ function pypy_pkg_data { 'win64' ) hash="${win64_hash}" cmd='install_zip' # diff command - url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ext='zip' # zip rather than bz2 ;; * ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + 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}" "${url}#${hash}" + echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}" } # determine command, package directory, url+hash diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.10 b/plugins/python-build/share/python-build/pypy3.9-7.3.10 new file mode 100644 index 0000000000..9810b2a6b6 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.10 @@ -0,0 +1,81 @@ +VERSION='7.3.10' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=657a04fd9a5a992a2f116a9e7e9132ea0c578721f59139c9fb2083775f71e514 +linux32_hash=b6db59613b9a1c0c1ab87bc103f52ee95193423882dc8a848b68850b8ba59cc5 +linux64_hash=95cf99406179460d63ddbfe1ec870f889d05f7767ce81cef14b88a3a9e127266 +osarm64_hash=e2a6bec7408e6497c7de8165aa4a1b15e2416aec4a72f2578f793fb06859ccba +osx64_hash=f90c8619b41e68ec9ffd7d5e913fe02e60843da43d3735b1c1bc75bcfe638d97 +s390x_hash=ca6525a540cf0c682d1592ae35d3fbc97559a97260e4b789255cc76dde7a14f0 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.10-src b/plugins/python-build/share/python-build/pypy3.9-7.3.10-src new file mode 100644 index 0000000000..ef4c5f307b --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.10-src @@ -0,0 +1,14 @@ +VERSION='7.3.10' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=3738d32575ed2513e3e66878e4e4c6c208caed267570f3f9f814748830002967 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.9 b/plugins/python-build/share/python-build/pypy3.9-7.3.9 index ec2df704e3..a59ee362f3 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.9 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.9 @@ -11,29 +11,38 @@ win64_hash=be48ab42f95c402543a7042c999c9433b17e55477c847612c8733a583ca6dff5 ### 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 + # pypy architecture tag local ARCH="${1}" - local basesrc="pypy${PYVER}-${VERSION}-src" - local basever="pypy${PYVER}-v${VERSION}" - local baseurl="https://downloads.python.org/pypy/${basever}" - # defaults local cmd='install_package' # use bz2 local pkg="${ARCH}" # assume matches - local url="${baseurl}-${pkg}.tar.bz2" # use bz2 + local ext='tar.bz2' # windows is always diff... local hash='' # undefined - case "${pkg}" in + # select the hash, fix pkg if not match ARCH, windows has ext of zip + case "${ARCH}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + pkg='aarch64' ;; 'linux' ) hash="${linux32_hash}" - pkg='linux32' # package name revised - url="${baseurl}-${pkg}.tar.bz2" # new url + pkg='linux32' ;; 'linux64' ) hash="${linux64_hash}" @@ -42,13 +51,7 @@ function pypy_pkg_data { if require_osx_version "10.13"; then hash="${osx64_hash}" else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + err_no_binary "${ARCH}, OS X < 10.13" fi ;; 's390x' ) @@ -57,21 +60,18 @@ function pypy_pkg_data { 'win64' ) hash="${win64_hash}" cmd='install_zip' # diff command - url="${baseurl}-${pkg}.zip" # zip rather than bz2 + ext='zip' # zip rather than bz2 ;; * ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try '${basesrc}' to build from source." - echo - } >&2 - exit 1 + 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}" "${url}#${hash}" + echo "${cmd}" "${basever}-${pkg}" "${baseurl}-${pkg}.${ext}#${hash}" } # determine command, package directory, url+hash From 49cc88094a5378f6761286562dc44c00caec623a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 10 Dec 2022 15:48:28 +0300 Subject: [PATCH 0544/1324] CI: Install bootstrapper Python for PyPy source builds --- .github/workflows/modified_scripts_build.yml | 38 ++++++++++++++------ 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 56c790653d..37cff8456b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -32,26 +32,35 @@ jobs: steps: - uses: actions/checkout@v2 - run: | - brew install openssl openssl@1.1 readline sqlite3 xz zlib - - run: | + #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | + #prerequisites + brew install openssl openssl@1.1 readline sqlite3 xz zlib + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + pyenv install 2.7.18 + PYENV_VERSION=2.7.18 pip install curses genc pycparser + fi + - run: | + #build pyenv install -v ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - - run: > + - run: | + #print version if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then python -c 'import sys; print(sys.version)' else - python --version; + python --version python -m pip --version fi # Micropython doesn't support sys.executable, os.path, older versions even os - env: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | + #check if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 python -c 'import sys; assert sys.implementation.name == "micropython"' @@ -82,29 +91,38 @@ jobs: steps: - uses: actions/checkout@v2 - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + #prerequisites sudo apt-get update -q; sudo apt-get install -yq make build-essential \ libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + pyenv install 2.7.18 + PYENV_VERSION=2.7.18 pip install curses genc pycparser + fi - run: | - export PYENV_ROOT="$GITHUB_WORKSPACE" - echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - run: | + #build pyenv install -v ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - - run: > + - run: | + #print version if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then python -c 'import sys; print(sys.version)' else - python --version; + python --version python -m pip --version fi # Micropython doesn't support sys.executable, os.path, older versions even os - env: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | + #check if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 python -c 'import sys; assert sys.implementation.name == "micropython"' From 18f62f266dba40882ebd6cc04fc4d3e148211338 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 10 Dec 2022 16:05:29 +0300 Subject: [PATCH 0545/1324] Remove no-longer-needed PyPy prerequisites --- .github/workflows/modified_scripts_build.yml | 6 ++++-- plugins/python-build/bin/pyenv-install | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 37cff8456b..aec5deda6e 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -41,7 +41,8 @@ jobs: brew install openssl openssl@1.1 readline sqlite3 xz zlib if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then pyenv install 2.7.18 - PYENV_VERSION=2.7.18 pip install curses genc pycparser + PYENV_VERSION=2.7.18 pip install pycparser + # brew install expat fi - run: | #build @@ -103,7 +104,8 @@ jobs: xz-utils tk-dev libffi-dev liblzma-dev if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then pyenv install 2.7.18 - PYENV_VERSION=2.7.18 pip install curses genc pycparser + PYENV_VERSION=2.7.18 pip install pycparser + # sudo apt install -yq libexpat1-dev fi - run: | #build diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index e7877b2d61..553ecc422c 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -219,7 +219,7 @@ if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then done fi if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then - for dep in curses genc pycparser; do + for dep in pycparser; do if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c "import ${dep}" 1>/dev/null 2>&1; then echo "pyenv-install: $VERSION_NAME: PyPy requires \`${dep}' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2 exit 1 From 540c94bdb1cffc142bac274092c2e22ecb1606d1 Mon Sep 17 00:00:00 2001 From: Dan Dees Date: Sat, 10 Dec 2022 22:28:31 +0300 Subject: [PATCH 0546/1324] CI: Use PyPy 2.7 as PyPy source build bootstrapper --- .github/workflows/modified_scripts_build.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index aec5deda6e..8eff5360a8 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -40,9 +40,9 @@ jobs: #prerequisites brew install openssl openssl@1.1 readline sqlite3 xz zlib if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - pyenv install 2.7.18 - PYENV_VERSION=2.7.18 pip install pycparser - # brew install expat + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION fi - run: | #build @@ -103,9 +103,9 @@ jobs: curl llvm libncurses5-dev libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - pyenv install 2.7.18 - PYENV_VERSION=2.7.18 pip install pycparser - # sudo apt install -yq libexpat1-dev + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION fi - run: | #build From 9ba6124833e0daf002ae23805b42835cb6c663a0 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Tue, 13 Dec 2022 11:01:32 +0000 Subject: [PATCH 0547/1324] Add miniforge3 and mambaforge 22.9.0-2 --- .../share/python-build/mambaforge-22.9.0-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.9.0-2 | 25 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-22.9.0-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.9.0-2 diff --git a/plugins/python-build/share/python-build/mambaforge-22.9.0-2 b/plugins/python-build/share/python-build/mambaforge-22.9.0-2 new file mode 100644 index 0000000000..4090f49022 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.9.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.9.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-Linux-aarch64.sh#26cf4a5cd3a3b9085f75911b459b969d6ff8ab426ef9a8e7ce3b47cc683ead86" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.9.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-Linux-ppc64le.sh#e13044cdbce8542896dd8b7128a00b691c119e7ad6e872c7de93ec9954b4775d" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.9.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-Linux-x86_64.sh#d2bb6c33f2373131fc71283baae9eb81a279708d007e55d627d85abe30c2d0eb" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.9.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-MacOSX-arm64.sh#21959f1a17a662b3f260e8b04fe2dfe82f1246746875a72f513d39159d8b816b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.9.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Mambaforge-22.9.0-2-MacOSX-x86_64.sh#844fc1ac61967990f0cfb9e516e8b0704ac2e500854588fd9851d2790d817bab" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.9.0-2 b/plugins/python-build/share/python-build/miniforge3-22.9.0-2 new file mode 100644 index 0000000000..96e85dc128 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.9.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.9.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Miniforge3-22.9.0-2-Linux-aarch64.sh#3d75758c4d98181946b29d391323209752c5a111530738b5e36eba77e8e026aa" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.9.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Miniforge3-22.9.0-2-Linux-ppc64le.sh#e84ffc9f018d5b23601106f299fefd25a75afb6fdd3416037ce4b561781156fc" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.9.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Miniforge3-22.9.0-2-Linux-x86_64.sh#180aefcbcf8a9f24123adb9e64e16c9bb16bc3f129bd79a5912ff44f295cc405" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.9.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Miniforge3-22.9.0-2-MacOSX-arm64.sh#6ac610dabf9a64574ec83b158b2eb6023bc3de0de9a0c528d4fa876df2a27d13" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.9.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-2/Miniforge3-22.9.0-2-MacOSX-x86_64.sh#d7f50abd340f63515b2059ed462548f5d395e2f9d7847a98c5428998504f5bff" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 23576296ae4b1280b95ed9cda3d175c37f2297e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=87=E8=90=B1/=E5=9C=9F=E6=92=A5=E9=BC=A0=EF=BC=88Lis?= =?UTF-8?q?beth=EF=BC=89?= Date: Wed, 14 Dec 2022 01:05:01 +0800 Subject: [PATCH 0548/1324] Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.16 (#2558) --- .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.9.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch diff --git a/plugins/python-build/share/python-build/patches/3.9.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.9.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; From 6b9795728e444b723e83543bcb3e838824a132cc Mon Sep 17 00:00:00 2001 From: Sam Doran Date: Thu, 15 Dec 2022 16:42:20 -0500 Subject: [PATCH 0549/1324] Add openssl patches for 3.7.15, 3.7.16, and 3.8.16 --- .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ .../openssl_1.1.1q_fix_c_include.patch | 12 ++++++++++++ 3 files changed, 36 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.7.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch diff --git a/plugins/python-build/share/python-build/patches/3.7.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.7.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.15/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; diff --git a/plugins/python-build/share/python-build/patches/3.7.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.7.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; diff --git a/plugins/python-build/share/python-build/patches/3.8.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch b/plugins/python-build/share/python-build/patches/3.8.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch new file mode 100644 index 0000000000..e7088e5e1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.16/openssl-1.1.1q/openssl_1.1.1q_fix_c_include.patch @@ -0,0 +1,12 @@ +diff --git a/test/v3ext.c b/test/v3ext.c +index 7a240cd706..6cec6f1a9b 100644 +--- a/test/v3ext.c ++++ b/test/v3ext.c +@@ -15,6 +15,7 @@ + #include + #include "internal/nelem.h" + ++#include + #include "testutil.h" + + static const char *infile; From ae048771543cc37ed78de21481eb634d3db44579 Mon Sep 17 00:00:00 2001 From: Phung Nhat-Huy Date: Sun, 18 Dec 2022 23:16:18 +0100 Subject: [PATCH 0550/1324] Add Anaconda3-2022.10 (#2565) --- .../share/python-build/anaconda3-2022.10 | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2022.10 diff --git a/plugins/python-build/share/python-build/anaconda3-2022.10 b/plugins/python-build/share/python-build/anaconda3-2022.10 new file mode 100644 index 0000000000..8a147f8bda --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2022.10 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2022.10-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-aarch64.sh#dac187c9fa6cae4ad663937f0ef79c8f" "anaconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2022.10-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-ppc64le.sh#8dee159ac42f80eca8ce99ddbfd94099" "anaconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2022.10-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-s390x.sh#ef2a6accc4d0d77756130198cb481358" "anaconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2022.10-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh#80256bd7a55509665c4179fd61516745" "anaconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2022.10-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-MacOSX-arm64.sh#3a5d726f90e11270990e520905cf8466" "anaconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2022.10-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2022.10-MacOSX-x86_64.sh#83fe2cbd4b32eeb63e99c3e15d72be85" "anaconda" verify_py39 + ;; +* ) + { 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 From f9e519611ac57104a7556f60ac0a1c4c8e205016 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 19 Dec 2022 07:52:31 +0300 Subject: [PATCH 0551/1324] 2.3.9 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9905ac9d9f..e27bddd3c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +## Release 2.3.9 + +* Add -latest suffix to miniforge3 by @nwh in https://github.com/pyenv/pyenv/pull/2551 +* Add PyPy 7.3.10 by @dand-oss in https://github.com/pyenv/pyenv/pull/2553 +* Add miniforge3 and mambaforge 22.9.0-2 by @smcgivern in https://github.com/pyenv/pyenv/pull/2559 +* Fix compilation error when building OpenSSL 1.1.1q in MacOS 11+ for 3.9.16 by @lisbethw1130 in https://github.com/pyenv/pyenv/pull/2558 +* Add `openssl` patches for 3.7.15, 3.7.16, and 3.8.16 by @samdoran in https://github.com/pyenv/pyenv/pull/2564 +* Add support for Anaconda3-2022.10 by @huypn12 in https://github.com/pyenv/pyenv/pull/2565 + ## Release 2.3.8 * Export detected shell environment in pyenv-init by @ianchen-tw in https://github.com/pyenv/pyenv/pull/2540 From 2bb59169db4fe35fde9b237c9d4d0974b41ecbca Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 19 Dec 2022 07:52:52 +0300 Subject: [PATCH 0552/1324] 2.3.9 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index dbc8e432ec..de55f9850b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.8" +version="2.3.9" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From ff93c58babd813066bf2d64d004a5cee33c0f27b Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Tue, 20 Dec 2022 20:01:19 +0100 Subject: [PATCH 0553/1324] Remove stray newline after python-build installation (#2566) To match other Pyenv commands --- plugins/python-build/bin/python-build | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 7fc9004e60..c5f300a677 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -233,9 +233,7 @@ install_package_using() { make_package "${make_args[@]}" popd >&4 - { echo "Installed ${package_name} to ${PREFIX_PATH}" - echo - } >&2 + echo "Installed ${package_name} to ${PREFIX_PATH}" >&2 } make_package() { From 31f372034d349ed1b8ac2b30349bbd75dadfa141 Mon Sep 17 00:00:00 2001 From: rockandska Date: Thu, 22 Dec 2022 18:35:25 +0100 Subject: [PATCH 0554/1324] Allow multiple versions for pyenv-install --- plugins/python-build/bin/pyenv-install | 276 +++++++++++++------------ plugins/python-build/test/pyenv.bats | 64 +++++- 2 files changed, 198 insertions(+), 142 deletions(-) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 553ecc422c..22b211a8a9 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -2,7 +2,7 @@ # # Summary: Install a Python version using python-build # -# Usage: pyenv install [-f] [-kvp] +# Usage: pyenv install [-f] [-kvp] ... # pyenv install [-f] [-kvp] # pyenv install -l|--list # pyenv install --version @@ -113,17 +113,15 @@ for option in "${OPTIONS[@]}"; do esac done -[ "${#ARGUMENTS[@]}" -le 1 ] || usage 1 >&2 - unset VERSION_NAME # The first argument contains the definition to install. If the # argument is missing, try to install whatever local app-specific # version is specified by pyenv. Show usage instructions if a local # version is not specified. -DEFINITION="${ARGUMENTS[0]}" -[ -n "$DEFINITION" ] || DEFINITION="$(pyenv-local 2>/dev/null || true)" -[ -n "$DEFINITION" ] || usage 1 >&2 +DEFINITIONS=("${ARGUMENTS[@]}") +[ -n "${DEFINITIONS[*]}" ] || DEFINITIONS=($(pyenv-local 2>/dev/null || true)) +[ -n "${DEFINITIONS[*]}" ] || usage 1 >&2 # Define `before_install` and `after_install` functions that allow # plugin hooks to register a string of code for execution before or @@ -140,150 +138,154 @@ after_install() { after_hooks["${#after_hooks[@]}"]="$hook" } +# Plan cleanup on unsuccessful installation. +cleanup() { + [ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX" +} + +trap cleanup SIGINT + + OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks install`) IFS="$OLDIFS" for script in "${scripts[@]}"; do source "$script"; done -# Try to resolve a prefix if user indeed gave a prefix. -# We install the version under the resolved name -# and hooks also see the resolved name -DEFINITION="$(pyenv-latest -q -k "$DEFINITION" || echo "$DEFINITION")" - -# Set VERSION_NAME from $DEFINITION, if it is not already set. Then -# compute the installation prefix. -[ -n "$VERSION_NAME" ] || VERSION_NAME="${DEFINITION##*/}" -[ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug" -PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}" - -[ -d "${PREFIX}" ] && PREFIX_EXISTS=1 - -# If the installation prefix exists, prompt for confirmation unless -# the --force option was specified. -if [ -d "${PREFIX}/bin" ]; then - if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then - echo "pyenv: $PREFIX already exists" >&2 - read -p "continue with installation? (y/N) " - - case "$REPLY" in - y | Y | yes | YES ) ;; - * ) exit 1 ;; - esac - elif [ -n "$SKIP_EXISTING" ]; then - # Since we know the python version is already installed, and are opting to - # not force installation of existing versions, we just `exit 0` here to - # leave things happy - exit 0 +for DEFINITION in "${DEFINITIONS[@]}";do + # Try to resolve a prefix if user indeed gave a prefix. + # We install the version under the resolved name + # and hooks also see the resolved name + DEFINITION="$(pyenv-latest -q -k "$DEFINITION" || echo "$DEFINITION")" + + # Set VERSION_NAME from $DEFINITION. Then compute the installation prefix. + VERSION_NAME="${DEFINITION##*/}" + [ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug" + PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}" + + [ -d "${PREFIX}" ] && PREFIX_EXISTS=1 + + # If the installation prefix exists, prompt for confirmation unless + # the --force option was specified. + if [ -d "${PREFIX}/bin" ]; then + if [ -z "$FORCE" ] && [ -z "$SKIP_EXISTING" ]; then + echo "pyenv: $PREFIX already exists" >&2 + read -p "continue with installation? (y/N) " + + case "$REPLY" in + y | Y | yes | YES ) ;; + * ) exit 1 ;; + esac + elif [ -n "$SKIP_EXISTING" ]; then + # Since we know the python version is already installed, and are opting to + # not force installation of existing versions, we just `exit 0` here to + # leave things happy + continue + fi fi -fi -# If PYENV_BUILD_ROOT is set, always pass keep options to python-build. -if [ -n "${PYENV_BUILD_ROOT}" ]; then - export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}" - KEEP="-k" -fi + # If PYENV_BUILD_ROOT is set, always pass keep options to python-build. + if [ -n "${PYENV_BUILD_ROOT}" ]; then + export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}" + KEEP="-k" + fi -# Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory -# exists and the variable is not already set. -if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then - export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache" -fi + # Set PYTHON_BUILD_CACHE_PATH to $PYENV_ROOT/cache, if the directory + # exists and the variable is not already set. + if [ -z "${PYTHON_BUILD_CACHE_PATH}" ] && [ -d "${PYENV_ROOT}/cache" ]; then + export PYTHON_BUILD_CACHE_PATH="${PYENV_ROOT}/cache" + fi -if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then - case "${VERSION_NAME}" in - [23]"."* ) - # Default PYENV_VERSION to the friendly Python version. (The - # CPython installer requires an existing Python installation to run. An - # unsatisfied local .python-version file can cause the installer to - # fail.) - for version_info in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do - # Anaconda's `curl` doesn't work on platform where `/etc/pki/tls/certs/ca-bundle.crt` isn't available (e.g. Debian) - for version in $(pyenv-whence "python${version_info}" 2>/dev/null || true); do - if [[ "${version}" != "anaconda"* ]] && [[ "${version}" != "miniconda"* ]]; then - PYENV_BOOTSTRAP_VERSION="${version}" - break 2 - fi - done - done - ;; - "pypy"*"-dev" | "pypy"*"-src" ) - # PyPy/PyPy3 requires existing Python 2.7 to build - if [ -n "${PYENV_RPYTHON_VERSION}" ]; then - PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}" - else - for version in $(pyenv-versions --bare | sort -r); do - if [[ "${version}" == "2.7"* ]]; then - PYENV_BOOTSTRAP_VERSION="$version" - break - fi + if [ -z "${PYENV_BOOTSTRAP_VERSION}" ]; then + case "${VERSION_NAME}" in + [23]"."* ) + # Default PYENV_VERSION to the friendly Python version. (The + # CPython installer requires an existing Python installation to run. An + # unsatisfied local .python-version file can cause the installer to + # fail.) + for version_info in "${VERSION_NAME%-dev}" "${VERSION_NAME%.*}" "${VERSION_NAME%%.*}"; do + # Anaconda's `curl` doesn't work on platform where `/etc/pki/tls/certs/ca-bundle.crt` isn't available (e.g. Debian) + for version in $(pyenv-whence "python${version_info}" 2>/dev/null || true); do + if [[ "${version}" != "anaconda"* ]] && [[ "${version}" != "miniconda"* ]]; then + PYENV_BOOTSTRAP_VERSION="${version}" + break 2 + fi + done done - fi - if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then - for dep in pycparser; do - if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c "import ${dep}" 1>/dev/null 2>&1; then - echo "pyenv-install: $VERSION_NAME: PyPy requires \`${dep}' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2 - exit 1 - fi - done - else - echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2 - exit 1 - fi - ;; - esac -fi - -if [ -n "${PYENV_BOOTSTRAP_VERSION}" ]; then - export PYENV_VERSION="${PYENV_BOOTSTRAP_VERSION}" -fi - -# Execute `before_install` hooks. -for hook in "${before_hooks[@]}"; do eval "$hook"; done - -# Plan cleanup on unsuccessful installation. -cleanup() { - [ -z "${PREFIX_EXISTS}" ] && rm -rf "$PREFIX" -} - -trap cleanup SIGINT + ;; + "pypy"*"-dev" | "pypy"*"-src" ) + # PyPy/PyPy3 requires existing Python 2.7 to build + if [ -n "${PYENV_RPYTHON_VERSION}" ]; then + PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}" + else + for version in $(pyenv-versions --bare | sort -r); do + if [[ "${version}" == "2.7"* ]]; then + PYENV_BOOTSTRAP_VERSION="$version" + break + fi + done + fi + if [ -n "$PYENV_BOOTSTRAP_VERSION" ]; then + for dep in pycparser; do + if ! PYENV_VERSION="$PYENV_BOOTSTRAP_VERSION" pyenv-exec python -c "import ${dep}" 1>/dev/null 2>&1; then + echo "pyenv-install: $VERSION_NAME: PyPy requires \`${dep}' in $PYENV_BOOTSTRAP_VERSION to build from source." >&2 + exit 1 + fi + done + else + echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2 + exit 1 + fi + ;; + esac + fi -# Invoke `python-build` and record the exit status in $STATUS. -STATUS=0 -python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?" + if [ -n "${PYENV_BOOTSTRAP_VERSION}" ]; then + export PYENV_VERSION="${PYENV_BOOTSTRAP_VERSION}" + fi -# Display a more helpful message if the definition wasn't found. -if [ "$STATUS" == "2" ]; then - { candidates="$(definitions "$DEFINITION")" - here="$(dirname "${0%/*}")/../.." - if [ -n "$candidates" ]; then + # Execute `before_install` hooks. + for hook in "${before_hooks[@]}"; do eval "$hook"; done + + # Invoke `python-build` and record the exit status in $STATUS. + STATUS=0 + python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?" + + # Display a more helpful message if the definition wasn't found. + if [ "$STATUS" == "2" ]; then + { candidates="$(definitions "$DEFINITION")" + here="$(dirname "${0%/*}")/../.." + if [ -n "$candidates" ]; then + echo + echo "The following versions contain \`$DEFINITION' in the name:" + echo "$candidates" | indent + fi echo - echo "The following versions contain \`$DEFINITION' in the name:" - echo "$candidates" | indent - fi - echo - echo "See all available versions with \`pyenv install --list'." - echo - echo -n "If the version you need is missing, try upgrading pyenv" - if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then - printf ":\n\n" - echo " brew update && brew upgrade pyenv" - elif [ -d "${here}/.git" ]; then - printf ":\n\n" - echo " cd ${here} && git pull && cd -" - else - printf ".\n" - fi - } >&2 -fi + echo "See all available versions with \`pyenv install --list'." + echo + echo -n "If the version you need is missing, try upgrading pyenv" + if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then + printf ":\n\n" + echo " brew update && brew upgrade pyenv" + elif [ -d "${here}/.git" ]; then + printf ":\n\n" + echo " cd ${here} && git pull && cd -" + else + printf ".\n" + fi + } >&2 + fi -# Execute `after_install` hooks. -for hook in "${after_hooks[@]}"; do eval "$hook"; done + # Execute `after_install` hooks. + for hook in "${after_hooks[@]}"; do eval "$hook"; done -# Run `pyenv-rehash` after a successful installation. -if [ "$STATUS" == "0" ]; then - pyenv-rehash -else - cleanup -fi + # Run `pyenv-rehash` after a successful installation. + if [ "$STATUS" == "0" ]; then + pyenv-rehash + else + break + cleanup + fi + +done -exit "$STATUS" +exit "${STATUS:-0}" diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 90359c48bb..5eae5b2c65 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -10,7 +10,7 @@ setup() { stub_python_build() { stub python-build "--lib : $BATS_TEST_DIRNAME/../bin/python-build --lib" "$@" - stub pyenv-latest " : false" + stub pyenv-latest ": false" } @test "install proper" { @@ -24,6 +24,26 @@ stub_python_build() { unstub pyenv-rehash } +@test "install proper multi versions" { + #stub python-build "--lib : $BATS_TEST_DIRNAME/../bin/python-build --lib" 'echo python-build "$@"' 'echo python-build "$@"' + #stub pyenv-latest ": false" ": false" + stub_python_build 'echo python-build "$@"' 'echo python-build "$@"' + stub pyenv-latest ": false" + stub pyenv-rehash 'true' + + run pyenv-install 3.4.1 3.4.2 + assert_success + assert_output < Date: Fri, 23 Dec 2022 10:55:13 +0300 Subject: [PATCH 0555/1324] Fix build tests --- plugins/python-build/test/build.bats | 112 +++++++++++------------ plugins/python-build/test/compiler.bats | 6 +- plugins/python-build/test/pyenv_ext.bats | 28 +++--- 3 files changed, 72 insertions(+), 74 deletions(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 649af776d0..f9c9a0a905 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -62,7 +62,7 @@ assert_build_log() { cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + for i in {1..10}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -74,12 +74,12 @@ assert_build_log() { unstub make assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew false @@ -370,7 +370,7 @@ DEF assert_build_log <> build.log' stub_make_install @@ -681,8 +681,8 @@ DEF assert_build_log <> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" @@ -324,8 +324,8 @@ EOS assert_success assert_build_log < Date: Sun, 25 Dec 2022 07:35:03 +0800 Subject: [PATCH 0556/1324] Fix non-bash output while detecting shell (#2561) Co-authored-by: Ivan Pozdeev --- libexec/pyenv-init | 13 ++++++++++--- test/init.bats | 6 ++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 3d21f31f57..8bc8bc36fe 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -83,7 +83,7 @@ function main() { exit 0 ;; "detect-shell") - detect_profile + detect_profile 1 print_detect_shell exit 0 ;; @@ -93,6 +93,8 @@ function main() { } function detect_profile() { + local detect_for_detect_shell="$1" + case "$shell" in bash ) if [ -e '~/.bash_profile' ]; then @@ -112,8 +114,13 @@ function detect_profile() { rc='~/.profile' ;; * ) - profile='your shell'\''s login startup file' - rc='your shell'\''s interactive startup file' + if [ -n "$detect_for_detect_shell" ]; then + profile= + rc= + else + profile='your shell'\''s login startup file' + rc='your shell'\''s interactive startup file' + fi ;; esac } diff --git a/test/init.bats b/test/init.bats index bfe253e374..21109c9488 100755 --- a/test/init.bats +++ b/test/init.bats @@ -63,6 +63,12 @@ OUT assert_line 'pyenv init - | source' } +@test "shell detection for installer" { + run pyenv-init --detect-shell + assert_success + assert_line "PYENV_SHELL_DETECT=bash" +} + @test "option to skip rehash" { run pyenv-init - --no-rehash assert_success From 3d83bcdbef27fd86bd57201ecdeb7132a7a24a93 Mon Sep 17 00:00:00 2001 From: dand-oss Date: Sat, 31 Dec 2022 15:17:18 +0700 Subject: [PATCH 0557/1324] Add PyPy 7.3.11 (#2576) Co-authored-by: Dan Dees --- .../share/python-build/pypy2.7-7.3.11 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.11-src | 14 ++++ .../share/python-build/pypy3.8-7.3.11 | 81 +++++++++++++++++++ .../share/python-build/pypy3.8-7.3.11-src | 14 ++++ .../share/python-build/pypy3.9-7.3.11 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.11-src | 14 ++++ 6 files changed, 285 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.11 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.11-src create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.11 create mode 100644 plugins/python-build/share/python-build/pypy3.8-7.3.11-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.11 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.11-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.11 b/plugins/python-build/share/python-build/pypy2.7-7.3.11 new file mode 100644 index 0000000000..b46c2dfa78 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.11 @@ -0,0 +1,81 @@ +VERSION='7.3.11' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=ea924da1defe9325ef760e288b04f984614e405580f5321eb6a5c8f539bd415a +linux32_hash=30fd245fab7068c96a75b9ff1323ac55174c64fc8c4751cceb4b7a9bedc1851e +linux64_hash=ba8ed958a905c0735a4cfff2875c25089954dc020e087d982b0ffa5b9da316cd +osarm64_hash=cc5696ab4f93cd3481c1e4990b5dedd7ba60ac0602fa1890d368889a6c5bf771 +osx64_hash=56deee9c22640f5686c35b9d64fdb1ce3abd044583e4078f0b171ca2fd2a198e +s390x_hash=8fe9481c473178e53266983678684a70fe0c42bafc95f1807bf3ef28770316d4 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.11-src b/plugins/python-build/share/python-build/pypy2.7-7.3.11-src new file mode 100644 index 0000000000..b3d38cd606 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.11-src @@ -0,0 +1,14 @@ +VERSION='7.3.11' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=1117afb66831da4ea6f39d8d2084787a74689fd0229de0be301f9ed9b255093c + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.11 b/plugins/python-build/share/python-build/pypy3.8-7.3.11 new file mode 100644 index 0000000000..9dc91087b9 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.11 @@ -0,0 +1,81 @@ +VERSION='7.3.11' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +aarch64_hash=9a2fa0b8d92b7830aa31774a9a76129b0ff81afbd22cd5c41fbdd9119e859f55 +linux32_hash=a79b31fce8f5bc1f9940b6777134189a1d3d18bda4b1c830384cda90077c9176 +linux64_hash=470330e58ac105c094041aa07bb05676b06292bc61409e26f5c5593ebb2292d9 +osarm64_hash=78cdc79ff964c4bfd13eb45a7d43a011cbe8d8b513323d204891f703fdc4fa1a +osx64_hash=194ca0b4d91ae409a9cb1a59eb7572d7affa8a451ea3daf26539aa515443433a +s390x_hash=eab7734d86d96549866f1cba67f4f9c73c989f6a802248beebc504080d4c3fcd + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.11-src b/plugins/python-build/share/python-build/pypy3.8-7.3.11-src new file mode 100644 index 0000000000..3dce018079 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.11-src @@ -0,0 +1,14 @@ +VERSION='7.3.11' +PYVER='3.8' + +# https://www.pypy.org/checksums.html +hash=4d6769bfca73734e8666fd70503b7ceb06a6e259110e617331bb3899ca4e6058 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.11 b/plugins/python-build/share/python-build/pypy3.9-7.3.11 new file mode 100644 index 0000000000..800c0aa348 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.11 @@ -0,0 +1,81 @@ +VERSION='7.3.11' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=09175dc652ed895d98e9ad63d216812bf3ee7e398d900a9bf9eb2906ba8302b9 +linux32_hash=0099d72c2897b229057bff7e2c343624aeabdc60d6fb43ca882bff082f1ffa48 +linux64_hash=d506172ca11071274175d74e9c581c3166432d0179b036470e3b9e8d20eae581 +osarm64_hash=91ad7500f1a39531dbefa0b345a3dcff927ff9971654e8d2e9ef7c5ae311f57e +osx64_hash=d33f40b207099872585afd71873575ca6ea638a27d823bc621238c5ae82542ed +s390x_hash=e1f30f2ddbe3f446ddacd79677b958d56c07463b20171fb2abf8f9a3178b79fc + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.11-src b/plugins/python-build/share/python-build/pypy3.9-7.3.11-src new file mode 100644 index 0000000000..a5b4b3bcfa --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.11-src @@ -0,0 +1,14 @@ +VERSION='7.3.11' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=b0f3166fb2a5aadfd5ceb9db5cdd5f7929a0eccca02b4a26c0dae0492f7ca8ea + +### 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' From 03ee3ffd3219c5551a1fbd22b957905df0ef3650 Mon Sep 17 00:00:00 2001 From: hauntsaninja Date: Mon, 2 Jan 2023 14:30:28 -0800 Subject: [PATCH 0558/1324] Mention how to build for maximum performance --- README.md | 3 +++ plugins/python-build/README.md | 15 +++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/README.md b/README.md index 9f1d447201..a20344aacd 100644 --- a/README.md +++ b/README.md @@ -396,6 +396,9 @@ You can pass options to Python's `configure` and compiler flags to customize the see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables) for details. +**NOTE:** If you'd like a faster interpreter at the cost of longer build times, +see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance). + **NOTE:** If you want to use proxy for download, please set the `http_proxy` and `https_proxy` environment variables. diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 0665c047a5..d3eec17d9d 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -164,6 +164,21 @@ the version(s) installed with `--enable-shared`. $ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.9 ``` +### Building for maximum performance + +Building CPython with `--enable-optimizations` will result in a faster +interpreter at the cost of significantly longer build times. Most notably, this +enables PGO (profile guided optimization). While your mileage may vary, it is +common for performance improvement from this to be in the ballpark of 30%. + +```sh +env PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto' PYTHON_CFLAGS='-march=native -mtune=native' pyenv install 3.6.0 +``` + +You can also customize the task used for profile guided optimization by setting +the `PROFILE_TASK` environment variable, for instance, `PROFILE_TASK='-m +test.regrtest --pgo -j0'` will run much faster than the default task. + ### Checksum verification If you have the `shasum`, `openssl`, or `sha256sum` tool installed, python-build will From b3a5b5eee3b4a9e8a06f3131c185c2302f6d6de6 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 3 Jan 2023 20:18:26 -0500 Subject: [PATCH 0559/1324] Support miniconda with Python 3.10 --- plugins/python-build/scripts/add_miniconda.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index b53618bc85..7c7ba50c7f 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -108,6 +108,7 @@ class PyVersion(StrEnum): PY37 = "py37" PY38 = "py38" PY39 = "py39" + PY310 = "py310" def version(self): first, *others = self.value[2:] From e715e03be038ff1ccd853a6c0b285c9497a9530a Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 3 Jan 2023 20:29:19 -0500 Subject: [PATCH 0560/1324] Support new miniconda file name format --- plugins/python-build/scripts/add_miniconda.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 7c7ba50c7f..e6f56c3f63 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -121,7 +121,7 @@ def version_info(self): @total_ordering class VersionStr(str): def info(self): - return tuple(int(n) for n in self.split(".")) + return tuple(int(n) for n in self.replace("-", ".").split(".")) def __eq__(self, other): return str(self) == str(other) @@ -214,7 +214,10 @@ class CondaSpec(NamedTuple): @classmethod def from_filestem(cls, stem, md5, repo, py_version=None): - miniconda_n, ver, os, arch = stem.split("-") + # The `*vers` captures the new trailing `-1` in some file names (a build number?) + # so they can be processed properly. + miniconda_n, *vers, os, arch = stem.split("-") + ver = "-".join(vers) suffix = miniconda_n[-1] if suffix in string.digits: tflavor = miniconda_n[:-1] @@ -372,7 +375,7 @@ def key_fn(spec: CondaSpec): reason = "already exists" elif key.version_str.info() <= (4, 3, 30): reason = "too old" - elif len(key.version_str.info()) >= 4: + elif len(key.version_str.info()) >= 4 and "-" not in key.version_str: reason = "ignoring hotfix releases" if reason: From 7d7f8b94ae601815fbfc79a874d1c07772f4b1ce Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 3 Jan 2023 20:31:01 -0500 Subject: [PATCH 0561/1324] Add miniconda 22.11.1-1 --- .../python-build/miniconda3-3.10-22.11.1-1 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.7-22.11.1-1 | 25 +++++++++++++++++ .../python-build/miniconda3-3.8-22.11.1-1 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-22.11.1-1 | 28 +++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-22.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.7-22.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-22.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-22.11.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-22.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-22.11.1-1 new file mode 100644 index 0000000000..ed3e7e400a --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-22.11.1-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_22.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-aarch64.sh#48a96df9ff56f7421b6dd7f9f71d548023847ba918c3826059918c08326c2017" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_22.11.1-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-ppc64le.sh#4c86c3383bb27b44f7059336c3a46c34922df42824577b93eadecefbf7423836" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_22.11.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-s390x.sh#a150511e7fd19d07b770f278fb5dd2df4bc24a8f55f06d6274774f209a36c766" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_22.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-Linux-x86_64.sh#00938c3534750a0e4069499baf8f4e6dc1c2e471c86a59caa0dd03f4a9269db6" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_22.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-MacOSX-arm64.sh#22eec9b7d3add25ac3f9b60621d8f3d8df3e63d4aa0ae5eb846b558d7ba68333" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_22.11.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_22.11.1-1-MacOSX-x86_64.sh#7406579393427eaf9bc0e094dcd3c66d1e1b93ee9db4e7686d0a72ea5d7c0ce5" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-22.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.7-22.11.1-1 new file mode 100644 index 0000000000..b024ad3985 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.7-22.11.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_22.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_22.11.1-1-Linux-aarch64.sh#ebba2f7e33ce5594c50e6422477106e6bb327310838fbac3db89d2eaebcde943" "miniconda" verify_py37 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py37_22.11.1-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_22.11.1-1-Linux-ppc64le.sh#dda16ae14992697e3c90b56fe9de819f5f3b1dcb3ac7a31d24ab5736ccd5f129" "miniconda" verify_py37 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_22.11.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_22.11.1-1-Linux-s390x.sh#3c71628865164c3f8b461f8e4b2a353ff1367eed61c83b9c3e14fc201608b1a7" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_22.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_22.11.1-1-Linux-x86_64.sh#22b14d52265b4e609c6ce78e2f2884b277d976b83b5f9c8a83423e3eba2ccfbe" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_22.11.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_22.11.1-1-MacOSX-x86_64.sh#e51d459aae45bb6b86c2716738b778b788785e6e1ea4b2ed244a0fdd754feb19" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-22.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.8-22.11.1-1 new file mode 100644 index 0000000000..5c3c2b8982 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-22.11.1-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_22.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-Linux-aarch64.sh#ff65684bce7a7ad7abb698ff649195816ee0f47a4f17cb9632a44abf69357ea5" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_22.11.1-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-Linux-ppc64le.sh#59fd0901f9fa1ba6b07e734adff4d6c5215e9d7f13ad37f0044af22e9b72194a" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_22.11.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-Linux-s390x.sh#5bdc6ead307c098b32ba8473b7cbbe87eb80f8eca9adba03f47848bcb34a9b38" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_22.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-Linux-x86_64.sh#473e5ecc8e078e9ef89355fbca21f8eefa5f9081544befca99867c7beac3150d" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_22.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-MacOSX-arm64.sh#bf75dbf193db6895c62b2bb963cab2534a8bbdf0ac956f270da8d7a19f4d1b54" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_22.11.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_22.11.1-1-MacOSX-x86_64.sh#6c4cea3c355326f503d15ae97e5126437529a595499e3ce304cd0f247e935da8" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-22.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-22.11.1-1 new file mode 100644 index 0000000000..f9a7107f56 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-22.11.1-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_22.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_22.11.1-1-Linux-aarch64.sh#031b6c52060bb75e930846c0a66baa91db8196f0d97fd32f3822c54db6b7c76a" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_22.11.1-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_22.11.1-1-Linux-ppc64le.sh#16cc2d74644cf838d2761723c01172e0b704674317630480902ef429af29bd0b" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_22.11.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_22.11.1-1-Linux-s390x.sh#ed6176aa6b52e22d939ea5c0c38f9f3cf52d2519a5d0dcb414936287893a31f9" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_22.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_22.11.1-1-Linux-x86_64.sh#e685005710679914a909bfb9c52183b3ccc56ad7bb84acc861d596fcbe5d28bb" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_22.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_22.11.1-1-MacOSX-arm64.sh#eca5e241faea19d4b352aba819f99f42e2336fdbeecb04f5bc89c9ca786ea798" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_22.11.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_22.11.1-1-MacOSX-x86_64.sh#9a537f3a1b472098754c59a30b94822f1e9458405af831172aaa8f8124e9df88" "miniconda" verify_py39 + ;; +* ) + { 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 From 25c974d59ae8dd30ff9d8c2c733790618db12138 Mon Sep 17 00:00:00 2001 From: Brendan Falk Date: Wed, 4 Jan 2023 18:03:45 -0800 Subject: [PATCH 0562/1324] Add Fig as autocomplete suggestion (#2574) Co-authored-by: Ivan Pozdeev --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index a20344aacd..e15a18176c 100644 --- a/README.md +++ b/README.md @@ -357,6 +357,11 @@ See [Advanced configuration](#advanced-configuration) for details and more confi **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. + In MacOS, you might also want to install [Fig](https://fig.io/) which +provides alternative shell completions for many command line tools with an +IDE-like popup interface in the terminal window. +(Note that their completions are independent from Pyenv's codebase +so they might be slightly out of sync for bleeding-edge interface changes.) ### Restart your shell From 2369ac2a089e1afaf61753ee1d4bc08b80c1ace7 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 10 Jan 2023 01:13:09 +0300 Subject: [PATCH 0563/1324] Fix using dependencies from Ports in BSD with no pkg-config (#2586) --- plugins/python-build/bin/python-build | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 97b86fdeaf..c5815da454 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1416,20 +1416,17 @@ use_freebsd_pkg() { if [ "FreeBSD" = "$(uname -s)" ]; then # use openssl if installed from Ports Collection if [ -f /usr/local/include/openssl/ssl.h ]; then - package_option ruby configure --with-openssl-dir="/usr/local" + package_option python configure --with-openssl="/usr/local" fi # check if 11-R or later release="$(uname -r)" if [ "${release%%.*}" -ge 11 ]; then - # prefers readline to compile most of ruby versions - if pkg info -e readline > /dev/null; then + if pkg info -e readline > /dev/null && ! command -v pkg-config > /dev/null ; then # use readline from Ports Collection - package_option ruby configure --with-readline-dir="/usr/local" - elif pkg info -e libedit > /dev/null; then - # use libedit from Ports Collection - package_option ruby configure --enable-libedit - package_option ruby configure --with-libedit-dir="/usr/local" + # unlike Linux, BSD's cc does not look in /usr/local by default + export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I/usr/local/include" + export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L/usr/local/lib -Wl,-rpath,/usr/local/lib" fi fi fi From 579c34e5702c630bbb51b918836d92aa178a9478 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 10 Jan 2023 19:03:00 +0300 Subject: [PATCH 0564/1324] 2.3.10 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index de55f9850b..dfc04e230e 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.9" +version="2.3.10" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From fc4c0ac52d3b4383e68045d087fb6cf8be0c02ca Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 10 Jan 2023 19:03:46 +0300 Subject: [PATCH 0565/1324] 2.3.10 --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e27bddd3c6..7f5e3b4b24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,17 @@ # Version History +## Release 2.3.10 + +* Remove stray newline after python-build installation by @tklauser in https://github.com/pyenv/pyenv/pull/2566 +* Allow multiple versions for pyenv-install by @rockandska in https://github.com/pyenv/pyenv/pull/2568 +* --enable-shared by default by @anton-petrov in https://github.com/pyenv/pyenv/pull/2554 +* Fix non-bash output while detecting shell by @ianchen-tw in https://github.com/pyenv/pyenv/pull/2561 +* add pypy 7.3.11 release by @dand-oss in https://github.com/pyenv/pyenv/pull/2576 +* Mention how to build for maximum performance by @hauntsaninja in https://github.com/pyenv/pyenv/pull/2579 +* Add miniconda 22.11.1-1 by @aphedges in https://github.com/pyenv/pyenv/pull/2583 +* Add Fig as autocomplete suggestion by @brendanfalk in https://github.com/pyenv/pyenv/pull/2574 +* Fix using dependencies from Ports in BSD with no pkg-config by @native-api in https://github.com/pyenv/pyenv/pull/2586 + ## Release 2.3.9 * Add -latest suffix to miniforge3 by @nwh in https://github.com/pyenv/pyenv/pull/2551 From f4598bc1f05005b8683f3ccdf09d04c7d6c215d0 Mon Sep 17 00:00:00 2001 From: Afront <3943720+Afront@users.noreply.github.com> Date: Wed, 11 Jan 2023 13:16:00 +0900 Subject: [PATCH 0566/1324] Add CPython 3.12.0a4 --- .../python-build/share/python-build/{3.12.0a3 => 3.12.0a4} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0a3 => 3.12.0a4} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0a3 b/plugins/python-build/share/python-build/3.12.0a4 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0a3 rename to plugins/python-build/share/python-build/3.12.0a4 index dde14fc9e6..c38ff183d2 100644 --- a/plugins/python-build/share/python-build/3.12.0a3 +++ b/plugins/python-build/share/python-build/3.12.0a4 @@ -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.0a3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a3.tar.xz#1b64b3075e0a9241974e580e09b09c9117a1c4e2be698039201ef1d8a73453d1" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a4.tar.xz#b9176c46b1cd21dbdcb31bbbab6169faa92da9acc5f35bd4a009879ac74cf6af" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0a3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a3.tgz#fd414e6b6520171f5cefc5cba1067265187a322417f7bdec8d024db7fc8fbe96" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a4.tgz#d9d9cbebc745ecaf5cae6b4004a84692154183b729954d3a421fba3d2a541d59" standard verify_py312 copy_python_gdb ensurepip fi From c7f2c4db45a8b9223c8532fbe80de0d8c07c9dde Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Tue, 13 Dec 2022 11:20:49 +0000 Subject: [PATCH 0567/1324] Add a script to add the latest miniforge and mambaforge versions This takes inspiration from the similar script for miniconda, but it simplifies in a couple of ways: 1. Use the GitHub Releases API instead of scraping HTML. 2. Don't perform a diff, simply add the latest release. Lots of intermediate miniconda releases have been skipped in the past, and it doesn't seem particularly valuable to backfill those. --- plugins/python-build/scripts/add_miniforge.py | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100755 plugins/python-build/scripts/add_miniforge.py diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py new file mode 100755 index 0000000000..e9701b8c57 --- /dev/null +++ b/plugins/python-build/scripts/add_miniforge.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +'Adds the latest miniforge and mambaforge releases.' +from pathlib import Path +import logging +import os +import string + +import requests + +logger = logging.getLogger(__name__) +logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO')) + +MINIFORGE_REPO = 'conda-forge/miniforge' +PYTHON_VERSION = '310' +DISTRIBUTIONS = ['miniforge', 'mambaforge'] + +install_script_fmt = """ +case "$(anaconda_architecture 2>/dev/null || true)" in +{install_lines} +* ) + {{ echo + colorize 1 "ERROR" + echo ": The binary distribution of {flavor} is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + }} >&2 + exit 1 + ;; +esac +""".lstrip() + +install_line_fmt = """ +"{os}-{arch}" ) + install_script "{filename}" "{url}#{sha}" "miniconda" verify_py{py_version} + ;; +""".strip() + +here = Path(__file__).resolve() +out_dir: Path = here.parent.parent / "share" / "python-build" + +def download_sha(url): + logger.debug('Downloading SHA file %(url)s', locals()) + tup = tuple(reversed(requests.get(url).text.replace('./', '').rstrip().split())) + logger.debug('Got %(tup)s', locals()) + return tup + +def create_spec(filename, sha, url): + flavor_with_suffix, version, subversion, os, arch = filename.replace('.sh', '').split('-') + suffix = flavor_with_suffix[-1] + + if suffix in string.digits: + flavor = flavor_with_suffix[:-1] + else: + flavor = flavor_with_suffix + + spec = { + 'filename': filename, + 'sha': sha, + 'url': url, + 'py_version': PYTHON_VERSION, + 'flavor': flavor, + 'os': os, + 'arch': arch, + 'installer_filename': f'{flavor_with_suffix.lower()}-{version}-{subversion}', + } + + logger.debug('Created spec %(spec)s', locals()) + + return spec + +def supported(filename): + return ('pypy' not in filename) and ('Windows' not in filename) + +def add_version(release): + download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] } + shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256')]) + specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)] + + for distribution in DISTRIBUTIONS: + distribution_specs = [spec for spec in specs if distribution in spec['flavor'].lower()] + count = len(distribution_specs) + + if count > 0: + output_file = out_dir / distribution_specs[0]['installer_filename'] + + logger.info('Writing %(count)d specs for %(distribution)s to %(output_file)s', locals()) + + script_str = install_script_fmt.format( + install_lines="\n".join([install_line_fmt.format_map(s) for s in distribution_specs]), + flavor=distribution_specs[0]['flavor'], + ) + + with open(output_file, 'w') as f: + f.write(script_str) + else: + logger.info('Did not find specs for %(distribution)s', locals()) + +for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/releases').json(): + version = release['tag_name'] + + logger.info('Looking for %(version)s in %(out_dir)s', locals()) + + if not list(out_dir.glob(f'*-{version}')): + logger.info('Downloading %(version)s', locals()) + add_version(release) From b9a27af7b8d51f5ee2c0e17cbe9ab29ef08b2372 Mon Sep 17 00:00:00 2001 From: Sean McGivern Date: Wed, 11 Jan 2023 19:51:31 +0000 Subject: [PATCH 0568/1324] Add missing Miniforge/Mambaforge versions (4.10.2-0 - 22.9.0-3) (#2591) --- .../share/python-build/mambaforge-22.9.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-22.9.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-22.9.0-3 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.2-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-2 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-3 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-4 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-5 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-6 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-7 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.10.3-8 | 16 ++++++++++++ .../share/python-build/mambaforge-4.10.3-9 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.11.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.11.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.11.0-2 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.11.0-3 | 16 ++++++++++++ .../share/python-build/mambaforge-4.11.0-4 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.12.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.12.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.12.0-2 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.12.0-3 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.13.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.14.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.14.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-4.14.0-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.9.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.9.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.9.0-3 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.2-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-3 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-4 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-5 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-6 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-7 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.10.3-8 | 16 ++++++++++++ .../share/python-build/miniforge3-4.10.3-9 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.11.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.11.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.11.0-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.11.0-3 | 16 ++++++++++++ .../share/python-build/miniforge3-4.11.0-4 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.12.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.12.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.12.0-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.12.0-3 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.13.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.13.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.14.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.14.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-4.14.0-2 | 25 +++++++++++++++++++ 55 files changed, 1339 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-22.9.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-22.9.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-22.9.0-3 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.2-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-2 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-3 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-4 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-5 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-6 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-7 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-8 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.10.3-9 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.11.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.11.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.11.0-2 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.11.0-3 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.11.0-4 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.12.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.12.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.12.0-2 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.12.0-3 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.13.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.14.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.14.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-4.14.0-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.9.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.9.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.9.0-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.2-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-4 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-5 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-6 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-7 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-8 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.10.3-9 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.11.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.11.0-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.11.0-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.11.0-4 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.12.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.12.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.12.0-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.12.0-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.13.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.13.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.14.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.14.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-4.14.0-2 diff --git a/plugins/python-build/share/python-build/mambaforge-22.9.0-0 b/plugins/python-build/share/python-build/mambaforge-22.9.0-0 new file mode 100644 index 0000000000..e3b1fead3a --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.9.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.9.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-Linux-aarch64.sh#6076cfb0c2f88efa3e5e125dc54f3c0f8219cfe1ae9d9258a5abe42dbcf21a13" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.9.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-Linux-ppc64le.sh#a17530e0e981991db5f6875e949dc22554f2ed0dd2b1bbb40ce677c910a2dc51" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.9.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-Linux-x86_64.sh#7049f5ebdd6e2aee7611874599ab14445cd63070cdb63db2e00ae0b90d7c6132" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.9.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-MacOSX-arm64.sh#d116ea977a2117068d290a961212f10fdaf1cc6ad156ea14b3979e2e4c0499d9" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.9.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Mambaforge-22.9.0-0-MacOSX-x86_64.sh#03b0af9a3d343da8107edaf75713cea3b79c71aacbbeb8f06507d0dbd26c5218" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.9.0-1 b/plugins/python-build/share/python-build/mambaforge-22.9.0-1 new file mode 100644 index 0000000000..9a71c6ecbf --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.9.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.9.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-Linux-aarch64.sh#2f60c1faadcf0660ac9a97e00c64edf8fd241664387a156685de4b72f36c657c" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.9.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-Linux-ppc64le.sh#525cf02648ad50a221c1f1ca5ecc4c05be6cbe829e7d994c17507b439d923e55" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.9.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-Linux-x86_64.sh#cba9a744454039944480871ed30d89e4e51a944a579b461dd9af60ea96560886" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.9.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-MacOSX-arm64.sh#90c9c6eccdef8d938c4f31d44f2553c706b89955a4750adbd09d7eeefbedc603" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.9.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Mambaforge-22.9.0-1-MacOSX-x86_64.sh#0afa53d38735762ee2a43174ee4ce726f076a1526f24122bd2faf7d0e005b61b" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.9.0-3 b/plugins/python-build/share/python-build/mambaforge-22.9.0-3 new file mode 100644 index 0000000000..0ee165c045 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.9.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.9.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-Linux-aarch64.sh#bd9694b1558f4ee6c4eef081cefc57dbb32ceb6406e497018f0c7d2dab5b61dd" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.9.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-Linux-ppc64le.sh#f19dc098452ddbd73caa83792aaacd63674be20898ac63b38ad687e5148199f8" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.9.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-Linux-x86_64.sh#29f6374464307732c2c9d6711cdbca4d685c632f31e8bf1a5565276c65e0069b" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.9.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-MacOSX-arm64.sh#eebe06970fec4cb1445bba106e65f57084b753d39766bf213edf4e02b14e27c1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.9.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Mambaforge-22.9.0-3-MacOSX-x86_64.sh#a3ccaf7b93b6f99bc2018f2a6f3cd95489940731f11fb9bf6adf1a44a7ba4e17" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.2-0 b/plugins/python-build/share/python-build/mambaforge-4.10.2-0 new file mode 100644 index 0000000000..3ea63c0b27 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-Linux-aarch64.sh#cbc5329fa22f4d7ff10f66e59024b186d37653b9da31d841d23092a701f46b1f" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-Linux-ppc64le.sh#c682e2e1f07e2da07cbe6252559af363bb0b67aa315527887fe2dd5123ca8760" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-Linux-x86_64.sh#1e89ee86afa06e23b2478579be16a33fff6cff346314f6a6382fd20b1f83e669" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-MacOSX-arm64.sh#87768fed0097edf58a129981129142db2651ab5d1591e19c5840ade186b443c5" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Mambaforge-4.10.2-0-MacOSX-x86_64.sh#5a396db66672b5e6557e692bcb3cb527bcbe7c24b9c4a1c67b4449f8ef67cd47" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-0 b/plugins/python-build/share/python-build/mambaforge-4.10.3-0 new file mode 100644 index 0000000000..11b254625f --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-Linux-aarch64.sh#d6d4fdf1d722c4afe9fdf5e372369321d5de9b491fdada22255665b122453fc7" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-Linux-ppc64le.sh#cdda287122007bdc6b96ed62fb17c7c8213e38b3598ad6db03d8301c81d7d594" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-Linux-x86_64.sh#5c3914235c0db8a8925d294a17d196fca7e6eab9175406fc78ed90fde34297db" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-MacOSX-arm64.sh#17a38bf23ef3f2864eb3c1ebf1c07389635ad9ff65f0692f438c1f6286feef63" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Mambaforge-4.10.3-0-MacOSX-x86_64.sh#43986b8c2a6b3535c2fa920c8001187c89695c0aaaa96c25696adb7746e0eb54" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-1 b/plugins/python-build/share/python-build/mambaforge-4.10.3-1 new file mode 100644 index 0000000000..64eadc8d33 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-Linux-aarch64.sh#e830d626bcf8fccde1e64567fa9974d87fa45026c3baa73c889bab9a7fa60647" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-Linux-ppc64le.sh#ade3331e4946dc149c97346941c635ddef1b99d63ec0781027a0ae0d156f62d7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-Linux-x86_64.sh#72c623cc9ce300c5ad54e0b383e428b13e5c640e74529295ab61fbbfa1a8acaa" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-MacOSX-arm64.sh#5d1e6ae4eb424290271fe25e7f8c3e8165ba5730a4817f92a157566f44c7e363" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Mambaforge-4.10.3-1-MacOSX-x86_64.sh#a8b0e666c893eb21769c00ab4ba603d28590f4c92d1fafe6ca2eb959cecf76ce" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-2 b/plugins/python-build/share/python-build/mambaforge-4.10.3-2 new file mode 100644 index 0000000000..5e870ee23e --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-Linux-aarch64.sh#63294acfe2859c4a7b86151836da3253fd0370e9e0cd821be6ffb18a029c3a7a" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-Linux-ppc64le.sh#8162d50d3111a4c0746c7a4e51094eea3011966816768c4d3638fe40050d6e59" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-Linux-x86_64.sh#e4228930af7102de20019efdf45e4e9c056b6ae354cb2e344249e53a11f71175" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-MacOSX-arm64.sh#49132e1e2593b4ab3762ff238e76dfc5f5bd670fe23c622c5051607709f93a0b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Mambaforge-4.10.3-2-MacOSX-x86_64.sh#cbd143702ed1d1176fa3b480eca1ec6eb0e32a2c9eab7134877ff32dabae91e0" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-3 b/plugins/python-build/share/python-build/mambaforge-4.10.3-3 new file mode 100644 index 0000000000..ee8a49535d --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-Linux-aarch64.sh#c53eda563935e7ed5d07816477758374f4c541d912ee5732f2f9ace37d9fab75" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-Linux-ppc64le.sh#3b762a3cf77fffebc56d3ecdefe590bf065139b36f556bb57f7f83a0ebe8561b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-Linux-x86_64.sh#a012c24e1cc3bcbe74a1e5693e510830e7c2956e85877b08d1e28707a0bd8d75" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-MacOSX-arm64.sh#6cbae54d7a2d99cdcf747d74412a0c6490c8240cbb2d870655f61a9600bc2f06" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Mambaforge-4.10.3-3-MacOSX-x86_64.sh#69f626a18eb1a6fda52d9f005114604acff1fd2d7c10d46e56543dca7d78f30d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-4 b/plugins/python-build/share/python-build/mambaforge-4.10.3-4 new file mode 100644 index 0000000000..faffe229cb --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-Linux-aarch64.sh#f37435d5e2bc3eb14ec7f5bc64f9c45997f8e0a6d2fef3a7bb1ffa19f118817b" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-Linux-ppc64le.sh#68319a11298b8c13a15960cd9d2a5777fd34420b73587a7f2e8e4757752f3252" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-Linux-x86_64.sh#5017562c434185b4d9d311274c14717077f6c09a238a4d34a1caf7618d26ddd4" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-MacOSX-arm64.sh#901f2c2b4be08cadf6968f408d4a1ee632ddb011a07ce4b480b83d8da142255f" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Mambaforge-4.10.3-4-MacOSX-x86_64.sh#b5fd40995aebd7631f761324eb425ee813fb4604ce8d8fde3c03cb60cac1716e" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-5 b/plugins/python-build/share/python-build/mambaforge-4.10.3-5 new file mode 100644 index 0000000000..d3eab69f14 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-5 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-5-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-Linux-aarch64.sh#5e471d796d7b1749949c0c0d79841e00f1b477833ce82b4b05b7b9886a1735eb" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-5-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-Linux-ppc64le.sh#892ccb32b847978062c8045e96827a403d59fe64f318e0b92303be6a08e4d3f7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-5-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-Linux-x86_64.sh#2692f9ae27327412cbf018ec0218d21a99b013d0597ccaefc988540c8a9ced65" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-5-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-MacOSX-arm64.sh#1c7517e204814f7227ef0d2e0fbf95b43f6afae978e882cd017779e31f8b26cb" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-5-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Mambaforge-4.10.3-5-MacOSX-x86_64.sh#547823784a2b79641f29d06f70f74ae25775eec1680c6cca14888c4907441f5c" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-6 b/plugins/python-build/share/python-build/mambaforge-4.10.3-6 new file mode 100644 index 0000000000..5bdc79d648 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-6 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-6-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-Linux-aarch64.sh#b6d3c0af4ba6202dc9994e70933d2de47ef8c4e6891afce768889a7d44e1db28" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-6-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-Linux-ppc64le.sh#9d50677aeff37b56b0d6067339aad8c964942e28fc74a24a7602416a3dcc35b2" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-6-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-Linux-x86_64.sh#c63907ba0971d2ca9a8775bd7ea48b635b2bdce4838b2f2d3a8e751876849595" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-6-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-MacOSX-arm64.sh#c753e99380e3f777d690e7131fc79c6f9cb8fb79af23fb53c7b8a0ade3361fec" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-6-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Mambaforge-4.10.3-6-MacOSX-x86_64.sh#955a6255871d9b53975e1c1581910844bcf33cbca613c7dba2842f6269917da6" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-7 b/plugins/python-build/share/python-build/mambaforge-4.10.3-7 new file mode 100644 index 0000000000..0b03ab8ad2 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-7 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-7-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-Linux-aarch64.sh#ac95f137b287b3408e4f67f07a284357b1119ee157373b788b34e770ef2392b2" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-7-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-Linux-ppc64le.sh#21c0190d2462eea68c78a600ce28828238d6a450858a289d7d4c03d9a2551ee8" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-7-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-Linux-x86_64.sh#fc872522ec427fcab10167a93e802efaf251024b58cc27b084b915a9a73c4474" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-7-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-MacOSX-arm64.sh#49c7ba06fe663c634929d5d85b4c06840f4ab9844744be691aab90848c52444e" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-7-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Mambaforge-4.10.3-7-MacOSX-x86_64.sh#94ed8b8a647f48a815590958217aabebd4a3e3e10edaf2c5772d50a75727773a" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-8 b/plugins/python-build/share/python-build/mambaforge-4.10.3-8 new file mode 100644 index 0000000000..c8d222ffbb --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-8 @@ -0,0 +1,16 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-8-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-8/Mambaforge-4.10.3-8-MacOSX-arm64.sh#f40271609a59bad71e7b1c6fa61a36065ea35222a9497614bc970572594e1f5a" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-8-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-8/Mambaforge-4.10.3-8-MacOSX-x86_64.sh#4f3dfd9475ed226f6a4478fe5c0585117528700557fe06fb9db054a354f07951" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.10.3-9 b/plugins/python-build/share/python-build/mambaforge-4.10.3-9 new file mode 100644 index 0000000000..bd6e404d37 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.10.3-9 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.10.3-9-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-Linux-aarch64.sh#91fcdf2dfca49d68daaa9927d38f77a82718b5b72333180f9855e5b2cfa07c3b" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.10.3-9-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-Linux-ppc64le.sh#4873079e88bcda0225af7c6acf59b48b272bb147ab9506e1b80cdab035a53b02" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.10.3-9-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-Linux-x86_64.sh#f53ab6584385a4648608993de2a66bb84b9255c87e1f4315bb39cbfc05b19e87" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.10.3-9-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-MacOSX-arm64.sh#968fe531ee2d9900409853085e6b458077144c1674061a5501938e3581b5adf4" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.10.3-9-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Mambaforge-4.10.3-9-MacOSX-x86_64.sh#d669b345a7612552a9a218e3499b7a3a7c8deec2925d203155bd0922250b2823" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.11.0-0 b/plugins/python-build/share/python-build/mambaforge-4.11.0-0 new file mode 100644 index 0000000000..04c8b5ab86 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.11.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-aarch64.sh#9ad5db1775ed7f6a390774a7b7a2aeac3992499ee4b01e801f53528857112dc0" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-ppc64le.sh#6fe80e207d409eb6c0922e068aa23aff5032083d9a5c2aacecc446a1d20f357b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-Linux-x86_64.sh#49268ee30d4418be4de852dda3aa4387f8c95b55a76f43fb1af68dcbf8b205c3" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-MacOSX-arm64.sh#7703e27a2ceadb747a69f2c6a88b3cb859cb4bb4268fc85b03739e22d0eb160b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Mambaforge-4.11.0-0-MacOSX-x86_64.sh#2039f744e272d47878f0bc2ae372f03c7f07881f39a93d693d5445744f36f19d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.11.0-1 b/plugins/python-build/share/python-build/mambaforge-4.11.0-1 new file mode 100644 index 0000000000..1da0cf7f22 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.11.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-Linux-aarch64.sh#8b2cd64b89c7e92a444dd2df993a4c0aeda20b1d090aeef8956bbb3fa5c526fe" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.11.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-Linux-ppc64le.sh#c7fb2000b4447a410fd18d334a9b658f8682b19962fe0e22d1d003078dc89dfe" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.11.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-Linux-x86_64.sh#32eb24c99062d5c97d1b8ab55cae19e37cca08464a3249e5eac65339927697e9" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.11.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-MacOSX-arm64.sh#ce002867552011148b77e1df022465c584d25d0aec02fc15fdc96b68a0da1545" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.11.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Mambaforge-4.11.0-1-MacOSX-x86_64.sh#11b0e24649ca1931cfcc92ff2b3a67d43e7f2485a1f57b7f512b5b7cd6f3f27c" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.11.0-2 b/plugins/python-build/share/python-build/mambaforge-4.11.0-2 new file mode 100644 index 0000000000..57e7fec79d --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.11.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.11.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-Linux-aarch64.sh#dc24d61b3c57fde5bb05367a9514bcdf7acd820f97ef913e94781c78dff55f8d" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.11.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-Linux-ppc64le.sh#8936568238c0ab4ae6444390cbe22853f8852080b5bc85912e1d41c8d3bbaea7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.11.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-Linux-x86_64.sh#5708db10e2e84035f9ed5700731435bf4027c73b0d5d41562cb5cf5dd9048925" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.11.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-MacOSX-arm64.sh#8265d0902b6c3914a64afa7899c6398b1db7005603ad5d190dc0f0c87e8a8446" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.11.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Mambaforge-4.11.0-2-MacOSX-x86_64.sh#e6312bcd55bac1036ce0d3c52a36bf57d3f65d3ec4f36f6267617dbb7edfe16d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.11.0-3 b/plugins/python-build/share/python-build/mambaforge-4.11.0-3 new file mode 100644 index 0000000000..9106a7165c --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.11.0-3 @@ -0,0 +1,16 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"MacOSX-arm64" ) + install_script "Mambaforge-4.11.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-3/Mambaforge-4.11.0-3-MacOSX-arm64.sh#7f16bf19722987cba7b077a010276262d8c3b521cb5c759f0b981e0fb0877d50" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.11.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-3/Mambaforge-4.11.0-3-MacOSX-x86_64.sh#e0e60c1542d087b514c3a81a1d4df9f0cc1d127b5245f1685bf77b2562ad6314" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.11.0-4 b/plugins/python-build/share/python-build/mambaforge-4.11.0-4 new file mode 100644 index 0000000000..173b35ef8b --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.11.0-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.11.0-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-aarch64.sh#e2105e962f19a764c33d986f6e6850a3ce9aef9efc9571c7293b5274c335231d" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.11.0-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-ppc64le.sh#d50a94a0fd367242db4bf5121ba4fd9356e171c79444d2226081275baa31e63a" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.11.0-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-Linux-x86_64.sh#3f3a9177c3ce022a5f7f8798aab360af004c6c1e4963d0e91fc005e54bc1e271" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.11.0-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-MacOSX-arm64.sh#d0a86d865d3881f26bc0e677a83b7fdff700536e654cd8490c8fdc1731f93f6c" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.11.0-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Mambaforge-4.11.0-4-MacOSX-x86_64.sh#9b385902da43fba025ba8a02e628057217fe75cace15af26add5748ab443abbb" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.12.0-0 b/plugins/python-build/share/python-build/mambaforge-4.12.0-0 new file mode 100644 index 0000000000..b0ff8249e7 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.12.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.12.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-Linux-aarch64.sh#44e0a9f7c32e855e82a24af4df9a65ecf35a12b6eede8822b24dcf2308289d40" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.12.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-Linux-ppc64le.sh#44de866d661a441f5e32605ce4708b3323f80348ccb5e0568e52a25a3de0d81e" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.12.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-Linux-x86_64.sh#6c6fd04d688ceb7e6b540bba059dd3a541d60602e9adece3abaf754d15c83484" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.12.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-MacOSX-arm64.sh#59d847b17148ebd27a4b31775d0047302cf9f8f8dae7db1e75bf037f0a823d48" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.12.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Mambaforge-4.12.0-0-MacOSX-x86_64.sh#2301f866fb239ce6cda3e741e00be22ff7aa5ff76ba5683509ebae58df917546" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.12.0-1 b/plugins/python-build/share/python-build/mambaforge-4.12.0-1 new file mode 100644 index 0000000000..41c61a7752 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.12.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.12.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-Linux-aarch64.sh#c6ee5819f700926485197c864ed1190e8ca9d436cf15b100ed8a35540f1c46ea" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.12.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-Linux-ppc64le.sh#87dc485c6c82592102b8704e0e59cf9ce2fef762c369011a3e132fa72549d730" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.12.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-Linux-x86_64.sh#10f7194e7356e46e41ddf6add800a2f175a801211ed62869ad8c0c301d493c34" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.12.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-MacOSX-arm64.sh#234504f4db1d04966218f0c1ad73418a15e7e9bdf714d166bc5e86b917291cc2" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.12.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Mambaforge-4.12.0-1-MacOSX-x86_64.sh#e68c3b8f94db17aae3b33f2bacb950c613c06b170507002d72231ff320b9ad7c" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.12.0-2 b/plugins/python-build/share/python-build/mambaforge-4.12.0-2 new file mode 100644 index 0000000000..d24691c563 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.12.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.12.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-Linux-aarch64.sh#6b67bdd1552dfd6a2257c4c3da0ead19a4d34f68c16fb3e5b4bbc728b60cd200" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.12.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-Linux-ppc64le.sh#f8700febc99cbda9cbe9ff52364477ed6a04efdf15a0aa499d8ea8be4a58998c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.12.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-Linux-x86_64.sh#8cb16ef82fe18d466850abb873c7966090b0fbdcf1e80842038e0b4e6d8f0b66" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.12.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-MacOSX-arm64.sh#2e2be9d976da31b62ab314881d3c6ed3f65c76e3ea69cc4b59fb344780109026" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.12.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Mambaforge-4.12.0-2-MacOSX-x86_64.sh#562c2bcbabff10387f130acea72b960454fa3d90b593126e4e4febcf6da763d3" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.12.0-3 b/plugins/python-build/share/python-build/mambaforge-4.12.0-3 new file mode 100644 index 0000000000..d6a2d30df1 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.12.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.12.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-Linux-aarch64.sh#379796ce7d0f6515093bdde06f45df1bd7261c4104f13f53a5cd30f9acba44d9" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.12.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-Linux-ppc64le.sh#ae6fb19467c147c77cf31b044aaae155109bc0e952965d98990fa8d2b2e7bfdd" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.12.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-Linux-x86_64.sh#93d481e4f12dce9f2ffe46904dc8cf88485c7b27fc4d18dd8e900e2c3ab83f80" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.12.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-MacOSX-arm64.sh#6c3b82eb0edce21b58d0bcafc9afbbc498e140a8229b70275afcdf9e17db47d1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.12.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Mambaforge-4.12.0-3-MacOSX-x86_64.sh#17ecce907a048240970cc9a546369aed07bcd21f30116ad43249360dce69edcd" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.13.0-1 b/plugins/python-build/share/python-build/mambaforge-4.13.0-1 new file mode 100644 index 0000000000..a542423b6b --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.13.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.13.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-Linux-aarch64.sh#69e3c90092f61916da7add745474e15317ed0dc6d48bfe4e4c90f359ba141d23" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.13.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-Linux-ppc64le.sh#ff41608c73da7deb01f741682e9b6c92435f4b2aff2aecde353093d3125126cf" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.13.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-Linux-x86_64.sh#412b79330e90e49cf7e39a7b6f4752970fcdb8eb54b1a45cc91afe6777e8518c" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.13.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-MacOSX-arm64.sh#6263560d2b0902942841667721dad3621c05f704f6b080d968ad355aeca51486" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.13.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Mambaforge-4.13.0-1-MacOSX-x86_64.sh#bc42d606b67ace370847deb849e7d1ea2879b0be78bb1be51b020c3cb4e5bef2" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.14.0-0 b/plugins/python-build/share/python-build/mambaforge-4.14.0-0 new file mode 100644 index 0000000000..8f950be121 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.14.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.14.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-aarch64.sh#37221b8d818951fab125c0bfb6cc6e83dac059f66892d2544a83192828d8e2c4" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.14.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-ppc64le.sh#607bbd38aa21af4c79a663f2a183a06cca054efdd8d617c17370522504c7be1e" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.14.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-x86_64.sh#d47b78b593e3cf5513bafbfa6a51eafcd9f0e164c41c79c790061bb583c82859" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.14.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-MacOSX-arm64.sh#35d05a65e19b8e5d596964936ddd6023ae66d664a25ba291a52fec18f06a73b6" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.14.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-MacOSX-x86_64.sh#949f046b4404cc8e081807b048050e6642d8db5520c20d5158a7ef721fbf76c5" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.14.0-1 b/plugins/python-build/share/python-build/mambaforge-4.14.0-1 new file mode 100644 index 0000000000..a7626de037 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.14.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.14.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Mambaforge-4.14.0-1-Linux-aarch64.sh#f721dc44d5aba7a24c6f76408979d125e7ed7f1ba56397ff073a9cfd1611f71c" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.14.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Mambaforge-4.14.0-1-Linux-ppc64le.sh#da6cbf1abe89fae4e1246aa64e86e8e155e7938c462f968265266af61fda64cc" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.14.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Mambaforge-4.14.0-1-Linux-x86_64.sh#d9c8337bda234cf53d2743f32efaab41cbc9d942b8fb52b8588996ef0300c82f" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.14.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Mambaforge-4.14.0-1-MacOSX-arm64.sh#48aca11999c866058c8201cbd01361cd1bf35044e36655874238cd57c06b389d" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.14.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Mambaforge-4.14.0-1-MacOSX-x86_64.sh#e0f2c280e5cd4b4211151a9d8e40c3f86b1b53fdb4b4fbb907603409581e696f" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-4.14.0-2 b/plugins/python-build/share/python-build/mambaforge-4.14.0-2 new file mode 100644 index 0000000000..ea738f8227 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-4.14.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-4.14.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Mambaforge-4.14.0-2-Linux-aarch64.sh#af6b683bb6bf3170a29b1fe37c1356d4b7fd94f9c38019d33d3d1933a5a5f41a" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-4.14.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Mambaforge-4.14.0-2-Linux-ppc64le.sh#ab2cfff59870fbd946d26ed55fc47def32de25879b994eac6c464d079ed39c68" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-4.14.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Mambaforge-4.14.0-2-Linux-x86_64.sh#ac3cabd483712a216f1dddeb92a7f8e198a771390c6627aa94791ab6abc7fae8" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-4.14.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Mambaforge-4.14.0-2-MacOSX-arm64.sh#28b45f0949cb734347656e27acb6feb6da6ff12f93cb8c7546d7195e1ae1beba" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-4.14.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Mambaforge-4.14.0-2-MacOSX-x86_64.sh#efd4ea95da961c8005a28ecb8bde719d0fd408ccac92dafaaa37eab133ff7a52" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.9.0-0 b/plugins/python-build/share/python-build/miniforge3-22.9.0-0 new file mode 100644 index 0000000000..71878c4c1f --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.9.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.9.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Miniforge3-22.9.0-0-Linux-aarch64.sh#e3d8d8a2ca641a70f3aee492fff22f67ced642bded34a260827a1fa82437a999" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.9.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Miniforge3-22.9.0-0-Linux-ppc64le.sh#7db5858e7de6d730b92c3a6d1138f21ada88396876fa9fec65115d15e2f922e2" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.9.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Miniforge3-22.9.0-0-Linux-x86_64.sh#24b704203a4cdabd99362f52a9836c55219579814eb904188675e077b488be38" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.9.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Miniforge3-22.9.0-0-MacOSX-arm64.sh#e9eb55f8409e5f227c5ecc5f5d0024e4d81148454a763b95b612447a1585cc2c" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.9.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-0/Miniforge3-22.9.0-0-MacOSX-x86_64.sh#c6e4fc3e9dca2375e91a3bc2f27c01634bb1841ab4d284a3a83b4181ae79b16d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.9.0-1 b/plugins/python-build/share/python-build/miniforge3-22.9.0-1 new file mode 100644 index 0000000000..604b206589 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.9.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.9.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Miniforge3-22.9.0-1-Linux-aarch64.sh#786777d47b27f490701ecb42c61b245bd945c34bc9ce8d7e90f4b87f430297a1" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.9.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Miniforge3-22.9.0-1-Linux-ppc64le.sh#f51ea2fe47b2481a42e67747573690e13cac796c6f18ba1af1d198850c35c23a" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.9.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Miniforge3-22.9.0-1-Linux-x86_64.sh#47f4b8ef9c5e2ba28eb3c17d27c4d0709f59ea3ab78d7d87c2d34e0c7ad439d5" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.9.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Miniforge3-22.9.0-1-MacOSX-arm64.sh#8631692804809f14ac9da0c2d277bcede715854da6b1a3fa81822ba961dc546b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.9.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-1/Miniforge3-22.9.0-1-MacOSX-x86_64.sh#0b56334b4ed62076fbf6973fd3ced9d41190b73ab27432c8db224ca42e614207" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.9.0-3 b/plugins/python-build/share/python-build/miniforge3-22.9.0-3 new file mode 100644 index 0000000000..289238b3b4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.9.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.9.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Miniforge3-22.9.0-3-Linux-aarch64.sh#3862fd31ed24d9254cecd8b080dc741b556a6e371b4615880173a782c7cf3b27" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.9.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Miniforge3-22.9.0-3-Linux-ppc64le.sh#914e0ae86d5ce473379841041e52c7891aa65e46be7892c2258cb439a83dd301" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.9.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Miniforge3-22.9.0-3-Linux-x86_64.sh#0df76d7a8e66c4f96478ff71b90b7a8df04c19474f3d36dd77ace53e75aa47e4" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.9.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Miniforge3-22.9.0-3-MacOSX-arm64.sh#c3065cbfaef72966599fc658a2724f5109b0315f7b9ffc6078fd061b084942f4" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.9.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.9.0-3/Miniforge3-22.9.0-3-MacOSX-x86_64.sh#45a1314dad30baececc43b4ecef839a17e43860a6a9c77e87ab1d4297796fa9d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.2-0 b/plugins/python-build/share/python-build/miniforge3-4.10.2-0 new file mode 100644 index 0000000000..a6337d5094 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Miniforge3-4.10.2-0-Linux-aarch64.sh#eb0a303e716d795b64a4ab056e3c03dae7760c3a3275312419051d272f5d0307" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Miniforge3-4.10.2-0-Linux-ppc64le.sh#1a55c5f9ee8c49ce0368b77acb4964a8b060ca57d951f68adb98b28c3ed5c145" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Miniforge3-4.10.2-0-Linux-x86_64.sh#d2d66f09811c0d846ffb2f04c1827854aa4333624a0dc841389230291d944c30" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Miniforge3-4.10.2-0-MacOSX-arm64.sh#36d4a12254c90bdacd3c2a757c8c257dffe3c67754c44372d446c2a54e03cebc" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.2-0/Miniforge3-4.10.2-0-MacOSX-x86_64.sh#60aaecd1681633e84bad0520479e938a0a0c671fa7d78d2aa607d4807c670975" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-0 b/plugins/python-build/share/python-build/miniforge3-4.10.3-0 new file mode 100644 index 0000000000..ffc6fbdb52 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Miniforge3-4.10.3-0-Linux-aarch64.sh#4aff1bfe62b2974a418937bd4687316acef46e461908332159b2f68cb95f6d67" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Miniforge3-4.10.3-0-Linux-ppc64le.sh#b854e26db0635846ad4065c54de9d8cef7a97050d7e1303923c5ba18ea9b4dd1" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Miniforge3-4.10.3-0-Linux-x86_64.sh#c22bd3f494ac12f3ef2f146d7625ab140272670f7b4d606af8ff50aac3a0dae2" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Miniforge3-4.10.3-0-MacOSX-arm64.sh#14e0ce6a16c7de8372d0d59cdf279b53601f62b14a073d0824c5ee7384005a2f" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-0/Miniforge3-4.10.3-0-MacOSX-x86_64.sh#e405b2a2be60b6b408569e4b7f6e39c87c3b579235e92dd58615fe708f18d036" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-1 b/plugins/python-build/share/python-build/miniforge3-4.10.3-1 new file mode 100644 index 0000000000..b089835445 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Miniforge3-4.10.3-1-Linux-aarch64.sh#ebb7b2548f3908ccc1b3c39bc41e2a3dbe19b4d266e844bc929147c39c8a14d3" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Miniforge3-4.10.3-1-Linux-ppc64le.sh#cf20609570a5a716e7370a836ee895cbc4e7ca2683a598d32cc0573fddd65e66" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Miniforge3-4.10.3-1-Linux-x86_64.sh#303d65289f600fa4c85fe2b0fef9bb0848ec544a75a9c3079607d847918f7023" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Miniforge3-4.10.3-1-MacOSX-arm64.sh#823f61563947fd9ff92970f4e2323f2f0b61fe5f3cfb75cc7579a1c6169f8853" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-1/Miniforge3-4.10.3-1-MacOSX-x86_64.sh#8ed6871bbd0b24f66b2d87fd88cbcd0854142e5cf1447de5f5f246884ef9c846" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-2 b/plugins/python-build/share/python-build/miniforge3-4.10.3-2 new file mode 100644 index 0000000000..ce88b87ba9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Miniforge3-4.10.3-2-Linux-aarch64.sh#11705546b6e6f7052a83992b7505f74e7cb51b5a519ddccbd9eabfad9451bfee" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Miniforge3-4.10.3-2-Linux-ppc64le.sh#da8c5a43f941155aa937bb00068e4ecc5651fe3a9ea0eddd9c40e339eb5fa6d7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Miniforge3-4.10.3-2-Linux-x86_64.sh#8af640a77047b493d37b4e21302387abb6a62e0b3f942416c525e60dde019c7e" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Miniforge3-4.10.3-2-MacOSX-arm64.sh#74fdfc71022af33ef671c9fe08f917f0e5d4ff5e69b1ef1a02b72f12df146d45" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-2/Miniforge3-4.10.3-2-MacOSX-x86_64.sh#ac68224f726bc2dc38502d6aaf605af976d29cc3fbaaca3c948b1fd5271e8235" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-3 b/plugins/python-build/share/python-build/miniforge3-4.10.3-3 new file mode 100644 index 0000000000..0916e73aef --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Miniforge3-4.10.3-3-Linux-aarch64.sh#ca6aa614c217c923bbb6fb48246f356b013697629bcf7d4d3b71c8813910ff94" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Miniforge3-4.10.3-3-Linux-ppc64le.sh#84572443a08a640a0308f3f80a3a98431241eed646c26398144b2c8042524006" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Miniforge3-4.10.3-3-Linux-x86_64.sh#12c83e744bf52564445cae0281bc7870b24c77257ac9c72986cbb1443e9b6d0a" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Miniforge3-4.10.3-3-MacOSX-arm64.sh#5f5906dec9ba56fe4cbf1a50b9a573629f4af8f3f166785d114a8af65b9c78a3" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-3/Miniforge3-4.10.3-3-MacOSX-x86_64.sh#3242d65bae12edf2d7cd29ed466fc72cb66f3f031f621ac360ab8968e4d29974" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-4 b/plugins/python-build/share/python-build/miniforge3-4.10.3-4 new file mode 100644 index 0000000000..95e9305765 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Miniforge3-4.10.3-4-Linux-aarch64.sh#1237209ed8145efc05dcc4e97e367811d569154609fffcc22ebcb08b0e0392d2" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Miniforge3-4.10.3-4-Linux-ppc64le.sh#591825a5b5f690bb74759c0f93c347f0ae1f9b30057609d8205a11b2b7c21902" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Miniforge3-4.10.3-4-Linux-x86_64.sh#13626e6d43546d0b8c47be37b34d2c2ba5e0a518066b0659addb4afcc30a70be" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Miniforge3-4.10.3-4-MacOSX-arm64.sh#0079a2172ff9cc92d6a0f30d4269d7e27ef77f5074525c31fb46db57f9ccaefe" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-4/Miniforge3-4.10.3-4-MacOSX-x86_64.sh#21be593ec3a3d917862bf452a78bf4c9dddb9b360346562b3c19c21efd892d77" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-5 b/plugins/python-build/share/python-build/miniforge3-4.10.3-5 new file mode 100644 index 0000000000..0c5581f28a --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-5 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-5-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Miniforge3-4.10.3-5-Linux-aarch64.sh#acd5f31fd2bdd9ebd996a6d5b36fcc6a8ab5d0b3820cbc47d660afa2cf0bd3ba" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-5-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Miniforge3-4.10.3-5-Linux-ppc64le.sh#e018e8a7c41e1871b456bc27efbc0e3a4093d3e6ba84cb5ea94f6d0601b3e27a" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-5-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Miniforge3-4.10.3-5-Linux-x86_64.sh#5f143112b6c9533c550b447cc01f7313a86b6b88b92632791bcb4320e57f9af6" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-5-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Miniforge3-4.10.3-5-MacOSX-arm64.sh#77989d3186c21ec8de9ff22ef076e815c465c026cef087601b2bec5d02cfd889" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-5-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-5/Miniforge3-4.10.3-5-MacOSX-x86_64.sh#6f324566af60279518c2d03ffd69f605b335f87f72e6e7e4c2f383808e41e212" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-6 b/plugins/python-build/share/python-build/miniforge3-4.10.3-6 new file mode 100644 index 0000000000..b11e8a3581 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-6 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-6-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Miniforge3-4.10.3-6-Linux-aarch64.sh#a79cd78324bb42cde5150d2194744205b9ebae1ebab06c50c3205e4846efb9e0" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-6-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Miniforge3-4.10.3-6-Linux-ppc64le.sh#d3624b1d7a715a6089c309b9a593a5c241a1d959d00b037c074d3080be587b27" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-6-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Miniforge3-4.10.3-6-Linux-x86_64.sh#8e76a21311e4fcc9ee8497b72717b276bb960e0151c5b27816502f14bac6303f" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-6-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Miniforge3-4.10.3-6-MacOSX-arm64.sh#4ba889103eb119e9d12e45b5fba3bcdef45877d9a886657f14f1ebe71a9b5a63" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-6-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-6/Miniforge3-4.10.3-6-MacOSX-x86_64.sh#eabb50e2594d55eeb2a74fa05a919be876ec364e8064e1623ab096f39d6b6dd1" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-7 b/plugins/python-build/share/python-build/miniforge3-4.10.3-7 new file mode 100644 index 0000000000..e48d47590c --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-7 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-7-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Miniforge3-4.10.3-7-Linux-aarch64.sh#d597961defe8c7889f3e924d0dc7624fab2c8845abccdd8ffa8da8018ff3dc6e" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-7-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Miniforge3-4.10.3-7-Linux-ppc64le.sh#8825827240c0d06413876055bf3a04d8704f0e5ac773692a352502862dce7aa5" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-7-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Miniforge3-4.10.3-7-Linux-x86_64.sh#4de9b7dcc9b2761136f4a7a42a8b2ea06ae2ebc61d865c9fca0db3d6c90b569d" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-7-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Miniforge3-4.10.3-7-MacOSX-arm64.sh#3cd1f11743f936ba522709eb7a173930c299ac681671a909b664222329a56290" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-7-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-7/Miniforge3-4.10.3-7-MacOSX-x86_64.sh#a25c1b381b20873ed856ce675a7a2ccf48f1d6782a5cdce9f06496e6ffa7883f" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-8 b/plugins/python-build/share/python-build/miniforge3-4.10.3-8 new file mode 100644 index 0000000000..c488eeea9f --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-8 @@ -0,0 +1,16 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-8-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-8/Miniforge3-4.10.3-8-MacOSX-arm64.sh#ed1f245d8effb463c9bd5d1cde034e7e291684e0668885a87deb34303dafced5" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-8-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-8/Miniforge3-4.10.3-8-MacOSX-x86_64.sh#9c123f45da81878b3b3f221dcb7595f6420cac0310235316a7deba93cf12bbe3" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.10.3-9 b/plugins/python-build/share/python-build/miniforge3-4.10.3-9 new file mode 100644 index 0000000000..119d4b38a5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.10.3-9 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.10.3-9-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Miniforge3-4.10.3-9-Linux-aarch64.sh#33850a3806c61c2f0c27a4619a49a2ab7c27691b65b64ea764b57b3cc572efa1" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.10.3-9-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Miniforge3-4.10.3-9-Linux-ppc64le.sh#7192460dcf7d309ebe0c2e53f0034c86b097de4f1ebf669f677d57886b9b48de" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.10.3-9-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Miniforge3-4.10.3-9-Linux-x86_64.sh#387ed0e31a0e16def1f4b602c8a3633f707c53fff7cbf2ff56175953d0c6f7e7" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.10.3-9-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Miniforge3-4.10.3-9-MacOSX-arm64.sh#68196959ddc966046935ab80fb0fda73675914e55e96764e0358f7eb4a4e7714" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.10.3-9-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.10.3-9/Miniforge3-4.10.3-9-MacOSX-x86_64.sh#86ba79bba787ea943d11810b8f7b393a3ce5d421cd31528436c3ffa17eb062ed" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.11.0-0 b/plugins/python-build/share/python-build/miniforge3-4.11.0-0 new file mode 100644 index 0000000000..52090ad337 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.11.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Miniforge3-4.11.0-0-Linux-aarch64.sh#3c4728ece94f005a0edfcb45f930bf2fd4acdaafdee2692006b0322ca6c44ca7" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Miniforge3-4.11.0-0-Linux-ppc64le.sh#cfaedc8ff54703b91ef0a1f27232ac4f85dad2725d65a19624e63674aca19bd0" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Miniforge3-4.11.0-0-Linux-x86_64.sh#4c24b38969ac413efa3a984290296f72578340d06004f2c7ba5efcbf828ec86b" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Miniforge3-4.11.0-0-MacOSX-arm64.sh#d37c13f42f6d8e1b5786da5c73735eb4584a100c8b3572e5413dffe943a6a38b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-0/Miniforge3-4.11.0-0-MacOSX-x86_64.sh#037da3c64fd8f8179ce99909784cfdaa2326b7ea832e747de8ea9e396c1583e7" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.11.0-1 b/plugins/python-build/share/python-build/miniforge3-4.11.0-1 new file mode 100644 index 0000000000..e1290c2d26 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.11.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Miniforge3-4.11.0-1-Linux-aarch64.sh#5032a44b9a6c11a2ef46c02707c9c21adc276e2acd40305d615a6b923b7acd26" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.11.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Miniforge3-4.11.0-1-Linux-ppc64le.sh#38ea90c2aa8c380a50f8fadf329981b0ad8c05064a928212a234e9101d23a81f" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.11.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Miniforge3-4.11.0-1-Linux-x86_64.sh#83ed76dcc907c9d9fc553a8a33278f06e80a27ac47c0db78e73f2b14f0bfbad1" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.11.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Miniforge3-4.11.0-1-MacOSX-arm64.sh#67f6c7bec83f04d8fe3a8083c6a13084b9dd0bb33e5bb8975a9a6531f7360875" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.11.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-1/Miniforge3-4.11.0-1-MacOSX-x86_64.sh#9795921a6836f0d1e0abc10e4a724dcddaba8fbcf9740b2764c6d64f1378b835" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.11.0-2 b/plugins/python-build/share/python-build/miniforge3-4.11.0-2 new file mode 100644 index 0000000000..9e4ba1c86b --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.11.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.11.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Miniforge3-4.11.0-2-Linux-aarch64.sh#6497f1e696c4f2931acecdc341242f3b2d1acfdb1360c6dd86dbd5a4000a970d" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.11.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Miniforge3-4.11.0-2-Linux-ppc64le.sh#7661deb911b2210d619a60c4f63275680c003ec83898fd80af4025d30e722a44" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.11.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Miniforge3-4.11.0-2-Linux-x86_64.sh#f671f3a225ce5517021f0eb430ffa9110eebad8e0a0549d36c778e7769cb4970" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.11.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Miniforge3-4.11.0-2-MacOSX-arm64.sh#eba035fb0f2f0d7a095713e93fd3848c847e18e8dbbef7173653f57a0518abe8" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.11.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-2/Miniforge3-4.11.0-2-MacOSX-x86_64.sh#379323b33054730c7d06004f9a0cc7eb8283e45ae6d44814bb0b283d5eda2f03" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.11.0-3 b/plugins/python-build/share/python-build/miniforge3-4.11.0-3 new file mode 100644 index 0000000000..3b5ee481a4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.11.0-3 @@ -0,0 +1,16 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"MacOSX-arm64" ) + install_script "Miniforge3-4.11.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-3/Miniforge3-4.11.0-3-MacOSX-arm64.sh#e74e4acfcc2bdf662746172b684855790d018f3b9c1d2630e65b2c4e316f3eb5" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.11.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-3/Miniforge3-4.11.0-3-MacOSX-x86_64.sh#f7a5e379135a7f2454a6cfe7d81fa7f6a082793c60d6c88648b4035ca1c83d24" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.11.0-4 b/plugins/python-build/share/python-build/miniforge3-4.11.0-4 new file mode 100644 index 0000000000..67d2be63ee --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.11.0-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.11.0-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Miniforge3-4.11.0-4-Linux-aarch64.sh#7b88645381840589aeaa8a2a9a3a077a0909541ecfd6752b44eef53af83786b5" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.11.0-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Miniforge3-4.11.0-4-Linux-ppc64le.sh#adfe136cef5dd92bf54ec8e71656714ec485a140b18cfb3319837828d4a5ede0" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.11.0-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Miniforge3-4.11.0-4-Linux-x86_64.sh#b8560aaab6edce86e690cdf096427dde0fa2c4f1bb083b20b642e6b2b4543ed1" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.11.0-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Miniforge3-4.11.0-4-MacOSX-arm64.sh#7b3e3c29f8cc4a6a13e53f20e155f7bd30216e071c6028f699582b23bff06e60" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.11.0-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.11.0-4/Miniforge3-4.11.0-4-MacOSX-x86_64.sh#5f0019f6f671f3a41352b53ee7001dfbc6d7806a62d3691159c60d493ed82ea2" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.12.0-0 b/plugins/python-build/share/python-build/miniforge3-4.12.0-0 new file mode 100644 index 0000000000..8759730a26 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.12.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.12.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Miniforge3-4.12.0-0-Linux-aarch64.sh#09b0ec8cefd3d94327ce12185af8164c8890bff00351b3f64bf280e22e947d21" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.12.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Miniforge3-4.12.0-0-Linux-ppc64le.sh#29e3969b82538c78a13e684f53c0a0cd2eba7b500e7e187e4d6bddacc3eb66e1" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.12.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Miniforge3-4.12.0-0-Linux-x86_64.sh#ccb6c87f42355e2e0b652dd35a980b7c60ca5e53643237f6a070748ef0dd23ff" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.12.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Miniforge3-4.12.0-0-MacOSX-arm64.sh#e52cb92d620c5a408afef9ac8b5d2e964e2c72211c69cc41a2bb4d6af0a26001" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.12.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-0/Miniforge3-4.12.0-0-MacOSX-x86_64.sh#3bfcd52dd1acafc712b6fb042d4b019c6f09ea3ba62710f722f4e9ebcde7f67c" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.12.0-1 b/plugins/python-build/share/python-build/miniforge3-4.12.0-1 new file mode 100644 index 0000000000..69245c23ca --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.12.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.12.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Miniforge3-4.12.0-1-Linux-aarch64.sh#b1fb77baffdc187f1ccf34db781aa849f8c057b31fdb7394788fe6c8ffb99916" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.12.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Miniforge3-4.12.0-1-Linux-ppc64le.sh#3b4bd33274e02ef7a19ffacd0e7eafe9275f08fc188a77f3a75ddf877772bf35" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.12.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Miniforge3-4.12.0-1-Linux-x86_64.sh#fe0c49f6af64668006b87174a7dcddd3ea59fe2d0f05c7db3de057e2fbc8a6e9" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.12.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Miniforge3-4.12.0-1-MacOSX-arm64.sh#622fc4220a90a80ff7f6ae40883d2d37eb09e9168aa74b9516de81c302490527" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.12.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-1/Miniforge3-4.12.0-1-MacOSX-x86_64.sh#4456a11cc99ac9a671b83f3ecf1d670e93dc88c1e5ecd3f038e041e658104b05" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.12.0-2 b/plugins/python-build/share/python-build/miniforge3-4.12.0-2 new file mode 100644 index 0000000000..2e13d22657 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.12.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.12.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Miniforge3-4.12.0-2-Linux-aarch64.sh#507c9763942821d7541b5a1b1130545e4c19416cc0473054faa10fee435aa9fa" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.12.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Miniforge3-4.12.0-2-Linux-ppc64le.sh#447d1729353189ba732e951b598d5b9ea4ab46296db4523ac34a775150a60199" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.12.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Miniforge3-4.12.0-2-Linux-x86_64.sh#e8bd60572d1bdcd9fc16114f423653c95e02f0be1393383f77fba17cf8acb10e" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.12.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Miniforge3-4.12.0-2-MacOSX-arm64.sh#24181b1a42c6bb9704e28ac4ecb234f3c86d882a7db408948692bc5792a2f713" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.12.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-2/Miniforge3-4.12.0-2-MacOSX-x86_64.sh#37007407ab504fb8bd3af68ff821c0819ad2f016087b9c45f1e95a910c92531e" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.12.0-3 b/plugins/python-build/share/python-build/miniforge3-4.12.0-3 new file mode 100644 index 0000000000..8815c13a3b --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.12.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.12.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Miniforge3-4.12.0-3-Linux-aarch64.sh#8ddc79ffaa40dfc7e3d93c8c02e268c6d3958c4ef662bc2194c36aa7d50820a3" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.12.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Miniforge3-4.12.0-3-Linux-ppc64le.sh#2892b96723bb8aec33275ce033c209cd0ee53a9208afce7138c79438bd533fbb" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.12.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Miniforge3-4.12.0-3-Linux-x86_64.sh#680f8549374474bad903ebb2985a2c264f592fecae1544700bcc4e0d41e1ba17" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.12.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Miniforge3-4.12.0-3-MacOSX-arm64.sh#9088b27744512960b4834d318204f2bdbaeb44c13dd21b4740de357cea270d44" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.12.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.12.0-3/Miniforge3-4.12.0-3-MacOSX-x86_64.sh#76b6cf644e74c2c2df9ff7a315259a1cf82170bcb9fea0038069616fe25d1d14" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.13.0-0 b/plugins/python-build/share/python-build/miniforge3-4.13.0-0 new file mode 100644 index 0000000000..f951835c9e --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.13.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.13.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-0/Miniforge3-4.13.0-0-Linux-aarch64.sh#930ea585fa30047ada7bc892aa96bb4b521f082469b0594e3fbbbb6ac17dcda5" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.13.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-0/Miniforge3-4.13.0-0-Linux-ppc64le.sh#ce3c506f2dc939b368e91521355a68653aa40541371ffe12aa0cbe43e264f26c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.13.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-0/Miniforge3-4.13.0-0-Linux-x86_64.sh#e810f2e2a36bec232ed8f00e68be1b75590b51b4e3f3de39aab3212e596bf7a8" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.13.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-0/Miniforge3-4.13.0-0-MacOSX-arm64.sh#b00587bfd44d259d28d376497d0fc68bd150eb74b4a96771220917699bd26340" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.13.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-0/Miniforge3-4.13.0-0-MacOSX-x86_64.sh#f29457257d01f06569f342723d58d4c6b526c9404dbb579ab72548d933b5b547" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.13.0-1 b/plugins/python-build/share/python-build/miniforge3-4.13.0-1 new file mode 100644 index 0000000000..de2776d618 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.13.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.13.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Miniforge3-4.13.0-1-Linux-aarch64.sh#e0d671d18ef578700dce1796f1a8796a74c8e5e4e5d6ee9f33cf6a1159f570c8" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.13.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Miniforge3-4.13.0-1-Linux-ppc64le.sh#2981ba22334a73f3bd8c0bcb9ad2510c411ab454280f460ca461977e5c0c43a6" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.13.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Miniforge3-4.13.0-1-Linux-x86_64.sh#6e0a33060c525909fa0e8ae74cb511480e8191cef88e3c297619f31574804184" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.13.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Miniforge3-4.13.0-1-MacOSX-arm64.sh#57bef67a4c80bfef04223eb76ee1b49b1bdfd5eeb46ebcf49e65d6c308c84a98" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.13.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.13.0-1/Miniforge3-4.13.0-1-MacOSX-x86_64.sh#9996677f0ca0bfa6399e9a5688556bfaff544389ea123e2ac6e6252d3a1d0658" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.14.0-0 b/plugins/python-build/share/python-build/miniforge3-4.14.0-0 new file mode 100644 index 0000000000..1bdb1a24c6 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.14.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.14.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Miniforge3-4.14.0-0-Linux-aarch64.sh#8e2de8657e0ff7315daf22df1874d5a57ff8295bc9489d43d61f2d9fac49e42b" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.14.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Miniforge3-4.14.0-0-Linux-ppc64le.sh#a1614873842aec1703ea4509554998663d5a774976c30bf89c76410a5f82aaa0" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.14.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Miniforge3-4.14.0-0-Linux-x86_64.sh#643dd45d9a9dd362508e8edd8cd535a87b002bd7716b12fb956247c8c7494908" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.14.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Miniforge3-4.14.0-0-MacOSX-arm64.sh#91b7cadb5986af1c38555cfb4214dcb353212492a89d5e7f4c32204829ed1829" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.14.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Miniforge3-4.14.0-0-MacOSX-x86_64.sh#80ee5ce53a1f4edb21677dd6794a043ad7d1db6e3d5ffe7a994937923a50a2c9" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.14.0-1 b/plugins/python-build/share/python-build/miniforge3-4.14.0-1 new file mode 100644 index 0000000000..c3353d1b1b --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.14.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.14.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Miniforge3-4.14.0-1-Linux-aarch64.sh#79bb1694aee2cd4bc7ee412f267f6b06ccd011cd7be6686970599bff9ab5ae0b" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.14.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Miniforge3-4.14.0-1-Linux-ppc64le.sh#d82789f644759b21cbfcfb3de96b6a9879c38d6c3aa90394ee8b0916e0c5c45b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.14.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Miniforge3-4.14.0-1-Linux-x86_64.sh#8a83e4a7440157d57631b9cb4958591b41547263a30f02046767271695a242ad" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.14.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Miniforge3-4.14.0-1-MacOSX-arm64.sh#d2dc25e5c73e420ae22a30abfebd24b51cb1d66d369594085ee42ba0e3e3d4d9" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.14.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-1/Miniforge3-4.14.0-1-MacOSX-x86_64.sh#4b956674c1c5f312bfc04f8f4d1a47bfe5cc7b9ca6a011cdd044c7152a8309d7" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-4.14.0-2 b/plugins/python-build/share/python-build/miniforge3-4.14.0-2 new file mode 100644 index 0000000000..d702e4aef1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-4.14.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-4.14.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Miniforge3-4.14.0-2-Linux-aarch64.sh#52e44682aecbfb1c41e9f07b0f2f08ab22369e236893768be3c85ad6c039090f" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-4.14.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Miniforge3-4.14.0-2-Linux-ppc64le.sh#60d37536a07fbf9278308a8601fa125b5d643fb36e6b8e12faad45455aae3119" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-4.14.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Miniforge3-4.14.0-2-Linux-x86_64.sh#ff0b9f78a51a4d9851e8fd3cdb6ff0b233f4f49d82c0690a12560e57075690bd" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-4.14.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Miniforge3-4.14.0-2-MacOSX-arm64.sh#5089a254923acb6221cf7c3c5138cf68664684e18d4223e53482948c21975d7e" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-4.14.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/4.14.0-2/Miniforge3-4.14.0-2-MacOSX-x86_64.sh#ac3c2a283f6ebf24d6072d39f9bf9297c64a752315353f666260f72b02daf6d1" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 2a5bbf6cb58383b5dd79b8cd82e080800fc905e6 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 13 Jan 2023 15:46:38 +0300 Subject: [PATCH 0569/1324] Fix searching readline and sqlite3 in FreeBSD Surprisingly, CPython doesn't search these with pkg-config This is fixed upstream in 3.12.0a1 --- plugins/python-build/bin/python-build | 15 ++++++++--- plugins/python-build/test/build.bats | 37 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c5815da454..e2913daccc 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1422,9 +1422,18 @@ use_freebsd_pkg() { # check if 11-R or later release="$(uname -r)" if [ "${release%%.*}" -ge 11 ]; then - if pkg info -e readline > /dev/null && ! command -v pkg-config > /dev/null ; then - # use readline from Ports Collection - # unlike Linux, BSD's cc does not look in /usr/local by default + # Use packages from Ports Collection. + # + # Unlike Linux, BSD's cc does not look in /usr/local by default + # where Ports-installed packages are, but they are available via pkg-config. + # Surprisingly, CPython's Configure only uses pkg-config + # to locate some of the dependencies and not others. + # Here we detect those that are (as of this writing) known + # to not be searched via pkg-config. + # + # XXX: As a side effect, this would pick up any other libs from Ports + # that are searched via compiler + if pkg info -e readline || pkg info -e sqlite3; then export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I/usr/local/include" export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L/usr/local/lib -Wl,-rpath,/usr/local/lib" fi diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index f9c9a0a905..41bbaa3310 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -259,6 +259,42 @@ make install OUT } +@test "readline and sqlite3 are linked from Ports in FreeBSD" { + cached_tarball "Python-3.6.2" + + for lib in readline sqlite3; do + + for i in {1..8}; do stub uname '-s : echo FreeBSD'; done + stub uname '-r : echo 11.0-RELEASE' + for i in {1..2}; do stub uname '-s : echo FreeBSD'; done + stub sysctl '-n hw.ncpu : echo 1' + + stub pkg "$([[ $lib == readline ]] && echo "info -e $lib : true" || echo false)" + if [[ $lib == sqlite3 ]]; then stub pkg echo "info -e $lib : true"; fi + + stub_make_install + + export -n MAKE_OPTS + run_inline_definition < Date: Fri, 13 Jan 2023 20:58:51 +0300 Subject: [PATCH 0570/1324] Avoid adding dangling spaces to *FLAGS --- plugins/python-build/bin/python-build | 42 ++++++++++---------- plugins/python-build/test/build.bats | 50 ++++++++++++------------ plugins/python-build/test/pyenv_ext.bats | 8 ++-- 3 files changed, 50 insertions(+), 50 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index e2913daccc..af1bbf947f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1385,8 +1385,8 @@ use_homebrew() { local brew_prefix="$(brew --prefix 2>/dev/null || true)" # /usr/local/lib:/usr/lib is the default library search path if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then - export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I${brew_prefix}/include" - export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" + export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${brew_prefix}/include" + export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" # `python-config` ignores LDFLAGS envvar. Adding to LIBS is the only way to add extra stuff # to `python-config --ldflags` output export LIBS="${LIBS:+${LIBS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" @@ -1404,8 +1404,8 @@ use_homebrew_yaml() { local libdir="$(brew --prefix libyaml 2>/dev/null || true)" if [ -d "$libdir" ]; then echo "python-build: use libyaml from homebrew" - export CPPFLAGS="-I$libdir/include ${CPPFLAGS}" - export LDFLAGS="-L$libdir/lib ${LDFLAGS}" + export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$libdir/lib${LDFLAGS:+ ${LDFLAGS% }}" else return 1 fi @@ -1434,8 +1434,8 @@ use_freebsd_pkg() { # XXX: As a side effect, this would pick up any other libs from Ports # that are searched via compiler if pkg info -e readline || pkg info -e sqlite3; then - export CPPFLAGS="${CPPFLAGS:+${CPPFLAGS% } }-I/usr/local/include" - export LDFLAGS="${LDFLAGS:+${LDFLAGS% } }-L/usr/local/lib -Wl,-rpath,/usr/local/lib" + export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I/usr/local/include" + export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L/usr/local/lib -Wl,-rpath,/usr/local/lib" fi fi fi @@ -1455,8 +1455,8 @@ use_homebrew_readline() { local libdir="$(brew --prefix readline 2>/dev/null || true)" if [ -d "$libdir" ]; then echo "python-build: use readline from homebrew" - export CPPFLAGS="-I$libdir/include ${CPPFLAGS}" - export LDFLAGS="-L$libdir/lib ${LDFLAGS}" + export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" else return 1 fi @@ -1474,8 +1474,8 @@ build_package_mac_readline() { READLINE_PREFIX_PATH="${PREFIX_PATH}/readline" # Tell Python to use this readline for its extension. - export CPPFLAGS="-I${READLINE_PREFIX_PATH}/include ${CPPFLAGS}" - export LDFLAGS="-L${READLINE_PREFIX_PATH}/lib ${LDFLAGS}" + export CPPFLAGS="-I${READLINE_PREFIX_PATH}/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L${READLINE_PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" # Make sure pkg-config finds our build first. export PKG_CONFIG_PATH="${READLINE_PREFIX_PATH}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" @@ -1502,8 +1502,8 @@ use_homebrew_openssl() { # https://bugs.python.org/issue21541 package_option python configure --with-openssl="${ssldir}" else - export CPPFLAGS="-I$ssldir/include ${CPPFLAGS}" - export LDFLAGS="-L$ssldir/lib ${LDFLAGS}" + export CPPFLAGS="-I$ssldir/include ${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}" fi export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}" return @@ -1525,8 +1525,8 @@ build_package_mac_openssl() { # https://bugs.python.org/issue21541 package_option python configure --with-openssl="${OPENSSL_PREFIX_PATH}" else - export CPPFLAGS="-I${OPENSSL_PREFIX_PATH}/include ${CPPFLAGS}" - export LDFLAGS="-L${OPENSSL_PREFIX_PATH}/lib ${LDFLAGS}" + export CPPFLAGS="-I${OPENSSL_PREFIX_PATH}/include ${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L${OPENSSL_PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" fi # Make sure pkg-config finds our build first. @@ -1605,9 +1605,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" - export CFLAGS="-I${xc_sdk_path}/usr/include ${CFLAGS}" + export CFLAGS="${CFLAGS:+$CFLAGS }-I${xc_sdk_path}/usr/include" if is_mac -ge 1100; then - export LDFLAGS="${LDFLAGS} -L${xc_sdk_path}/usr/lib" + export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${xc_sdk_path}/usr/lib" fi fi } @@ -1706,7 +1706,7 @@ build_package_auto_tcltk() { if is_mac && [ ! -d /usr/include/X11 ]; then if [ -d /opt/X11/include ]; then if [[ "$CPPFLAGS" != *-I/opt/X11/include* ]]; then - export CPPFLAGS="-I/opt/X11/include $CPPFLAGS" + export CPPFLAGS="-I/opt/X11/include${CPPFLAGS:+ $CPPFLAGS}" fi else package_option python configure --without-tk @@ -2209,13 +2209,13 @@ package_option python configure --libdir="${PREFIX_PATH}/lib" if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS ${PYTHON_CONFIGURE_OPTS_ARRAY[@]}" == *"--enable-shared"* ]]; then # The ld on Darwin embeds the full paths to each dylib by default if [[ "$LDFLAGS" != *"-rpath="* ]] && ! is_mac; then - export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}" + export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" fi fi # python-build: Set `RPATH` if --shared` was given for PyPy (#244) if [[ "$PYPY_OPTS" == *"--shared"* ]]; then - export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib ${LDFLAGS}" + export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" fi # Add support for framework installation (`--enable-framework`) of CPython (#55, #99) @@ -2381,8 +2381,8 @@ if [ -n "$VERBOSE" ]; then trap "kill $TAIL_PID" SIGINT SIGTERM EXIT fi -export LDFLAGS="-L${PREFIX_PATH}/lib ${LDFLAGS}" -export CPPFLAGS="-I${PREFIX_PATH}/include ${CPPFLAGS}" +export LDFLAGS="-L${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" +export CPPFLAGS="-I${PREFIX_PATH}/include${CPPFLAGS:+ $CPPFLAGS}" unset PYTHONHOME unset PYTHONPATH diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 41bbaa3310..41e13d6b0a 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -74,11 +74,11 @@ assert_build_log() { unstub make assert_build_log < Date: Thu, 12 Jan 2023 14:17:35 +0300 Subject: [PATCH 0571/1324] Fix priority for user-supplied configure and make flags --- plugins/python-build/bin/python-build | 4 ++-- plugins/python-build/test/build.bats | 30 +++++++++++++++++++++++- plugins/python-build/test/pyenv_ext.bats | 2 +- 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index af1bbf947f..87ba0ff3c0 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -813,10 +813,10 @@ build_package_standard_build() { export CC=clang fi ${!PACKAGE_CONFIGURE:-./configure} --prefix="${!PACKAGE_PREFIX_PATH:-$PREFIX_PATH}" \ - $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" || return 1 + "${!PACKAGE_CONFIGURE_OPTS_ARRAY}" $CONFIGURE_OPTS ${!PACKAGE_CONFIGURE_OPTS} || return 1 ) >&4 2>&1 - { "$MAKE" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} "${!PACKAGE_MAKE_OPTS_ARRAY}" + { "$MAKE" "${!PACKAGE_MAKE_OPTS_ARRAY}" $MAKE_OPTS ${!PACKAGE_MAKE_OPTS} } >&4 2>&1 } diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 41e13d6b0a..9be9c3d595 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -372,7 +372,7 @@ DEF assert_build_log < Date: Sat, 14 Jan 2023 01:25:38 +0300 Subject: [PATCH 0572/1324] Don't set --enable-shared if user supplied --disable-shared --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/build.bats | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 87ba0ff3c0..7a1feceb28 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2198,7 +2198,7 @@ if [ -n "$DEBUG" ]; then package_option python configure --with-pydebug fi -if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--enable-framework"* ]]; then +if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--enable-framework"* && "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--disable-shared"* ]]; then package_option python configure --enable-shared fi diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 9be9c3d595..aec8184389 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -613,6 +613,30 @@ make install --custom-make-install OUT } +@test "--enable-shared is not added if --disable-shared is passed" { + cached_tarball "Python-3.6.2" + + for i in {1..8}; do stub uname '-s : echo Linux'; done + + stub_make_install + + export PYTHON_CONFIGURE_OPTS='--disable-shared' + run_inline_definition < Date: Sat, 14 Jan 2023 02:24:47 +0300 Subject: [PATCH 0573/1324] Specify additional required information for build failures --- .github/ISSUE_TEMPLATE.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index bcc909e645..4097601a51 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -19,3 +19,8 @@ Make sure you have checked all steps below. - [ ] C Compiler information (e.g. gcc 7.3): - [ ] Please attach the debug trace of the failing command as a gist: * Run `env PYENV_DEBUG=1 2>&1 | tee trace.log` and attach `trace.log`. E.g. if you have a problem with installing Python, run `env PYENV_DEBUG=1 pyenv install -v 2>&1 | tee trace.log` (note the `-v` option to `pyenv install`). +- [ ] If you have a problem with installing Python, please also attach `config.log` from the build directory + * The build directory is reported after the "BUILD FAILED" message and is usually under `/tmp`. +- [ ] If the build succeeds but the problem is still with the build process (e.g. the resulting Python is missing a feature), please attach + * the debug trace from reinstalling the faulty version with `env PYENV_DEBUG=1 pyenv install -f -k -v 2>&1 | tee trace.log` + * `config.log` from the build directory. When using `pyenv install` with `-k` as per above, the build directory will be under `$PYENV_ROOT/sources`. From 12e74e147ac1ff9dec3b05b023a76146d1f218f9 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 14 Jan 2023 05:18:10 +0300 Subject: [PATCH 0574/1324] Fix a compilation error in 3.8.10+ and 3.9.5+ when linking against OpenSSL built with SSLv3 support (#2594) --- plugins/python-build/share/python-build/3.8.10 | 3 +++ plugins/python-build/share/python-build/3.8.11 | 3 +++ plugins/python-build/share/python-build/3.8.12 | 3 +++ plugins/python-build/share/python-build/3.8.13 | 3 +++ plugins/python-build/share/python-build/3.8.14 | 3 +++ plugins/python-build/share/python-build/3.8.15 | 3 +++ plugins/python-build/share/python-build/3.8.16 | 3 +++ plugins/python-build/share/python-build/3.9.10 | 3 +++ plugins/python-build/share/python-build/3.9.11 | 3 +++ plugins/python-build/share/python-build/3.9.12 | 3 +++ plugins/python-build/share/python-build/3.9.13 | 3 +++ plugins/python-build/share/python-build/3.9.14 | 3 +++ plugins/python-build/share/python-build/3.9.15 | 3 +++ plugins/python-build/share/python-build/3.9.16 | 3 +++ plugins/python-build/share/python-build/3.9.5 | 3 +++ plugins/python-build/share/python-build/3.9.6 | 3 +++ plugins/python-build/share/python-build/3.9.7 | 3 +++ plugins/python-build/share/python-build/3.9.8 | 3 +++ plugins/python-build/share/python-build/3.9.9 | 3 +++ 19 files changed, 57 insertions(+) diff --git a/plugins/python-build/share/python-build/3.8.10 b/plugins/python-build/share/python-build/3.8.10 index 4f48ec8828..506b67c958 100644 --- a/plugins/python-build/share/python-build/3.8.10 +++ b/plugins/python-build/share/python-build/3.8.10 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/share/python-build/3.8.11 b/plugins/python-build/share/python-build/3.8.11 index da6fb07901..0b2e4f9190 100644 --- a/plugins/python-build/share/python-build/3.8.11 +++ b/plugins/python-build/share/python-build/3.8.11 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.8.12 b/plugins/python-build/share/python-build/3.8.12 index 5134215062..e831bb351b 100644 --- a/plugins/python-build/share/python-build/3.8.12 +++ b/plugins/python-build/share/python-build/3.8.12 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.8.13 b/plugins/python-build/share/python-build/3.8.13 index 1ebae394e7..e2cb190897 100644 --- a/plugins/python-build/share/python-build/3.8.13 +++ b/plugins/python-build/share/python-build/3.8.13 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + 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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.8.14 b/plugins/python-build/share/python-build/3.8.14 index 288923e633..83fcd0c53c 100644 --- a/plugins/python-build/share/python-build/3.8.14 +++ b/plugins/python-build/share/python-build/3.8.14 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + 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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.8.15 b/plugins/python-build/share/python-build/3.8.15 index 83ef126f85..0dde62c62d 100644 --- a/plugins/python-build/share/python-build/3.8.15 +++ b/plugins/python-build/share/python-build/3.8.15 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.8.16 b/plugins/python-build/share/python-build/3.8.16 index c42175c938..ee61052a92 100644 --- a/plugins/python-build/share/python-build/3.8.16 +++ b/plugins/python-build/share/python-build/3.8.16 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.10 b/plugins/python-build/share/python-build/3.9.10 index 0e68549a33..283c543df3 100644 --- a/plugins/python-build/share/python-build/3.9.10 +++ b/plugins/python-build/share/python-build/3.9.10 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.11 b/plugins/python-build/share/python-build/3.9.11 index 17cb140ba7..50ddeb174c 100644 --- a/plugins/python-build/share/python-build/3.9.11 +++ b/plugins/python-build/share/python-build/3.9.11 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + 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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.12 b/plugins/python-build/share/python-build/3.9.12 index c21f77a538..2a0bcc84ee 100644 --- a/plugins/python-build/share/python-build/3.9.12 +++ b/plugins/python-build/share/python-build/3.9.12 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + 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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.13 b/plugins/python-build/share/python-build/3.9.13 index 2f457518ff..2dfd878476 100644 --- a/plugins/python-build/share/python-build/3.9.13 +++ b/plugins/python-build/share/python-build/3.9.13 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + 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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.14 b/plugins/python-build/share/python-build/3.9.14 index 05b5d5e82f..586743a943 100644 --- a/plugins/python-build/share/python-build/3.9.14 +++ b/plugins/python-build/share/python-build/3.9.14 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + 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.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.15 b/plugins/python-build/share/python-build/3.9.15 index 39c372232a..a62ad1597e 100644 --- a/plugins/python-build/share/python-build/3.9.15 +++ b/plugins/python-build/share/python-build/3.9.15 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.16 b/plugins/python-build/share/python-build/3.9.16 index 1cdbd595ea..11345f10db 100644 --- a/plugins/python-build/share/python-build/3.9.16 +++ b/plugins/python-build/share/python-build/3.9.16 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 index 2ec6a609fd..cbf1b53f91 100644 --- a/plugins/python-build/share/python-build/3.9.5 +++ b/plugins/python-build/share/python-build/3.9.5 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/share/python-build/3.9.6 b/plugins/python-build/share/python-build/3.9.6 index 4ceccb838f..20e42dddbe 100644 --- a/plugins/python-build/share/python-build/3.9.6 +++ b/plugins/python-build/share/python-build/3.9.6 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.7 b/plugins/python-build/share/python-build/3.9.7 index 012d505b93..659d388e6d 100644 --- a/plugins/python-build/share/python-build/3.9.7 +++ b/plugins/python-build/share/python-build/3.9.7 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.8 b/plugins/python-build/share/python-build/3.9.8 index 74c151af9a..10ac89e662 100644 --- a/plugins/python-build/share/python-build/3.9.8 +++ b/plugins/python-build/share/python-build/3.9.8 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.9.9 b/plugins/python-build/share/python-build/3.9.9 index 320dec8dec..bdd1579b28 100644 --- a/plugins/python-build/share/python-build/3.9.9 +++ b/plugins/python-build/share/python-build/3.9.9 @@ -1,5 +1,8 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then From 906246da4c2127734e846901eb1fd4bdb587d329 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 15 Jan 2023 12:43:34 +0300 Subject: [PATCH 0575/1324] 2.3.11 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index dfc04e230e..c0554a1bc0 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.10" +version="2.3.11" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From b77b0be089ccf78797e8c69b109aef79de3284c4 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 15 Jan 2023 12:44:38 +0300 Subject: [PATCH 0576/1324] 2.3.11 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f5e3b4b24..956ad0b0c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +## Release 2.3.11 + +* Add CPython 3.12.0a4 by @Afront in https://github.com/pyenv/pyenv/pull/2590 +* Add a script to add the latest miniforge and mambaforge versions by @smcgivern in https://github.com/pyenv/pyenv/pull/2560 +* Add missing Miniforge/Mambaforge versions (4.10.2-0 - 22.9.0-3) by @smcgivern in https://github.com/pyenv/pyenv/pull/2591 +* Fix using dependencies from Ports in FreeBSD that are not searched with pkg-config by @native-api in https://github.com/pyenv/pyenv/pull/2593 +* Fix priority for user-supplied configure and make flags by (**_only set --enable-shared if user hasn't supplied --disable-shared_**) @native-api in https://github.com/pyenv/pyenv/pull/2592 +* Fix a compilation error in 3.8.10+ and 3.9.5+ when linking against Op… by @native-api in https://github.com/pyenv/pyenv/pull/2594 + ## Release 2.3.10 * Remove stray newline after python-build installation by @tklauser in https://github.com/pyenv/pyenv/pull/2566 From bd618ea9ef445a2610afb035021e50bfcf30a396 Mon Sep 17 00:00:00 2001 From: Christian Clauss Date: Sun, 15 Jan 2023 11:37:11 +0100 Subject: [PATCH 0577/1324] add_miniconda.py: fix typo oversight (#2595) --- plugins/python-build/scripts/add_miniconda.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index e6f56c3f63..4e17451887 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -200,7 +200,7 @@ def default_py_version(self): return PyVersion.PY37 return PyVersion.PY36 - raise ValueError(flavor) + raise ValueError(self.flavor) class CondaSpec(NamedTuple): From 819e2b8f454d8cf0b27a212eb99d7032c1798b50 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 19 Jan 2023 00:21:10 +0300 Subject: [PATCH 0578/1324] Fix wrong libpython being linked to in MacOS (#2596) Without rpath, python would link up to the system's libpython --- plugins/python-build/bin/python-build | 6 +- plugins/python-build/test/build.bats | 102 +++++++++++------------ plugins/python-build/test/compiler.bats | 45 +++++----- plugins/python-build/test/pyenv_ext.bats | 10 +-- 4 files changed, 84 insertions(+), 79 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 7a1feceb28..f0e88234c1 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1199,7 +1199,7 @@ require_gcc() { export CC="$gcc" if is_mac -ge 1010; then - export MACOSX_DEPLOYMENT_TARGET=10.9 + export MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET:-10.9} fi } @@ -2208,8 +2208,8 @@ package_option python configure --libdir="${PREFIX_PATH}/lib" # python-build: Set `RPATH` if `--enable-shared` was given (#65, #66, #82) if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS ${PYTHON_CONFIGURE_OPTS_ARRAY[@]}" == *"--enable-shared"* ]]; then # The ld on Darwin embeds the full paths to each dylib by default - if [[ "$LDFLAGS" != *"-rpath="* ]] && ! is_mac; then - export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" + if [[ "$LDFLAGS" != *"-rpath="* ]] ; then + export LDFLAGS="-Wl,-rpath,${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" fi fi diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index aec8184389..76a6b6a5e5 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -62,7 +62,7 @@ assert_build_log() { cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -74,11 +74,11 @@ assert_build_log() { unstub make assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew false @@ -405,7 +405,7 @@ DEF unstub make assert_build_log <> build.log' stub_make_install @@ -770,7 +770,7 @@ DEF assert_build_log <&2; echo 4.2.1' '--version : echo warning >&2; echo 4.2.1' + stub gcc '--version : echo warning >&2; echo 4.2.1' run_inline_definition <> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" @@ -324,7 +324,7 @@ EOS assert_success assert_build_log < Date: Sun, 22 Jan 2023 00:07:53 +0300 Subject: [PATCH 0579/1324] Improve visibility of the auto-resolution feature Recent feedback showed that it's not visible enough --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e15a18176c..6a0a5231b9 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Install Python build dependencies](#install-python-build-dependencies) * **[Usage](#usage)** * [Install additional Python versions](#install-additional-python-versions) - * [Prefix auto-resolution](#prefix-auto-resolution) + * [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version) * [Python versions with extended support](#python-versions-with-extended-support) * [Switch between Python versions](#switch-between-python-versions) * [Uninstall Python versions](#uninstall-python-versions) @@ -412,7 +412,7 @@ please visit the wiki page about [Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). -#### Prefix auto-resolution +#### Prefix auto-resolution to the latest version All Pyenv subcommands except `uninstall` automatically resolve full prefixes to the latest version in the corresponding version line. From f1a1f59c875766a570b22ba4ec7567380966e097 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Jan 2023 05:49:40 +0300 Subject: [PATCH 0580/1324] Fix `:latest` after #2568 (#2599) * Cleanup mocks logic * Add test for `:latest` --- plugins/python-build/bin/pyenv-install | 22 ++-- plugins/python-build/test/pyenv.bats | 143 ++++++++++++++----------- pyenv.d/install/latest.bash | 38 ++++--- 3 files changed, 119 insertions(+), 84 deletions(-) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 22b211a8a9..6453564986 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -120,8 +120,8 @@ unset VERSION_NAME # version is specified by pyenv. Show usage instructions if a local # version is not specified. DEFINITIONS=("${ARGUMENTS[@]}") -[ -n "${DEFINITIONS[*]}" ] || DEFINITIONS=($(pyenv-local 2>/dev/null || true)) -[ -n "${DEFINITIONS[*]}" ] || usage 1 >&2 +[[ "${#DEFINITIONS[*]}" -eq 0 ]] && DEFINITIONS=($(pyenv-local 2>/dev/null || true)) +[[ "${#DEFINITIONS[*]}" -eq 0 ]] && usage 1 >&2 # Define `before_install` and `after_install` functions that allow # plugin hooks to register a string of code for execution before or @@ -151,7 +151,10 @@ IFS=$'\n' scripts=(`pyenv-hooks install`) IFS="$OLDIFS" for script in "${scripts[@]}"; do source "$script"; done -for DEFINITION in "${DEFINITIONS[@]}";do +COMBINED_STATUS=0 +for DEFINITION in "${DEFINITIONS[@]}"; do + STATUS=0 + # Try to resolve a prefix if user indeed gave a prefix. # We install the version under the resolved name # and hooks also see the resolved name @@ -173,7 +176,7 @@ for DEFINITION in "${DEFINITIONS[@]}";do case "$REPLY" in y | Y | yes | YES ) ;; - * ) exit 1 ;; + * ) { STATUS=1; [[ $STATUS -gt $COMBINED_STATUS ]] && COMBINED_STATUS=$STATUS; }; continue ;; esac elif [ -n "$SKIP_EXISTING" ]; then # Since we know the python version is already installed, and are opting to @@ -247,8 +250,8 @@ for DEFINITION in "${DEFINITIONS[@]}";do for hook in "${before_hooks[@]}"; do eval "$hook"; done # Invoke `python-build` and record the exit status in $STATUS. - STATUS=0 - python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || STATUS="$?" + python-build $KEEP $VERBOSE $HAS_PATCH $DEBUG "$DEFINITION" "$PREFIX" || \ + { STATUS=$?; [[ $STATUS -gt $COMBINED_STATUS ]] && COMBINED_STATUS=$STATUS; } # Display a more helpful message if the definition wasn't found. if [ "$STATUS" == "2" ]; then @@ -279,13 +282,14 @@ for DEFINITION in "${DEFINITIONS[@]}";do for hook in "${after_hooks[@]}"; do eval "$hook"; done # Run `pyenv-rehash` after a successful installation. - if [ "$STATUS" == "0" ]; then + if [[ $STATUS -eq 0 ]]; then pyenv-rehash else - break cleanup + break fi done -exit "${STATUS:-0}" + +exit "${COMBINED_STATUS}" diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 5eae5b2c65..1ca8270636 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -5,31 +5,36 @@ export PYENV_ROOT="${TMP}/pyenv" setup() { stub pyenv-hooks 'install : true' - stub pyenv-rehash 'true' + stub pyenv-rehash true } -stub_python_build() { +stub_python_build_lib() { stub python-build "--lib : $BATS_TEST_DIRNAME/../bin/python-build --lib" "$@" - stub pyenv-latest ": false" } -@test "install proper" { - stub_python_build 'echo python-build "$@"' +stub_python_build_no_latest() { + stub python-build "${@:-echo python-build \"\$@\"}" +} + +stub_python_build() { + stub_python_build_no_latest "$@" + stub pyenv-latest false +} + +@test "install a single version" { + stub_python_build_lib + stub_python_build run pyenv-install 3.4.2 assert_success "python-build 3.4.2 ${PYENV_ROOT}/versions/3.4.2" unstub python-build - unstub pyenv-hooks - unstub pyenv-rehash } -@test "install proper multi versions" { - #stub python-build "--lib : $BATS_TEST_DIRNAME/../bin/python-build --lib" 'echo python-build "$@"' 'echo python-build "$@"' - #stub pyenv-latest ": false" ": false" - stub_python_build 'echo python-build "$@"' 'echo python-build "$@"' - stub pyenv-latest ": false" - stub pyenv-rehash 'true' +@test "install multiple versions" { + stub_python_build_lib + stub_python_build + stub_python_build run pyenv-install 3.4.1 3.4.2 assert_success @@ -40,61 +45,72 @@ OUT unstub python-build unstub pyenv-latest - unstub pyenv-hooks - unstub pyenv-rehash } -@test "install resolves a prefix" { - stub_python_build 'echo python-build "$@"' - stub pyenv-latest '-q -k 3.4 : echo 3.4.2' - pyenv-latest || true # pass through the stub entry added by stub_python_build +@test "install multiple versions, some fail" { + stub_python_build_lib + stub_python_build 'echo "fail: python-build" "$@"; false' - run pyenv-install 3.4 - assert_success "python-build 3.4.2 ${PYENV_ROOT}/versions/3.4.2" + run pyenv-install 3.4.1 3.4.2 + assert_failure + assert_output <&2 && exit 2' \ - "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" + stub_python_build_lib + stub_python_build 'echo ERROR >&2 && exit 2' + stub_python_build "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" run pyenv-install 2.7.9 assert_failure @@ -142,8 +159,9 @@ OUT unstub python-build } -@test "Homebrew upgrade instructions" { +@test "homebrew upgrade instructions given when pyenv is homebrew-installed" { stub brew "--prefix : echo '${BATS_TEST_DIRNAME%/*}'" + stub_python_build_lib stub_python_build 'echo ERROR >&2 && exit 2' \ "--definitions : true" @@ -165,15 +183,19 @@ OUT @test "no build definitions from plugins" { assert [ ! -e "${PYENV_ROOT}/plugins" ] + stub_python_build_lib stub_python_build 'echo $PYTHON_BUILD_DEFINITIONS' run pyenv-install 3.4.2 assert_success "" + + unstub python-build } @test "some build definitions from plugins" { mkdir -p "${PYENV_ROOT}/plugins/foo/share/python-build" mkdir -p "${PYENV_ROOT}/plugins/bar/share/python-build" + stub_python_build_lib stub_python_build "echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'" run pyenv-install 3.4.2 @@ -183,11 +205,14 @@ OUT ${PYENV_ROOT}/plugins/bar/share/python-build ${PYENV_ROOT}/plugins/foo/share/python-build OUT + + unstub python-build } @test "list build definitions from plugins" { mkdir -p "${PYENV_ROOT}/plugins/foo/share/python-build" mkdir -p "${PYENV_ROOT}/plugins/bar/share/python-build" + stub_python_build_lib stub_python_build "--definitions : echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'" run pyenv-install --list @@ -198,12 +223,14 @@ Available versions: ${PYENV_ROOT}/plugins/bar/share/python-build ${PYENV_ROOT}/plugins/foo/share/python-build OUT + + unstub python-build } @test "completion results include build definitions from plugins" { mkdir -p "${PYENV_ROOT}/plugins/foo/share/python-build" mkdir -p "${PYENV_ROOT}/plugins/bar/share/python-build" - stub python-build "--definitions : echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'" + stub_python_build "--definitions : echo \$PYTHON_BUILD_DEFINITIONS | tr ':' $'\\n'" run pyenv-install --complete assert_success @@ -220,10 +247,12 @@ OUT ${PYENV_ROOT}/plugins/bar/share/python-build ${PYENV_ROOT}/plugins/foo/share/python-build OUT + + unstub python-build } @test "not enough arguments for pyenv-install if no local version" { - stub_python_build + stub_python_build_lib stub pyenv-help 'install : true' run pyenv-install @@ -232,17 +261,7 @@ OUT assert_output "" } -@test "multi arguments for pyenv-install" { - stub_python_build - stub pyenv-help 'install : true' - - run pyenv-install 3.4.1 3.4.2 - assert_success - assert_output "" -} - @test "show help for pyenv-install" { - stub_python_build stub pyenv-help 'install : true' run pyenv-install -h @@ -263,7 +282,7 @@ OUT unstub pyenv-help } -@test "more than one argument for pyenv-uninstall" { +@test "multiple arguments for pyenv-uninstall" { mkdir -p "${PYENV_ROOT}/versions/3.4.1" mkdir -p "${PYENV_ROOT}/versions/3.4.2" run pyenv-uninstall -f 3.4.1 3.4.2 diff --git a/pyenv.d/install/latest.bash b/pyenv.d/install/latest.bash index 6f45a50dd5..790b2dd10f 100644 --- a/pyenv.d/install/latest.bash +++ b/pyenv.d/install/latest.bash @@ -1,13 +1,25 @@ -DEFINITION_PREFIX="${DEFINITION%%:*}" -DEFINITION_TYPE="${DEFINITION_PREFIX%%-*}" # TODO: support non-CPython versions -if [[ "${DEFINITION}" != "${DEFINITION_PREFIX}" ]]; then - DEFINITION_CANDIDATES=(\ - $(python-build --definitions | \ - grep -F "${DEFINITION_PREFIX}" | \ - grep "^${DEFINITION_TYPE}" | \ - sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' | \ - sort -t. -k1,1r -k 2,2nr -k 3,3nr \ - || true)) - DEFINITION="${DEFINITION_CANDIDATES}" - VERSION_NAME="${DEFINITION##*/}" -fi +pyenv_install_resolve_latest() { + local DEFINITION_PREFIX DEFINITION_TYPE + local -a DEFINITION_CANDIDATES + local DEFINITION="$1" + + DEFINITION_PREFIX="${DEFINITION%%:*}" + DEFINITION_TYPE="${DEFINITION_PREFIX%%-*}" # TODO: support non-CPython versions + if [[ "${DEFINITION}" != "${DEFINITION_PREFIX}" ]]; then + DEFINITION_CANDIDATES=(\ + $(python-build --definitions | \ + grep -F "${DEFINITION_PREFIX}" | \ + grep "^${DEFINITION_TYPE}" | \ + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' | \ + sort -t. -k1,1r -k 2,2nr -k 3,3nr \ + || true)) + DEFINITION="${DEFINITION_CANDIDATES}" + fi + echo "$DEFINITION" +} + +for i in ${!DEFINITIONS[*]}; do + DEFINITIONS[$i]="$(pyenv_install_resolve_latest "${DEFINITIONS[$i]}")" +done + +unset pyenv_install_resolve_latest From c20fc7bd6aabfe7fa43372e1b07381dd03df2552 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Jan 2023 18:22:26 +0300 Subject: [PATCH 0581/1324] Fix `pyenv which` to support auto-resolved prefixes (#2601) * Resolve version name that hooks see * Avoid a 2nd iteration over configured versions --- libexec/pyenv-which | 23 ++++++++++++----------- test/which.bats | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 88fc447b23..29b4431804 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -47,12 +47,20 @@ OLDIFS="$IFS" IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)}) IFS="$OLDIFS" +declare -a nonexistent_versions + for version in "${versions[@]}" "$system"; do if [ "$version" = "system" ]; then PATH="$(remove_from_path "${PYENV_ROOT}/shims")" PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)" else - PYENV_COMMAND_PATH="${PYENV_ROOT}/versions/${version}/bin/${PYENV_COMMAND}" + # $version may be a prefix to be resolved by pyenv-latest + version_path="$(pyenv-prefix "${version}" 2>/dev/null)" || \ + { nonexistent_versions+=("$version"); continue; } + # resolve $version for hooks + version="$(basename "$version_path")" + PYENV_COMMAND_PATH="$version_path/bin/${PYENV_COMMAND}" + unset version_path fi if [ -x "$PYENV_COMMAND_PATH" ]; then break @@ -69,17 +77,10 @@ done if [ -x "$PYENV_COMMAND_PATH" ]; then echo "$PYENV_COMMAND_PATH" else - any_not_installed=0 - for version in "${versions[@]}"; do - if [ "$version" = "system" ]; then - continue - fi - if ! [ -d "${PYENV_ROOT}/versions/${version}" ]; then + if (( ${#nonexistent_versions[@]} )); then + for version in "${nonexistent_versions[@]}"; do echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 - any_not_installed=1 - fi - done - if [ "$any_not_installed" = 1 ]; then + done exit 1 fi diff --git a/test/which.bats b/test/which.bats index 4fc5eecb47..193b95a443 100644 --- a/test/which.bats +++ b/test/which.bats @@ -136,3 +136,22 @@ SH PYENV_VERSION= run pyenv-which python assert_success "${PYENV_ROOT}/versions/3.4/bin/python" } + +@test "resolves pyenv-latest prefixes" { + create_executable "3.4.2" "python" + + PYENV_VERSION=3.4 run pyenv-which python + assert_success "${PYENV_ROOT}/versions/3.4.2/bin/python" +} + +@test "hooks get resolved version name" { + create_hook which echo.bash < Date: Sun, 22 Jan 2023 13:12:28 -0800 Subject: [PATCH 0582/1324] Add more recent build of nogil Python. --- plugins/python-build/share/python-build/nogil-3.9.10-1 | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 plugins/python-build/share/python-build/nogil-3.9.10-1 diff --git a/plugins/python-build/share/python-build/nogil-3.9.10-1 b/plugins/python-build/share/python-build/nogil-3.9.10-1 new file mode 100644 index 0000000000..03083a5693 --- /dev/null +++ b/plugins/python-build/share/python-build/nogil-3.9.10-1 @@ -0,0 +1,5 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1l" "https://www.openssl.org/source/openssl-1.1.1l.tar.gz#0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +install_package "nogil-3.9.10-1" "https://github.com/colesbury/nogil/archive/refs/tags/v3.9.10-nogil-2023-01-22.tar.gz#cbda308c7586745573d665cd53d71b50707fd6f85c1c5d7a9f5b092e869cc757" standard verify_py39 copy_python_gdb ensurepip From dd60d5fae23adde0ff7b028a0de0830347d04888 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 29 Jan 2023 00:59:47 +0300 Subject: [PATCH 0583/1324] Fix overriding arguments for --enable-framework and --enable-universalsdk after #2592 (#2605) --- plugins/python-build/bin/python-build | 20 +++++++++++++++-- plugins/python-build/test/pyenv_ext.bats | 28 ++++++++++++++++-------- 2 files changed, 37 insertions(+), 11 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f0e88234c1..05bb7e3f65 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1742,9 +1742,9 @@ apply_patch() { build_package_symlink_version_suffix() { - if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then + if [[ "${PYTHON_CONFIGURE_OPTS_ARRAY[*]} $CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if [ -e "${PREFIX_PATH}/bin" ]; then - # Always create `bin` as symlink to framework path if the version was built with `--enable-frameowrk` (#590) + # Always create `bin` as symlink to framework path if the version was built with `--enable-framework` (#590) rm -rf "${PREFIX_PATH}/bin.orig" mv -f "${PREFIX_PATH}/bin" "${PREFIX_PATH}/bin.orig" fi @@ -2219,6 +2219,7 @@ if [[ "$PYPY_OPTS" == *"--shared"* ]]; then fi # Add support for framework installation (`--enable-framework`) of CPython (#55, #99) +shopt -s extglob if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if ! is_mac; then echo "python-build: framework installation is not supported outside of MacOS." >&2 @@ -2237,15 +2238,29 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; the create_framework_dirs "${DEFINITION_PATH##*/}" # the `/Library/Frameworks` suffix makes CPython build install apps under prefix rather than into /Applications (#1003) package_option python configure --enable-framework="${PREFIX_PATH}/Library/Frameworks" + + #FIXME: doesn't properly handle paths with spaces. Fix by parsing *OPTS into arrays. + CONFIGURE_OPTS="${CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}"; + CONFIGURE_OPTS="${CONFIGURE_OPTS% }" + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}"; + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }" fi +shopt -u extglob # Build against universal SDK +shopt -s extglob if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then if ! is_mac; then echo "python-build: universal installation is not supported outside of MacOS." >&2 exit 1 fi package_option python configure --enable-universalsdk=/ + #FIXME: doesn't properly handle paths with spaces. Fix by parsing *OPTS into arrays. + CONFIGURE_OPTS="${CONFIGURE_OPTS//--enable-universalsdk?(=*([^ ]))?( )/}" + CONFIGURE_OPTS="${CONFIGURE_OPTS% }" + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-universalsdk?(=*([^ ]))?( )/}" + PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }" + if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" != *"--with-universal-archs"* ]]; then # in CPython's configure.ac, --with-universal-archs defaults to 'intel' which means i386 + x86_64 # since 2.7.5 and 3.3.0 -- i.e. in all non-EOL versions @@ -2255,6 +2270,7 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; fi fi fi +shopt -u extglob # Compile with `--enable-unicode=ucs4` by default (#257) if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index dd554f6a31..812b454398 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -245,25 +245,27 @@ OUT } @test "enable framework" { - mkdir -p "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin" - touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3" - chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3" - touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4" - chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4" - touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3-config" - chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3-config" - touch "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config" - chmod +x "${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin/python3.4-config" + framework_path="${INSTALL_ROOT}/Library/Frameworks/Python.framework/Versions/Current/bin" + mkdir -p "$framework_path" + for executable in python3{,.4}{,-config}; do + touch "$framework_path/$executable" + chmod +x "$framework_path/$executable" + done + unset framework_path executable for i in {1..3}; do stub uname '-s : echo Darwin'; done PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition < Date: Mon, 30 Jan 2023 08:19:25 +0300 Subject: [PATCH 0584/1324] 2.3.12 --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 956ad0b0c4..c2e9ed380a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release 2.3.12 + +* Undefined name: do not forget self when accessing flavor by @cclauss in https://github.com/pyenv/pyenv/pull/2595 +* Fix wrong libpython being linked to in MacOS by @native-api in https://github.com/pyenv/pyenv/pull/2596 +* Fix `:latest` by @native-api in https://github.com/pyenv/pyenv/pull/2599 +* Fix `pyenv which` to support auto-resolved prefixes by @native-api in https://github.com/pyenv/pyenv/pull/2601 +* Add more recent build of nogil Python. by @colesbury in https://github.com/pyenv/pyenv/pull/2602 + ## Release 2.3.11 * Add CPython 3.12.0a4 by @Afront in https://github.com/pyenv/pyenv/pull/2590 From 76e93b073e616ced0810d0365a25289f75fb67d8 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 30 Jan 2023 08:19:43 +0300 Subject: [PATCH 0585/1324] 2.3.12 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index c0554a1bc0..8dd8c56262 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.11" +version="2.3.12" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 368e04f3fa7629615247dd94380afafae5a69f57 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 2 Feb 2023 15:15:16 +0300 Subject: [PATCH 0586/1324] Fix pyenv-latest to ignore virtualenvs (#2608) * Add test, exclude alphas as well --- libexec/pyenv-latest | 3 ++- test/latest.bats | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 8bc1b3f5e3..5c2471058f 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -48,9 +48,10 @@ IFS=$'\n' $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ grep -Ee "^$prefix_re[-.]" || true)) + #FIXME: /envs/ should be excluded in Pyenv-Virtualenv via a hook DEFINITION_CANDIDATES=(\ $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ - sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(b|rc)[0-9]+$/d')); + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' -e '/\/envs\//d')); # Compose a sorting key, followed by | and original value DEFINITION_CANDIDATES=(\ diff --git a/test/latest.bats b/test/latest.bats index 31474786ae..c145eff7f5 100644 --- a/test/latest.bats +++ b/test/latest.bats @@ -93,3 +93,22 @@ echo 3.10.6 3.10.8 ! } + +@test "ignores rolling releases, branch tips, alternative srcs, prereleases and virtualenvs" { + create_executable pyenv-versions < Date: Thu, 2 Feb 2023 17:24:19 +0300 Subject: [PATCH 0587/1324] Show symlink contents in non-bare `pyenv versions' (#2609) * Change other tests to use the newly-created convenience function --- libexec/pyenv-versions | 23 ++++++++++++++++------- test/versions.bats | 22 +++++++++++++++++++--- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index e4bb626492..fc309a03f5 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -104,10 +104,19 @@ exists() { } print_version() { + local version="${1:?}" + local path="${2:?}" + if [[ -z "$bare" && -L "$path" ]]; then + # Only resolve the link itself for printing, do not resolve further. + # Doing otherwise would misinform the user of what the link contains. + version_repr="$version --> $(resolve_link "$version")" + else + version_repr="$version" + fi if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then - echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" + echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))" elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then - echo "${hit_prefix}$1 (set by $(pyenv-version-origin))" + echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))" else echo "${miss_prefix}$1" fi @@ -119,7 +128,7 @@ if [ -n "$include_system" ] && \ (PYENV_VERSION=system pyenv-which python >/dev/null 2>&1 || \ PYENV_VERSION=system pyenv-which python3 >/dev/null 2>&1 || \ PYENV_VERSION=system pyenv-which python2 >/dev/null 2>&1) ; then - print_version system + print_version system "/" fi shopt -s dotglob nullglob @@ -139,14 +148,14 @@ for path in "${versions_dir_entries[@]}"; do if [ -d "$path" ]; then if [ -n "$skip_aliases" ] && [ -L "$path" ]; then target="$(realpath "$path")" - [ "${target%/*}" != "$versions_dir" ] || continue - [ "${target%/*/envs/*}" != "$versions_dir" ] || continue + [ "${target%/*}" == "$versions_dir" ] && continue + [ "${target%/*/envs/*}" == "$versions_dir" ] && continue fi - print_version "${path##*/}" + print_version "${path##*/}" "$path" # virtual environments created by anaconda/miniconda for env_path in "${path}/envs/"*; do if [ -d "${env_path}" ]; then - print_version "${env_path#${PYENV_ROOT}/versions/}" + print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" fi done fi diff --git a/test/versions.bats b/test/versions.bats index fb381dbee2..36db4967d2 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -6,6 +6,11 @@ create_version() { mkdir -p "${PYENV_ROOT}/versions/$1" } +create_alias() { + mkdir -p "${PYENV_ROOT}/versions" + ln -s "$2" "${PYENV_ROOT}/versions/$1" +} + setup() { mkdir -p "$PYENV_TEST_DIR" cd "$PYENV_TEST_DIR" @@ -138,7 +143,7 @@ OUT @test "lists symlinks under versions" { create_version "2.7.8" - ln -s "2.7.8" "${PYENV_ROOT}/versions/2.7" + create_alias "2.7" "2.7.8" run pyenv-versions --bare assert_success @@ -150,9 +155,9 @@ OUT @test "doesn't list symlink aliases when --skip-aliases" { create_version "1.8.7" - ln -s "1.8.7" "${PYENV_ROOT}/versions/1.8" + create_alias "1.8" "1.8.7" mkdir moo - ln -s "${PWD}/moo" "${PYENV_ROOT}/versions/1.9" + create_alias "1.9" "${PWD}/moo" run pyenv-versions --bare --skip-aliases assert_success @@ -210,3 +215,14 @@ SH 1.9.0 OUT } + +@test "non-bare output resolves links" { + create_version "1.9.0" + create_alias "link" "foo/bar" + + run pyenv-versions + assert_success < foo/bar +OUT +} From 9fe80f28e5ffa6ee3bfe1a2810bb4d2dd14d74d7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 2 Feb 2023 17:41:53 +0300 Subject: [PATCH 0588/1324] Add `pyenv versions' option to skip envs for `pyenv-latest' --- libexec/pyenv-versions | 23 +++++++++++++---------- test/versions.bats | 26 +++++++++++++++++++++++--- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index fc309a03f5..285d7a7f78 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -1,23 +1,24 @@ #!/usr/bin/env bash # Summary: List all Python versions available to pyenv -# Usage: pyenv versions [--bare] [--skip-aliases] +# Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs] # # Lists all Python versions found in `$PYENV_ROOT/versions/*'. set -e [ -n "$PYENV_DEBUG" ] && set -x -unset bare -unset skip_aliases +unset bare skip_aliases skip_envs # Provide pyenv completions for arg; do case "$arg" in --complete ) echo --bare echo --skip-aliases + echo --skip-envs exit ;; --bare ) bare=1 ;; --skip-aliases ) skip_aliases=1 ;; + --skip-envs ) skip_envs=1 ;; * ) pyenv-help --usage versions >&2 exit 1 @@ -109,7 +110,7 @@ print_version() { if [[ -z "$bare" && -L "$path" ]]; then # Only resolve the link itself for printing, do not resolve further. # Doing otherwise would misinform the user of what the link contains. - version_repr="$version --> $(resolve_link "$version")" + version_repr="$version --> $(resolve_link "$path")" else version_repr="$version" fi @@ -152,12 +153,14 @@ for path in "${versions_dir_entries[@]}"; do [ "${target%/*/envs/*}" == "$versions_dir" ] && continue fi print_version "${path##*/}" "$path" - # virtual environments created by anaconda/miniconda - for env_path in "${path}/envs/"*; do - if [ -d "${env_path}" ]; then - print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" - fi - done + # virtual environments created by anaconda/miniconda/pyenv-virtualenv + if [[ -z $skip_envs ]]; then + for env_path in "${path}/envs/"*; do + if [ -d "${env_path}" ]; then + print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" + fi + done + fi fi done shopt -u dotglob nullglob diff --git a/test/versions.bats b/test/versions.bats index 36db4967d2..ce101d307e 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -66,18 +66,38 @@ OUT assert_success "3.3" } -@test "multiple versions" { +@test "multiple versions and envs" { stub_system_python create_version "2.7.6" - create_version "3.3.3" create_version "3.4.0" + create_version "3.4.0/envs/foo" + create_version "3.4.0/envs/bar" + create_version "3.5.2" run pyenv-versions assert_success assert_output < Date: Thu, 2 Feb 2023 17:58:10 +0300 Subject: [PATCH 0589/1324] Streamline `pyenv-versions --bare' Achieves a ~20% speedup. As it's used in pyenv-latest, this affects all version lookups --- libexec/pyenv-versions | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 285d7a7f78..3aaaa055fc 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -71,8 +71,6 @@ else current_versions=() fi if [ -n "$bare" ]; then - hit_prefix="" - miss_prefix="" include_system="" else hit_prefix="* " @@ -106,8 +104,12 @@ exists() { print_version() { local version="${1:?}" + if [[ -n $bare ]]; then + echo "$version" + return + fi local path="${2:?}" - if [[ -z "$bare" && -L "$path" ]]; then + if [[ -L "$path" ]]; then # Only resolve the link itself for printing, do not resolve further. # Doing otherwise would misinform the user of what the link contains. version_repr="$version --> $(resolve_link "$path")" From 72c5b034cadcc8a13d64c316508a3fbe1ffdf11e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 2 Feb 2023 18:14:42 +0300 Subject: [PATCH 0590/1324] Avoid the need to filter out envs in `pyenv-latest' --- libexec/pyenv-latest | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 5c2471058f..d4c44b60d7 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -31,7 +31,7 @@ exitcode=0 IFS=$'\n' if [[ -z $FROM_KNOWN ]]; then - DEFINITION_CANDIDATES=( $(pyenv-versions --bare) ) + DEFINITION_CANDIDATES=( $(pyenv-versions --bare --skip-envs) ) else DEFINITION_CANDIDATES=( $(python-build --definitions ) ) fi @@ -48,10 +48,9 @@ IFS=$'\n' $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ grep -Ee "^$prefix_re[-.]" || true)) - #FIXME: /envs/ should be excluded in Pyenv-Virtualenv via a hook DEFINITION_CANDIDATES=(\ $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ - sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' -e '/\/envs\//d')); + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d')); # Compose a sorting key, followed by | and original value DEFINITION_CANDIDATES=(\ From a7b181c3caf98aa1aed224b02b5c3c3da108241f Mon Sep 17 00:00:00 2001 From: laggardkernel Date: Mon, 6 Feb 2023 09:09:26 +0300 Subject: [PATCH 0591/1324] Fix link resolving in pyenv-versions Co-Authored-by: Ivan Pozdeev --- libexec/pyenv-versions | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 3aaaa055fc..85f4408555 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -112,7 +112,7 @@ print_version() { if [[ -L "$path" ]]; then # Only resolve the link itself for printing, do not resolve further. # Doing otherwise would misinform the user of what the link contains. - version_repr="$version --> $(resolve_link "$path")" + version_repr="$version --> $(readlink "$path")" else version_repr="$version" fi @@ -157,12 +157,12 @@ for path in "${versions_dir_entries[@]}"; do print_version "${path##*/}" "$path" # virtual environments created by anaconda/miniconda/pyenv-virtualenv if [[ -z $skip_envs ]]; then - for env_path in "${path}/envs/"*; do - if [ -d "${env_path}" ]; then - print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" - fi - done - fi + for env_path in "${path}/envs/"*; do + if [ -d "${env_path}" ]; then + print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" + fi + done + fi fi done shopt -u dotglob nullglob From f72c1712dc6c5253cd58265012fe79c7ea72151b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 6 Feb 2023 15:38:20 +0300 Subject: [PATCH 0592/1324] CI: Test with native extension Only run tests for subcommands that use the native extension --- .github/workflows/pyenv_tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 5937d86d9a..0a34ef9cd8 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -42,3 +42,8 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | make test + - env: + PYENV_NATIVE_EXT: 1 + run: | + (cd src; ./configure; make) + bats/bin/bats test/{pyenv,hooks,versions}.bats \ No newline at end of file From a3f0bddc2a539615f58a709b2f19914b4fba2f1b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 6 Feb 2023 15:44:59 +0300 Subject: [PATCH 0593/1324] CI: Migrate to checkout@v3 Actions runner warns about v2 deprecation --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 6 +++--- .github/workflows/pyenv_tests.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 0722cc2640..a56c3f7a2e 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -17,7 +17,7 @@ jobs: - "3.11" runs-on: macos-11 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 8eff5360a8..93f49baae7 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -6,7 +6,7 @@ jobs: outputs: versions: ${{steps.modified-versions.outputs.versions}} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: git fetch origin "$GITHUB_BASE_REF" - shell: bash run: > @@ -30,7 +30,7 @@ jobs: os: ["macos-11", "macos-12"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -90,7 +90,7 @@ jobs: os: ["ubuntu-20.04", "ubuntu-22.04"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 0a34ef9cd8..dc905d14c2 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -16,7 +16,7 @@ jobs: - macos-11 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 1061586ddb..cb701ff146 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -17,7 +17,7 @@ jobs: - "3.11" runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: From 063aa457e426a3a866d3d185c0f423c29aabb352 Mon Sep 17 00:00:00 2001 From: Afront <3943720+Afront@users.noreply.github.com> Date: Wed, 8 Feb 2023 15:34:14 +0900 Subject: [PATCH 0594/1324] Add CPython 3.12.0a5 --- .../python-build/share/python-build/{3.12.0a4 => 3.12.0a5} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0a4 => 3.12.0a5} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0a4 b/plugins/python-build/share/python-build/3.12.0a5 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0a4 rename to plugins/python-build/share/python-build/3.12.0a5 index c38ff183d2..ec808b1e6b 100644 --- a/plugins/python-build/share/python-build/3.12.0a4 +++ b/plugins/python-build/share/python-build/3.12.0a5 @@ -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.0a4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a4.tar.xz#b9176c46b1cd21dbdcb31bbbab6169faa92da9acc5f35bd4a009879ac74cf6af" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a5" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a5.tar.xz#d66ef7a342fe3a356f9cee3bb97adc1e5fb4840f6b6cff7de0ff7dd495f8323b" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0a4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a4.tgz#d9d9cbebc745ecaf5cae6b4004a84692154183b729954d3a421fba3d2a541d59" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a5" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a5.tgz#53bea5094887bba2fc4f429fa8abb4976b5c7cfe70d41923cf6aff0b4854c666" standard verify_py312 copy_python_gdb ensurepip fi From 017b6d877e311ab246f3865b722c20109dcee751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Wed, 8 Feb 2023 03:38:33 -0600 Subject: [PATCH 0595/1324] Add CPython 3.11.2 --- plugins/python-build/share/python-build/3.11.2 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.2 diff --git a/plugins/python-build/share/python-build/3.11.2 b/plugins/python-build/share/python-build/3.11.2 new file mode 100644 index 0000000000..ab048e365e --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.2 @@ -0,0 +1,10 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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.11.2" "https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tar.xz#29e4b8f5f1658542a8c13e2dd277358c9c48f2b2f7318652ef1675e402b9d2af" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.2" "https://www.python.org/ftp/python/3.11.2/Python-3.11.2.tgz#2411c74bda5bbcfcddaf4531f66d1adc73f247f529aee981b029513aefdbf849" standard verify_py311 copy_python_gdb ensurepip +fi From 6b758c8cf96b98b24566b1bc50d06f1ee066b221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Wed, 8 Feb 2023 03:43:04 -0600 Subject: [PATCH 0596/1324] Add CPython 3.10.10 --- plugins/python-build/share/python-build/3.10.10 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.10 diff --git a/plugins/python-build/share/python-build/3.10.10 b/plugins/python-build/share/python-build/3.10.10 new file mode 100644 index 0000000000..bdab1b7596 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.10 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.10" "https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tar.xz#0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.10" "https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tgz#fba64559dde21ebdc953e4565e731573bb61159de8e4d4cedee70fb1196f610d" standard verify_py310 copy_python_gdb ensurepip +fi From 7fe647968d0f023bef10773ef73023caf06c95f7 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 15 Feb 2023 08:15:14 +0300 Subject: [PATCH 0597/1324] 2.3.13 --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2e9ed380a..0334600b46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Version History +## Release 2.3.13 + +* Fix pyenv-latest to ignore virtualenvs by @native-api in https://github.com/pyenv/pyenv/pull/2608 +* Show symlink contents in non-bare `pyenv versions' by @native-api in https://github.com/pyenv/pyenv/pull/2609 +* Ignore virtualenvs in `pyenv latest' in a clean way by @native-api in https://github.com/pyenv/pyenv/pull/2610 +* Fix link resolving in pyenv-versions by @laggardkernel in https://github.com/pyenv/pyenv/pull/2612 +* Add CPython 3.11.2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2615 +* Add CPython 3.10.10 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2616 +* Add CPython 3.12.0a5 by @Afront in https://github.com/pyenv/pyenv/pull/2614 + ## Release 2.3.12 * Undefined name: do not forget self when accessing flavor by @cclauss in https://github.com/pyenv/pyenv/pull/2595 From 0ab9683e58b75fd3ee4f5a8b9f3a33d8e3f701bc Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 15 Feb 2023 08:15:35 +0300 Subject: [PATCH 0598/1324] 2.3.13 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 8dd8c56262..ab773355b6 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.12" +version="2.3.13" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 86a4423bbb8ba5ed8db0f998376eead288050322 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82?= <23004737+rafrafek@users.noreply.github.com> Date: Wed, 15 Feb 2023 22:10:36 +0100 Subject: [PATCH 0599/1324] Fix indentation (#2620) --- libexec/pyenv-versions | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 85f4408555..bf87e7cf8d 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -157,12 +157,12 @@ for path in "${versions_dir_entries[@]}"; do print_version "${path##*/}" "$path" # virtual environments created by anaconda/miniconda/pyenv-virtualenv if [[ -z $skip_envs ]]; then - for env_path in "${path}/envs/"*; do - if [ -d "${env_path}" ]; then - print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" - fi - done - fi + for env_path in "${path}/envs/"*; do + if [ -d "${env_path}" ]; then + print_version "${env_path#${PYENV_ROOT}/versions/}" "${env_path}" + fi + done + fi fi done shopt -u dotglob nullglob From 68918e69b76f10756aff738200b113d7185de87f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Sch=C3=BCller?= Date: Wed, 22 Feb 2023 18:11:48 +0100 Subject: [PATCH 0600/1324] Support for BusyBox version of `head' (#2629) --- libexec/pyenv | 2 +- libexec/pyenv-help | 2 +- libexec/pyenv-hooks | 2 +- libexec/pyenv-versions | 2 +- plugins/python-build/bin/pyenv-install | 2 +- plugins/python-build/bin/python-build | 12 ++++++------ plugins/python-build/test/pyenv_ext.bats | 2 +- plugins/python-build/test/test_helper.bash | 2 +- plugins/python-build/test/version.bats | 2 +- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index c7564a8880..35161cf296 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -29,7 +29,7 @@ if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev else [ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin" - READLINK=$(type -P greadlink readlink | head -1) + READLINK=$(type -P greadlink readlink | head -n1) [ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?" resolve_link() { diff --git a/libexec/pyenv-help b/libexec/pyenv-help index b7d08d2f7a..d2f793d528 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -46,7 +46,7 @@ extract_initial_comment_block() { collect_documentation() { # `tail` prevents "broken pipe" errors due to `head` closing the pipe without reading everything # https://superuser.com/questions/554855/how-can-i-fix-a-broken-pipe-error/642932#642932 - $(type -P gawk awk | tail -n +1 | head -1) ' + $(type -P gawk awk | tail -n +1 | head -n1) ' /^Summary:/ { summary = substr($0, 10) next diff --git a/libexec/pyenv-hooks b/libexec/pyenv-hooks index 1b8c528d8b..7d620d4c0b 100755 --- a/libexec/pyenv-hooks +++ b/libexec/pyenv-hooks @@ -26,7 +26,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi -READLINK=$(type -P greadlink readlink | head -1) +READLINK=$(type -P greadlink readlink | head -n1) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index bf87e7cf8d..71f771906f 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -34,7 +34,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th exit 1 fi - READLINK=$(type -P greadlink readlink | head -1) + READLINK=$(type -P greadlink readlink | head -n1) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 6453564986..2d5c356b25 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -59,7 +59,7 @@ usage() { definitions() { local query="$1" - python-build --definitions | $(type -P ggrep grep | head -1) -F "$query" || true + python-build --definitions | $(type -P ggrep grep | head -n1) -F "$query" || true } indent() { diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 05bb7e3f65..f7f525c1cd 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -58,7 +58,7 @@ lib "$1" resolve_link() { - $(type -P greadlink readlink | head -1) "$1" + $(type -P greadlink readlink | head -n1) "$1" } abs_dirname() { @@ -102,7 +102,7 @@ os_information() { source /etc/os-release echo "$NAME" $VERSION_ID else - local os="$(cat /etc/{centos,redhat,fedora,system}-release /etc/debian_version 2>/dev/null | head -1)" + local os="$(cat /etc/{centos,redhat,fedora,system}-release /etc/debian_version 2>/dev/null | head -n1)" echo "${os:-$(uname -sr)}" fi } @@ -256,7 +256,7 @@ compute_sha2() { output="$(shasum -a 256 -b)" || return 1 echo "${output% *}" elif type openssl &>/dev/null; then - local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null || true)"/bin/openssl openssl | head -1)" + local openssl="$(command -v "$(brew --prefix openssl 2>/dev/null || true)"/bin/openssl openssl | head -n1)" output="$("$openssl" dgst -sha256 2>/dev/null)" || return 1 echo "${output##* }" elif type sha256sum &>/dev/null; then @@ -867,7 +867,7 @@ build_package_jython() { fix_jython_shebangs() { # Workaround for Jython 2.7+ (#458) for file in "${PREFIX_PATH}/bin"/*; do - case "$(head -1 "${file}")" in + case "$(head -n1 "${file}")" in "#!"*"/bin/jython" ) sed -i.bak "1 s:.*:#\!${PREFIX_PATH}\/bin\/jython:" "${file}" ;; @@ -1144,7 +1144,7 @@ fix_directory_permissions() { } require_java7() { - local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -1)" + local version="$(java -version 2>&1 | grep '\(java\|openjdk\) version' | head -n1)" if [[ $version != *[789]* ]]; then colorize 1 "ERROR" >&3 echo ": Java 7 required. Please install a 1.7-compatible JRE." >&3 @@ -1587,7 +1587,7 @@ build_package_verify_openssl() { RbConfig::CONFIG.fetch("configure_args").shellsplit.each { |arg| $stderr.puts " #{arg}" } exit 1 end - ' "$(basename "$(type -P yum apt-get | head -1)")" >&4 2>&1 + ' "$(basename "$(type -P yum apt-get | head -n1)")" >&4 2>&1 } use_homebrew_zlib() { diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 812b454398..a2b73f61e3 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -89,7 +89,7 @@ install_tmp_fixture() { } resolve_link() { - $(type -P greadlink readlink | head -1) "$1" + $(type -P greadlink readlink | head -n1) "$1" } run_inline_definition_with_name() { diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index c7a20ac2c8..bd9c5a865b 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -133,7 +133,7 @@ assert_output_contains() { echo "assert_output_contains needs an argument" >&2 return 1 fi - echo "$output" | $(type -P ggrep grep | head -1) -F "$expected" >/dev/null || { + echo "$output" | $(type -P ggrep grep | head -n1) -F "$expected" >/dev/null || { { echo "expected output to contain $expected" echo "actual: $output" } | flunk diff --git a/plugins/python-build/test/version.bats b/plugins/python-build/test/version.bats index 15c8635fcf..e774abb5c7 100644 --- a/plugins/python-build/test/version.bats +++ b/plugins/python-build/test/version.bats @@ -3,7 +3,7 @@ load test_helper bats_bin="${BATS_TEST_DIRNAME}/../bin/python-build" -static_version="$(grep VERSION "$bats_bin" | head -1 | cut -d'"' -f 2)" +static_version="$(grep VERSION "$bats_bin" | head -n1 | cut -d'"' -f 2)" @test "python-build static version" { stub git 'echo "ASPLODE" >&2; exit 1' From 28be65992d9cae0dae43482f7df685587b3d2ddd Mon Sep 17 00:00:00 2001 From: Chaim Halbert Date: Fri, 24 Feb 2023 12:19:13 -0700 Subject: [PATCH 0601/1324] bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms --- ...oc-align-by-16bytes-on-64bit-platfor.patch | 43 +++++++++++++++++++ ...PyGC_Head-to-alignof-long-double-GH-.patch | 40 +++++++++++++++++ ...oc-align-by-16bytes-on-64bit-platfor.patch | 43 +++++++++++++++++++ ...PyGC_Head-to-alignof-long-double-GH-.patch | 40 +++++++++++++++++ 4 files changed, 166 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0001-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0002-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0009-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0010-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0001-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0001-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch new file mode 100644 index 0000000000..66a873cdd2 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0001-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch @@ -0,0 +1,43 @@ +From 112cceb514e79b4c9805f9e5ea037a205be428da Mon Sep 17 00:00:00 2001 +From: Inada Naoki +Date: Tue, 14 May 2019 18:51:15 +0900 +Subject: [PATCH 1/2] bpo-27987: pymalloc: align by 16bytes on 64bit platform + (GH-12850) + +--- + .../2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst | 3 +++ + Objects/obmalloc.c | 6 ++++++ + 2 files changed, 9 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst +new file mode 100644 +index 0000000000..b0f32a5c6c +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst +@@ -0,0 +1,3 @@ ++pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on ++64-bit platforms to conform x86-64 ABI. Recent compilers assume this alignment ++more often. Patch by Inada Naoki. +diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c +index 9dd8421a33..da9029c4a6 100644 +--- a/Objects/obmalloc.c ++++ b/Objects/obmalloc.c +@@ -540,8 +540,14 @@ static int running_on_valgrind = -1; + * + * You shouldn't change this unless you know what you are doing. + */ ++ ++#if SIZEOF_VOID_P > 4 ++#define ALIGNMENT 16 /* must be 2^N */ ++#define ALIGNMENT_SHIFT 4 ++#else + #define ALIGNMENT 8 /* must be 2^N */ + #define ALIGNMENT_SHIFT 3 ++#endif + + /* Return the number of bytes in size class I, as a uint. */ + #define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT) +-- +2.38.4 + diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0002-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0002-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch new file mode 100644 index 0000000000..ace6e27554 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0002-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch @@ -0,0 +1,40 @@ +From 618ef35426ecc57da1bee50f8dc5896f5fb178a9 Mon Sep 17 00:00:00 2001 +From: Inada Naoki +Date: Sat, 25 May 2019 21:13:33 +0900 +Subject: [PATCH 2/2] bpo-27987: align PyGC_Head to alignof(long double) + (GH-13335) + +--- + Include/objimpl.h | 6 +++++- + .../2019-05-15-18-28-43.bpo-27987.FaxuLy.rst | 2 ++ + 2 files changed, 7 insertions(+), 1 deletion(-) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst + +diff --git a/Include/objimpl.h b/Include/objimpl.h +index 65b6d91c36..eaf57975c8 100644 +--- a/Include/objimpl.h ++++ b/Include/objimpl.h +@@ -250,7 +250,11 @@ typedef union _gc_head { + union _gc_head *gc_prev; + Py_ssize_t gc_refs; + } gc; +- double dummy; /* force worst-case alignment */ ++ long double dummy; /* force worst-case alignment */ ++ // malloc returns memory block aligned for any built-in types and ++ // long double is the largest standard C type. ++ // On amd64 linux, long double requires 16 byte alignment. ++ // See bpo-27987 for more discussion. + } PyGC_Head; + + extern PyGC_Head *_PyGC_generation0; +diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst +new file mode 100644 +index 0000000000..97ca37b262 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst +@@ -0,0 +1,2 @@ ++``PyGC_Head`` structure is aligned to ``long double``. This is needed to ++GC-ed objects are aligned properly. Patch by Inada Naoki. +-- +2.38.4 + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0009-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0009-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch new file mode 100644 index 0000000000..ef8d1d45e7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0009-bpo-27987-pymalloc-align-by-16bytes-on-64bit-platfor.patch @@ -0,0 +1,43 @@ +From 54dc627769bf112b0181972a52c4b45e4a02da57 Mon Sep 17 00:00:00 2001 +From: Inada Naoki +Date: Tue, 14 May 2019 18:51:15 +0900 +Subject: [PATCH 09/10] bpo-27987: pymalloc: align by 16bytes on 64bit platform + (GH-12850) + +--- + .../2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst | 3 +++ + Objects/obmalloc.c | 6 ++++++ + 2 files changed, 9 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst +new file mode 100644 +index 0000000000..b0f32a5c6c +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2019-04-16-11-52-21.bpo-27987.n2_DcQ.rst +@@ -0,0 +1,3 @@ ++pymalloc returns memory blocks aligned by 16 bytes, instead of 8 bytes, on ++64-bit platforms to conform x86-64 ABI. Recent compilers assume this alignment ++more often. Patch by Inada Naoki. +diff --git a/Objects/obmalloc.c b/Objects/obmalloc.c +index d46d149311..47283354f4 100644 +--- a/Objects/obmalloc.c ++++ b/Objects/obmalloc.c +@@ -650,8 +650,14 @@ static int running_on_valgrind = -1; + * + * You shouldn't change this unless you know what you are doing. + */ ++ ++#if SIZEOF_VOID_P > 4 ++#define ALIGNMENT 16 /* must be 2^N */ ++#define ALIGNMENT_SHIFT 4 ++#else + #define ALIGNMENT 8 /* must be 2^N */ + #define ALIGNMENT_SHIFT 3 ++#endif + + /* Return the number of bytes in size class I, as a uint. */ + #define INDEX2SIZE(I) (((uint)(I) + 1) << ALIGNMENT_SHIFT) +-- +2.38.4 + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0010-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0010-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch new file mode 100644 index 0000000000..f9da87aa7f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0010-bpo-27987-align-PyGC_Head-to-alignof-long-double-GH-.patch @@ -0,0 +1,40 @@ +From e68ff170dc6764b22886e703f583fb53e90367ef Mon Sep 17 00:00:00 2001 +From: Inada Naoki +Date: Sat, 25 May 2019 21:13:33 +0900 +Subject: [PATCH 10/10] bpo-27987: align PyGC_Head to alignof(long double) + (GH-13335) + +--- + Include/objimpl.h | 6 +++++- + .../2019-05-15-18-28-43.bpo-27987.FaxuLy.rst | 2 ++ + 2 files changed, 7 insertions(+), 1 deletion(-) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst + +diff --git a/Include/objimpl.h b/Include/objimpl.h +index e7a3696d7a..90d71b87ea 100644 +--- a/Include/objimpl.h ++++ b/Include/objimpl.h +@@ -255,7 +255,11 @@ typedef union _gc_head { + union _gc_head *gc_prev; + Py_ssize_t gc_refs; + } gc; +- double dummy; /* force worst-case alignment */ ++ long double dummy; /* force worst-case alignment */ ++ // malloc returns memory block aligned for any built-in types and ++ // long double is the largest standard C type. ++ // On amd64 linux, long double requires 16 byte alignment. ++ // See bpo-27987 for more discussion. + } PyGC_Head; + + extern PyGC_Head *_PyGC_generation0; +diff --git a/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst +new file mode 100644 +index 0000000000..97ca37b262 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2019-05-15-18-28-43.bpo-27987.FaxuLy.rst +@@ -0,0 +1,2 @@ ++``PyGC_Head`` structure is aligned to ``long double``. This is needed to ++GC-ed objects are aligned properly. Patch by Inada Naoki. +-- +2.38.4 + From 6bec7a50feeeb3d2114b54f8fe2f279d0ed04a12 Mon Sep 17 00:00:00 2001 From: Chaim Halbert Date: Fri, 24 Feb 2023 13:16:48 -0700 Subject: [PATCH 0602/1324] bpo-45405 for v3.5.10: Prevent internal configure error when running configure with recent versions of clang. (GH-28845) (GH-31890) --- ...t-internal-configure-error-when-runn.patch | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0003-bpo-45405-Prevent-internal-configure-error-when-runn.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0003-bpo-45405-Prevent-internal-configure-error-when-runn.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0003-bpo-45405-Prevent-internal-configure-error-when-runn.patch new file mode 100644 index 0000000000..ccf192e908 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0003-bpo-45405-Prevent-internal-configure-error-when-runn.patch @@ -0,0 +1,86 @@ +From 655f26bb742d6bd32c388e9fea14b64eb25fd4de Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Tue, 15 Mar 2022 03:18:39 -0400 +Subject: [PATCH] bpo-45405: Prevent internal configure error when running + configure with recent versions of clang. (GH-28845) (GH-31890) + +Change the configure logic to function properly on macOS when the compiler +outputs a platform triplet for option --print-multiarch. +The Apple Clang included with Xcode 13.3 now supports --print-multiarch +causing configure to fail without this change. + +Co-authored-by: Ned Deily +(cherry picked from commit 9c4766772cda67648184f8ddba546a5fc0167f91) + +Co-authored-by: David Bohman +(cherry picked from commit 720bb456dc711b0776bae837d1f9a0b10c28ddf2) +--- + .../next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst | 2 ++ + configure | 8 +++++--- + configure.ac | 8 +++++--- + 3 files changed, 12 insertions(+), 6 deletions(-) + create mode 100644 Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst + +diff --git a/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +new file mode 100644 +index 0000000000..13c93d1b8a +--- /dev/null ++++ b/Misc/NEWS.d/next/Build/2021-10-11-16-27-38.bpo-45405.iSfdW5.rst +@@ -0,0 +1,2 @@ ++Prevent ``internal configure error`` when running ``configure`` ++with recent versions of clang. Patch by David Bohman. +diff --git a/configure b/configure +index fb0a499145..67e6e69b5f 100755 +--- a/configure ++++ b/configure +@@ -5203,9 +5203,6 @@ $as_echo "$as_me: + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +- +- + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the platform triplet based on compiler characteristics" >&5 + $as_echo_n "checking for the platform triplet based on compiler characteristics... " >&6; } + cat >> conftest.c <&6; } + fi + rm -f conftest.c conftest.out + ++if test x$PLATFORM_TRIPLET != xdarwin; then ++ MULTIARCH=$($CC --print-multiarch 2>/dev/null) ++fi ++ ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + as_fn_error $? "internal configure error for the platform triplet, please file a bug report" "$LINENO" 5 +diff --git a/configure.ac b/configure.ac +index d86dad9a7c..468ad6070f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -747,9 +747,6 @@ then + fi + + +-MULTIARCH=$($CC --print-multiarch 2>/dev/null) +-AC_SUBST(MULTIARCH) +- + AC_MSG_CHECKING([for the platform triplet based on compiler characteristics]) + cat >> conftest.c </dev/null) ++fi ++AC_SUBST(MULTIARCH) ++ + if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then + if test x$PLATFORM_TRIPLET != x$MULTIARCH; then + AC_MSG_ERROR([internal configure error for the platform triplet, please file a bug report]) +-- +2.32.0 (Apple Git-132) + From 0e80d0725b632d892dc70641227ea7908cf28b1a Mon Sep 17 00:00:00 2001 From: Chaim Halbert Date: Sun, 26 Feb 2023 05:21:03 -0700 Subject: [PATCH 0603/1324] v3.5.10 on macOS13: fix unexpected output of arch on OSX --- .../0004-Detect-arm64-in-configure.patch | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0004-Detect-arm64-in-configure.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0004-Detect-arm64-in-configure.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0004-Detect-arm64-in-configure.patch new file mode 100644 index 0000000000..d87123f7ad --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0004-Detect-arm64-in-configure.patch @@ -0,0 +1,41 @@ +From 002501946bad91a308f37a09204393c172f03c3e Mon Sep 17 00:00:00 2001 +From: Takumi Sueda +Date: Sat, 11 Sep 2021 16:50:14 +0900 +Subject: [PATCH 2/6] Detect arm64 in configure + +--- + configure | 3 +++ + configure.ac | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/configure b/configure +index e39c16eee2..8dc1fc7595 100755 +--- a/configure ++++ b/configure +@@ -9230,6 +9230,9 @@ fi + ppc) + MACOSX_DEFAULT_ARCH="ppc64" + ;; ++ arm64) ++ MACOSX_DEFAULT_ARCH="arm64" ++ ;; + *) + as_fn_error $? "Unexpected output of 'arch' on OSX" "$LINENO" 5 + ;; +diff --git a/configure.ac b/configure.ac +index cf280506bd..34846a7df3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -2435,6 +2435,9 @@ case $ac_sys_system/$ac_sys_release in + ppc) + MACOSX_DEFAULT_ARCH="ppc64" + ;; ++ arm64) ++ MACOSX_DEFAULT_ARCH="arm64" ++ ;; + *) + AC_MSG_ERROR([Unexpected output of 'arch' on OSX]) + ;; +-- +2.30.1 (Apple Git-130) + From b30508f9b887f73a8fa17b4bd51f4ea603e8fad8 Mon Sep 17 00:00:00 2001 From: Chaim Halbert Date: Sun, 26 Feb 2023 05:51:20 -0700 Subject: [PATCH 0604/1324] bpo-41100 for v3.5.10: fix implicit declaration of function sendfile --- ...port-macOS-11-when-building-GH-21113.patch | 48 +++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 37 ++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch new file mode 100644 index 0000000000..9d48c81dbf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0005-BPO-41100-Support-macOS-11-when-building-GH-21113.patch @@ -0,0 +1,48 @@ +From 8ea6353f60625c96ce96588c70ff24a77f8c71f9 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 25 Jun 2020 16:55:48 +0200 +Subject: [PATCH] BPO-41100: Support macOS 11 when building (GH-21113) + +--- + Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst | 1 + + configure | 2 +- + configure.ac | 2 +- + 3 files changed, 3 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst + +diff --git a/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst +new file mode 100644 +index 0000000000..ded66b567a +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2020-06-24-13-51-57.bpo-41100.mcHdc5.rst +@@ -0,0 +1 @@ ++Support macOS 11 when building. +diff --git a/configure b/configure +index c51f396824..5024860ca4 100755 +--- a/configure ++++ b/configure +@@ -3375,7 +3375,7 @@ $as_echo "#define _BSD_SOURCE 1" >>confdefs.h + # has no effect, don't bother defining them + Darwin/[6789].*) + define_xopen_source=no;; +- Darwin/1[0-9].*) ++ Darwin/[12][0-9].*) + define_xopen_source=no;; + # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but + # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined +diff --git a/configure.ac b/configure.ac +index 70deefb6b9..5a3e340aa3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -495,7 +495,7 @@ case $ac_sys_system/$ac_sys_release in + # has no effect, don't bother defining them + Darwin/@<:@6789@:>@.*) + define_xopen_source=no;; +- Darwin/1@<:@0-9@:>@.*) ++ Darwin/@<:@[12]@:>@@<:@0-9@:>@.*) + define_xopen_source=no;; + # On AIX 4 and 5.1, mbstate_t is defined only when _XOPEN_SOURCE == 500 but + # used in wcsnrtombs() and mbsnrtowcs() even if _XOPEN_SOURCE is not defined +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..12022a4f47 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0006-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,37 @@ +From 604d95e235d86465b8c17f02095edcaf18464d4c Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index 108b76efa8..35ce429f60 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.30.1 (Apple Git-130) + From 3bfc97ad29b3b602c525e18e3418398b18de6038 Mon Sep 17 00:00:00 2001 From: Chaim Halbert Date: Sun, 26 Feb 2023 08:36:51 -0700 Subject: [PATCH 0605/1324] bpo-36231 for v3.5.10: fix Unsupported MacOS X CPU type in ffi.h (#2633) --- ...system-libffi-patch-for-arm64-macOS-.patch | 132 ++++++++++++++++++ ...t-building-on-macOS-without-usr-incl.patch | 93 ++++++++++++ 2 files changed, 225 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0007-Port-ctypes-and-system-libffi-patch-for-arm64-macOS-.patch create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0007-Port-ctypes-and-system-libffi-patch-for-arm64-macOS-.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0007-Port-ctypes-and-system-libffi-patch-for-arm64-macOS-.patch new file mode 100644 index 0000000000..e5876b1fe2 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0007-Port-ctypes-and-system-libffi-patch-for-arm64-macOS-.patch @@ -0,0 +1,132 @@ +From 409b4ecef88643996ce00482b650c0246a977a4b Mon Sep 17 00:00:00 2001 +From: Chaim Halbert +Date: Sun, 26 Feb 2023 06:21:54 -0700 +Subject: [PATCH] Port ctypes and system libffi patch for arm64/macOS 10.15+ to + Python 3.5.10 + +This backports the following ctypes and libffi pyenv patch for Python +3.6.15 to Python 3.5.10: + +* `0004-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch` + +This patch enables use of system libffi (fixing a broken `ctypes` module +on arm64 targets) and enables calling variadic functions on arm64. +--- + setup.py | 65 +++++++++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 50 insertions(+), 15 deletions(-) + +diff --git a/setup.py b/setup.py +index 2944c9dd6f..ab8065866f 100644 +--- a/setup.py ++++ b/setup.py +@@ -73,6 +73,13 @@ def macosx_sdk_root(): + sysroot = m.group(1) + return sysroot + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -81,6 +88,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1939,7 +1953,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -1986,19 +2004,29 @@ class PyBuildExt(build_ext): + libraries=math_libs) + self.extensions.extend([ext, ext_test]) + +- if not '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): +- return ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None + + if host_platform == 'darwin': +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ if not self.use_system_libffi: ++ return ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ elif '--without-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS"): ++ return ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + with open(ffi_h) as f: + for line in f: + line = line.strip() +@@ -2009,15 +2037,22 @@ class PyBuildExt(build_ext): + ffi_inc = None + print('Header file {} does not define LIBFFI_H or ' + 'ffi_wrapper_h'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: ++ if ffi_lib is None and ffi_inc is not None: + for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.39.2 + diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch new file mode 100644 index 0000000000..f95099a134 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch @@ -0,0 +1,93 @@ +From c7302116573d853d3181133477d9d0e4d4d3abfd Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Tue, 18 Jun 2019 16:28:13 -0400 +Subject: [PATCH] bpo-36231: Support building on macOS without /usr/include + (GH-13773) (GH-14208) + +--- + .../2019-06-03-05-49-49.bpo-36231.RfmW_p.rst | 3 ++ + setup.py | 53 ++++++++++++++++--- + 2 files changed, 49 insertions(+), 7 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst + +diff --git a/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst b/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst +new file mode 100644 +index 0000000000..c82e54c12c +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2019-06-03-05-49-49.bpo-36231.RfmW_p.rst +@@ -0,0 +1,3 @@ ++Support building Python on macOS without /usr/include installed. As of macOS ++10.14, system header files are only available within an SDK provided by ++either the Command Line Tools or the Xcode app. +diff --git a/setup.py b/setup.py +index bcc4bfa89d..5e0cd02430 100644 +--- a/setup.py ++++ b/setup.py +@@ -90,18 +90,57 @@ def sysroot_paths(make_vars, subdirs): + break + return dirs + ++MACOS_SDK_ROOT = None ++ + def macosx_sdk_root(): ++ """Return the directory of the current macOS SDK. ++ ++ If no SDK was explicitly configured, call the compiler to find which ++ include files paths are being searched by default. Use '/' if the ++ compiler is searching /usr/include (meaning system header files are ++ installed) or use the root of an SDK if that is being searched. ++ (The SDK may be supplied via Xcode or via the Command Line Tools). ++ The SDK paths used by Apple-supplied tool chains depend on the ++ setting of various variables; see the xcrun man page for more info. + """ +- Return the directory of the current OSX SDK, +- or '/' if no SDK was specified. +- """ ++ global MACOS_SDK_ROOT ++ ++ # If already called, return cached result. ++ if MACOS_SDK_ROOT: ++ return MACOS_SDK_ROOT ++ + cflags = sysconfig.get_config_var('CFLAGS') + m = re.search(r'-isysroot\s+(\S+)', cflags) +- if m is None: +- sysroot = '/' ++ if m is not None: ++ MACOS_SDK_ROOT = m.group(1) + else: +- sysroot = m.group(1) +- return sysroot ++ MACOS_SDK_ROOT = '/' ++ cc = sysconfig.get_config_var('CC') ++ tmpfile = '/tmp/setup_sdk_root.%d' % os.getpid() ++ try: ++ os.unlink(tmpfile) ++ except: ++ pass ++ ret = os.system('%s -E -v - %s 1>/dev/null' % (cc, tmpfile)) ++ in_incdirs = False ++ try: ++ if ret >> 8 == 0: ++ with open(tmpfile) as fp: ++ for line in fp.readlines(): ++ if line.startswith("#include <...>"): ++ in_incdirs = True ++ elif line.startswith("End of search list"): ++ in_incdirs = False ++ elif in_incdirs: ++ line = line.strip() ++ if line == '/usr/include': ++ MACOS_SDK_ROOT = '/' ++ elif line.endswith(".sdk/usr/include"): ++ MACOS_SDK_ROOT = line[:-12] ++ finally: ++ os.unlink(tmpfile) ++ ++ return MACOS_SDK_ROOT + + def is_macosx_sdk_path(path): + """ +-- +2.30.1 (Apple Git-130) + From ecab7b0d17e7100ccb30ad0e006f507394bb0193 Mon Sep 17 00:00:00 2001 From: Michael Rienstra Date: Mon, 27 Feb 2023 16:26:18 -0800 Subject: [PATCH 0606/1324] README: clarify behavior of `pyenv latest` --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6a0a5231b9..505f842bc4 100644 --- a/README.md +++ b/README.md @@ -416,7 +416,7 @@ please visit the wiki page about All Pyenv subcommands except `uninstall` automatically resolve full prefixes to the latest version in the corresponding version line. -`pyenv install` picks the latest known version while other subcommands -- the latest installed version. +`pyenv install` picks the latest known version, while other subcommands pick the latest installed version. E.g. to install and then switch to the latest 3.10 release: @@ -425,8 +425,7 @@ pyenv install 3.10 pyenv global 3.10 ``` -You can run [`pyenv latest `](COMMANDS.md#pyenv-latest) to see -what a specific prefix would be resolved to. +You can run [`pyenv latest -k `](COMMANDS.md#pyenv-latest) to see how `pyenv install` would resolve a specific prefix, or [`pyenv latest `](COMMANDS.md#pyenv-latest) to see how other subcommands would resolve it. See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details. From 3226a1870b2bc97284b7b96d3949b52d5efa2c80 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 1 Mar 2023 08:25:12 +0300 Subject: [PATCH 0607/1324] Update CHANGELOG.md --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0334600b46..f42b7453c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release 2.3.14 + +* Fix indentation by @rafrafek in https://github.com/pyenv/pyenv/pull/2620 +* Support for "BusyBox version" of "head" by @schuellerf in https://github.com/pyenv/pyenv/pull/2629 +* bpo-27987 for v3.5.10 and v3.6.15: align by 16bytes on 64bit platforms by @chaimleib in https://github.com/pyenv/pyenv/pull/2630 +* bpo-36231 for v3.5.10: fix Unsupported MacOS X CPU type in ffi.h by @chaimleib in https://github.com/pyenv/pyenv/pull/2633 +* README: clarify behavior of `pyenv latest` by @mrienstra in https://github.com/pyenv/pyenv/pull/2634 + ## Release 2.3.13 * Fix pyenv-latest to ignore virtualenvs by @native-api in https://github.com/pyenv/pyenv/pull/2608 From 904dd5f828fb4b4eccd643270834d38fd3764261 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 1 Mar 2023 08:25:31 +0300 Subject: [PATCH 0608/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ab773355b6..fa7ed0c809 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.13" +version="2.3.14" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From bcbdadf10db37eeb9661749ab969eb537d090b2f Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Wed, 1 Mar 2023 22:49:44 -0500 Subject: [PATCH 0609/1324] Add miniconda 23.1.0-1 (#2635) --- .../python-build/miniconda3-3.10-23.1.0-1 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.7-23.1.0-1 | 25 +++++++++++++++++ .../python-build/miniconda3-3.8-23.1.0-1 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.1.0-1 | 28 +++++++++++++++++++ 4 files changed, 109 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.1.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.7-23.1.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.1.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.1.0-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.1.0-1 b/plugins/python-build/share/python-build/miniconda3-3.10-23.1.0-1 new file mode 100644 index 0000000000..1b4cbea439 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.1.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-aarch64.sh#80d6c306b015e1e3b01ea59dc66c676a81fa30279bc2da1f180a7ef7b2191d6e" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-ppc64le.sh#9ca8077a0af8845fc574a120ef8d68690d7a9862d354a2a4468de5d2196f406c" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-s390x.sh#0d00a9d34c5fd17d116bf4e7c893b7441a67c7a25416ede90289d87216104a97" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-Linux-x86_64.sh#32d73e1bc33fda089d7cd9ef4c1be542616bd8e437d1f77afeeaf7afdb019787" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.1.0-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-MacOSX-arm64.sh#cc5bcf95d5db0f7f454b2d800d52da8b70563f8454d529e7ac2da9725650eb27" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.1.0-1-MacOSX-x86_64.sh#bfb81814e16eb450b1dbde7b4ecb9ebc5186834cb4ede5926c699762ca69953b" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.7-23.1.0-1 b/plugins/python-build/share/python-build/miniconda3-3.7-23.1.0-1 new file mode 100644 index 0000000000..f3fbfbf692 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.7-23.1.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py37_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-aarch64.sh#31c1d635fae931b7c0687018cc87e918e8098ed5dd5e76a658e10c57e00ef864" "miniconda" verify_py37 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py37_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-ppc64le.sh#d2de534bfa46aa34ef0b115a309de7e8a681683af65faf86bcee6a00460f07be" "miniconda" verify_py37 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py37_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-s390x.sh#72a8fa9aca5abaf99771110746b1345a33d390c9b29a7b4daffe6a2ff00f2366" "miniconda" verify_py37 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py37_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-Linux-x86_64.sh#fc96109ea96493e31f70abbc5cae58e80634480c0686ab46924549ac41176812" "miniconda" verify_py37 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py37_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py37_23.1.0-1-MacOSX-x86_64.sh#bdfb2f01c0a3917bf258daffc65b69bfe07e29753be624aaf9cbda5ba02f43f4" "miniconda" verify_py37 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.1.0-1 b/plugins/python-build/share/python-build/miniconda3-3.8-23.1.0-1 new file mode 100644 index 0000000000..ea7671749d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.1.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-aarch64.sh#10ea91cc579a64a3a88727119ac3f55839562f55118458b82824b544bc74f90d" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-ppc64le.sh#d89faee2d839c7e8a2c96f3ca60295c08e837c2f134f6bb9e9e21b707babedc2" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-s390x.sh#3d1e06eddaef0976530c54ed7dda80df62705c16513634e58f7d1c4567227b9e" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-Linux-x86_64.sh#640b7dceee6fad10cb7e7b54667b2945c4d6f57625d062b2b0952b7f3a908ab7" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.1.0-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-MacOSX-arm64.sh#8dfab7797151a31b16c174da9a5bc09529d5859f21e77f0655ea9b18209cc926" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.1.0-1-MacOSX-x86_64.sh#5d789cda38b23245ffed6b88c60b7479d984bbf20e3b70d66cd150f04a9c25c5" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.1.0-1 b/plugins/python-build/share/python-build/miniconda3-3.9-23.1.0-1 new file mode 100644 index 0000000000..9e2f8ee066 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.1.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.1.0-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-aarch64.sh#5e67416a574c49e19dc21d5b9ed586400863a685bc4e34b4d933ea8c7c1ed2da" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.1.0-1-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-ppc64le.sh#cf5d7cad2b0eb260903b3661ee3fa822eecb25cf3c9b14bc9de10d72963d3d5a" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.1.0-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-s390x.sh#5159322f15d9e2b22b3cf90fe88b336d84f62189178c872a9288a339d86f5d20" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.1.0-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-Linux-x86_64.sh#5dc619babc1d19d6688617966251a38d245cb93d69066ccde9a013e1ebb5bf18" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.1.0-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-MacOSX-arm64.sh#a7133a703e41ea0b1738196fb03f72b22250327adea94521c9dd6100c304dc63" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.1.0-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.1.0-1-MacOSX-x86_64.sh#d78eaac94f85bacbc704f629bdfbc2cd42a72dc3a4fd383a3bfc80997495320e" "miniconda" verify_py39 + ;; +* ) + { 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 From e8a4b54231e1b32622a8288e8c78390c3a030d27 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 2 Mar 2023 11:24:05 +0300 Subject: [PATCH 0610/1324] CI: ubuntu-build: Fix 404s on `apt install` --- .github/workflows/ubuntu_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index cb701ff146..f43f5410ef 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -24,7 +24,7 @@ jobs: # python-version: ${{ matrix.python-version }} # ... but in the repo, we want to test pyenv builds on Ubuntu - run: | - sudo apt-get install -yq make build-essential libssl-dev zlib1g-dev \ + sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev # https://github.com/pyenv/pyenv#installation From 6052caa038ff0184b7cd02aa0add565d0c487ceb Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 2 Mar 2023 11:27:23 +0300 Subject: [PATCH 0611/1324] README: extended support for 3.5.10 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 505f842bc4..3d46c5b6ad 100644 --- a/README.md +++ b/README.md @@ -438,7 +438,7 @@ it's safe to assume that they will continue working until there are further inco in a later version of those environments. * *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 -* *3.6.15* : MacOS 11+ and XCode 13.3 +* *3.5.10, 3.6.15* : MacOS 11+ and XCode 13.3 * *2.7.18* : MacOS 10.15+ and Apple Silicon From ad15c75e0ea76f339259c4a23cfae2be0eeb10db Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Wed, 8 Mar 2023 11:02:18 +0530 Subject: [PATCH 0612/1324] Add CPython 3.12.0a6 (#2638) --- .../python-build/share/python-build/{3.12.0a5 => 3.12.0a6} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0a5 => 3.12.0a6} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0a5 b/plugins/python-build/share/python-build/3.12.0a6 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0a5 rename to plugins/python-build/share/python-build/3.12.0a6 index ec808b1e6b..6723dceca2 100644 --- a/plugins/python-build/share/python-build/3.12.0a5 +++ b/plugins/python-build/share/python-build/3.12.0a6 @@ -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.0a5" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a5.tar.xz#d66ef7a342fe3a356f9cee3bb97adc1e5fb4840f6b6cff7de0ff7dd495f8323b" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a6" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a6.tar.xz#298440252c4b6b4e120e014c15d729eaf8ab779300dcca61d422c537e4e85eca" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0a5" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a5.tgz#53bea5094887bba2fc4f429fa8abb4976b5c7cfe70d41923cf6aff0b4854c666" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a6" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a6.tgz#9301a243da5a1982133ddf804b76ee1fe11aa98e2d3dfb09f095485eaa50edfd" standard verify_py312 copy_python_gdb ensurepip fi From f507d080647490d861bd7c8829ec9fb75a9beff1 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 10 Mar 2023 09:03:23 +0300 Subject: [PATCH 0613/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index fa7ed0c809..f3f37b024a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.14" +version="2.3.15" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 6bb75b3ba79a7f9b6c2eae7fe2d7521e315cc04a Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 10 Mar 2023 09:04:21 +0300 Subject: [PATCH 0614/1324] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f42b7453c2..4da0d7e42f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release 2.3.15 + +* Add miniconda 23.1.0-1 by @aphedges in https://github.com/pyenv/pyenv/pull/2635 +* Add CPython 3.12.0a6 by @saaketp in https://github.com/pyenv/pyenv/pull/2638 + ## Release 2.3.14 * Fix indentation by @rafrafek in https://github.com/pyenv/pyenv/pull/2620 From 4ef81b5c7a32d8f10cd288876d69f6e44047c14d Mon Sep 17 00:00:00 2001 From: Justin Lecher Date: Fri, 10 Mar 2023 16:38:06 +0000 Subject: [PATCH 0615/1324] Add Miniforge3-22.11.1-4 (#2642) --- .../share/python-build/miniforge3-22.11.1-4 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-4 diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-4 b/plugins/python-build/share/python-build/miniforge3-22.11.1-4 new file mode 100644 index 0000000000..f87097a015 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.11.1-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.11.1-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-Linux-aarch64.sh#2beb7624679016dcd4758ffb9b18efe4ba79af95e2357a606a4945f8ee64dbe6" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.11.1-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-Linux-ppc64le.sh#d689249d97e170d4dedd54291eb6680243ef83b39900ecb1d6df0679c70434d4" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.11.1-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-Linux-x86_64.sh#737d1b2666528416706a916b355c43ff58deeaebf5ca906bc1a551e96c73ab8e" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.11.1-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-MacOSX-arm64.sh#7be6b8b25eb328d6df048a7b533514097a6d30ff348d0f28671059c98c4c31aa" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.11.1-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Miniforge3-22.11.1-4-MacOSX-x86_64.sh#d3bd39dc391552a037a95230786c026165c042499fa365aae0da4002d9530731" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From be2bd5f03d94adda063d2ce4e7646c9844b9f05a Mon Sep 17 00:00:00 2001 From: Petrov Date: Sun, 19 Mar 2023 08:14:59 +0300 Subject: [PATCH 0616/1324] Create anaconda3-2023.03 --- .../share/python-build/anaconda3-2023.03 | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.03 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.03 b/plugins/python-build/share/python-build/anaconda3-2023.03 new file mode 100644 index 0000000000..d22612fee7 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.03 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.03-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-aarch64.sh#SHA1" "anaconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.03-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-ppc64le.sh#SHA1" "anaconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.03-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-s390x.sh#SHA1" "anaconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.03-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh#SHA1" "anaconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.03-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-arm64.sh#SHA1" "anaconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.03-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-x86_64.sh#SHA1" "anaconda" verify_py310 + ;; +* ) + { 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 From ddd37eb823952ca73344a3d6ce5726e4fc5a29aa Mon Sep 17 00:00:00 2001 From: Petrov Date: Thu, 23 Mar 2023 13:35:50 +0300 Subject: [PATCH 0617/1324] Add hashes --- .../share/python-build/anaconda3-2023.03 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/share/python-build/anaconda3-2023.03 b/plugins/python-build/share/python-build/anaconda3-2023.03 index d22612fee7..0fc9146972 100644 --- a/plugins/python-build/share/python-build/anaconda3-2023.03 +++ b/plugins/python-build/share/python-build/anaconda3-2023.03 @@ -1,21 +1,21 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Anaconda3-2023.03-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-aarch64.sh#SHA1" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-aarch64.sh#2EDA8F6D0FCEBDA3526487293C3CE4B0BCAF5464" "anaconda" verify_py310 ;; "Linux-ppc64le" ) - install_script "Anaconda3-2023.03-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-ppc64le.sh#SHA1" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-ppc64le.sh#6FFEAE344D88925641BAE5F07D96A9829E49FC97" "anaconda" verify_py310 ;; "Linux-s390x" ) - install_script "Anaconda3-2023.03-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-s390x.sh#SHA1" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-s390x.sh#6A89BAA462B8594B865DAF6A09FC4D268E5273FF" "anaconda" verify_py310 ;; "Linux-x86_64" ) - install_script "Anaconda3-2023.03-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh#SHA1" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh#9B59B76805D5C95D0C9802E2FDB74253A3AF6D87" "anaconda" verify_py310 ;; "MacOSX-arm64" ) - install_script "Anaconda3-2023.03-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-arm64.sh#SHA1" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-arm64.sh#075F7B446BF85E6D9EC653F8BCB21978B3C62C4B" "anaconda" verify_py310 ;; "MacOSX-x86_64" ) - install_script "Anaconda3-2023.03-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-x86_64.sh#SHA1" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-x86_64.sh#88DD27921CE836F1E0805B2A3E2DACF706B92246" "anaconda" verify_py310 ;; * ) { echo From e28d747b83bc775b6c5e154b7e478d2e2421ae2c Mon Sep 17 00:00:00 2001 From: Petrov Date: Thu, 23 Mar 2023 13:41:02 +0300 Subject: [PATCH 0618/1324] set hashes to sha-256 --- .../share/python-build/anaconda3-2023.03 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/share/python-build/anaconda3-2023.03 b/plugins/python-build/share/python-build/anaconda3-2023.03 index 0fc9146972..7fc6f2bd81 100644 --- a/plugins/python-build/share/python-build/anaconda3-2023.03 +++ b/plugins/python-build/share/python-build/anaconda3-2023.03 @@ -1,21 +1,21 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Anaconda3-2023.03-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-aarch64.sh#2EDA8F6D0FCEBDA3526487293C3CE4B0BCAF5464" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-aarch64.sh#613797154d9383355677f7dfee10db32b2c327cbedabddcb303598f242c79883" "anaconda" verify_py310 ;; "Linux-ppc64le" ) - install_script "Anaconda3-2023.03-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-ppc64le.sh#6FFEAE344D88925641BAE5F07D96A9829E49FC97" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-ppc64le.sh#eafeaccca96f60ebb0aa0052d9baac8eaa2ee422358ee35b12f60f37e8a3ebb2" "anaconda" verify_py310 ;; "Linux-s390x" ) - install_script "Anaconda3-2023.03-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-s390x.sh#6A89BAA462B8594B865DAF6A09FC4D268E5273FF" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-s390x.sh#2648337081c3ce4b760457c5f00fb768ecd7d1d0957051ef5252ab380bb78233" "anaconda" verify_py310 ;; "Linux-x86_64" ) - install_script "Anaconda3-2023.03-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh#9B59B76805D5C95D0C9802E2FDB74253A3AF6D87" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh#19737d5c27b23a1d8740c5cb2414bf6253184ce745d0a912bb235a212a15e075" "anaconda" verify_py310 ;; "MacOSX-arm64" ) - install_script "Anaconda3-2023.03-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-arm64.sh#075F7B446BF85E6D9EC653F8BCB21978B3C62C4B" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-arm64.sh#d27ee5432438972e90548e3dfa89490c5dc38a723f4dcd53061f0bd9d53b1bd0" "anaconda" verify_py310 ;; "MacOSX-x86_64" ) - install_script "Anaconda3-2023.03-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-x86_64.sh#88DD27921CE836F1E0805B2A3E2DACF706B92246" "anaconda" verify_py310 + install_script "Anaconda3-2023.03-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-MacOSX-x86_64.sh#cc37b1eb85bdc2ade3f95201a746cdc63ee4fbfae48ee9d0c7a3cf319562452d" "anaconda" verify_py310 ;; * ) { echo From f51d3dcb471751abf88226a946fa1f8dd79aec14 Mon Sep 17 00:00:00 2001 From: Petrov Date: Fri, 24 Mar 2023 08:26:05 +0300 Subject: [PATCH 0619/1324] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4da0d7e42f..d6a9898ae3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release 2.3.16 + +* Add Miniforge3-22.11.1-4 by @jlec in https://github.com/pyenv/pyenv/pull/2642 +* Add Anaconda3-2023.03 by @anton-petrov in https://github.com/pyenv/pyenv/pull/2648 + ## Release 2.3.15 * Add miniconda 23.1.0-1 by @aphedges in https://github.com/pyenv/pyenv/pull/2635 From 9fad1f46c50526df1fa3a5fd8188e785bb530b9c Mon Sep 17 00:00:00 2001 From: Petrov Date: Fri, 24 Mar 2023 08:26:20 +0300 Subject: [PATCH 0620/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f3f37b024a..dab311332d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.15" +version="2.3.16" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From b1ee6c93c45869623c0b15b3489cfe05894c4735 Mon Sep 17 00:00:00 2001 From: Shengqi Chen Date: Tue, 28 Mar 2023 16:25:27 +0800 Subject: [PATCH 0621/1324] Try locate `readlink` first in pyenv-hooks, fix #2654 (#2655) * Remove all use of `greadlink`, fix #2654 Signed-off-by: Harry Chen * revert greadlink back in tests --------- Signed-off-by: Harry Chen Co-authored-by: Anton Petrov --- libexec/pyenv | 2 +- libexec/pyenv-hooks | 2 +- libexec/pyenv-versions | 2 +- plugins/python-build/bin/python-build | 7 ++++++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index 35161cf296..fdea4911fb 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -29,7 +29,7 @@ if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev else [ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin" - READLINK=$(type -P greadlink readlink | head -n1) + READLINK=$(type -P readlink) [ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?" resolve_link() { diff --git a/libexec/pyenv-hooks b/libexec/pyenv-hooks index 7d620d4c0b..8e55b07931 100755 --- a/libexec/pyenv-hooks +++ b/libexec/pyenv-hooks @@ -26,7 +26,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi -READLINK=$(type -P greadlink readlink | head -n1) +READLINK=$(type -P readlink) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 71f771906f..93f5b13c13 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -34,7 +34,7 @@ if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; th exit 1 fi - READLINK=$(type -P greadlink readlink | head -n1) + READLINK=$(type -P readlink) if [ -z "$READLINK" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f7f525c1cd..2dc6d068d2 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -56,9 +56,14 @@ lib() { } lib "$1" +READLINK=$(type -P readlink) +if [ -z "$READLINK" ]; then + echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 + exit 1 +fi resolve_link() { - $(type -P greadlink readlink | head -n1) "$1" + $READLINK "$1" } abs_dirname() { From b613a4abeb1da1f20eef91be4cef3957c8acfddc Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Tue, 4 Apr 2023 20:56:24 -0600 Subject: [PATCH 0622/1324] Add CPython 3.12.0a7 (#2668) --- .../python-build/share/python-build/{3.12.0a6 => 3.12.0a7} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0a6 => 3.12.0a7} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0a6 b/plugins/python-build/share/python-build/3.12.0a7 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0a6 rename to plugins/python-build/share/python-build/3.12.0a7 index 6723dceca2..2ca790f6e0 100644 --- a/plugins/python-build/share/python-build/3.12.0a6 +++ b/plugins/python-build/share/python-build/3.12.0a7 @@ -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.0a6" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a6.tar.xz#298440252c4b6b4e120e014c15d729eaf8ab779300dcca61d422c537e4e85eca" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a7" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a7.tar.xz#a19ae4dc5afebdff5e1312346f160062a11e0dbd5f9e68a6a981ea37b21608e1" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0a6" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a6.tgz#9301a243da5a1982133ddf804b76ee1fe11aa98e2d3dfb09f095485eaa50edfd" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0a7" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a7.tgz#86d288766153193706e545cc98f73ea8ef1a9cb057608cfdecbd89190b796cf6" standard verify_py312 copy_python_gdb ensurepip fi From fc616a0aee8f3068225f00d43644dd9526588b2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mirek=20D=C5=82ugosz?= Date: Wed, 5 Apr 2023 15:51:13 +0200 Subject: [PATCH 0623/1324] Add CPython 3.10.11 --- plugins/python-build/share/python-build/3.10.11 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.11 diff --git a/plugins/python-build/share/python-build/3.10.11 b/plugins/python-build/share/python-build/3.10.11 new file mode 100644 index 0000000000..534ce07616 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.11 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tar.xz#3c3bc3048303721c904a03eb8326b631e921f11cc3be2988456a42f115daf04c" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tar.xz#3c3bc3048303721c904a03eb8326b631e921f11cc3be2988456a42f115daf04c" standard verify_py310 copy_python_gdb ensurepip +fi From be4939604e730bcb24defc3d36295f8d1969911f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mirek=20D=C5=82ugosz?= Date: Wed, 5 Apr 2023 15:52:01 +0200 Subject: [PATCH 0624/1324] Add CPython 3.11.3 --- plugins/python-build/share/python-build/3.11.3 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.3 diff --git a/plugins/python-build/share/python-build/3.11.3 b/plugins/python-build/share/python-build/3.11.3 new file mode 100644 index 0000000000..de94596374 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.3 @@ -0,0 +1,10 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz#8a5db99c961a7ecf27c75956189c9602c968751f11dbeae2b900dbff1c085b5e" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz#8a5db99c961a7ecf27c75956189c9602c968751f11dbeae2b900dbff1c085b5e" standard verify_py311 copy_python_gdb ensurepip +fi From bee178a95defc023b4a52b3759841875416bd8f3 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 Apr 2023 06:58:33 +0300 Subject: [PATCH 0625/1324] 2.3.17 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d6a9898ae3..ce99b7d1f6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release 2.3.17 + +* Try locate `readlink` first in pyenv-hooks, fix #2654 by @Harry-Chen in https://github.com/pyenv/pyenv/pull/2655 +* Add CPython 3.12.0a7 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2668 +* Add CPython 3.11.3 by @mirekdlugosz in https://github.com/pyenv/pyenv/pull/2671 +* Add CPython 3.10.11 by @mirekdlugosz in https://github.com/pyenv/pyenv/pull/2670 + ## Release 2.3.16 * Add Miniforge3-22.11.1-4 by @jlec in https://github.com/pyenv/pyenv/pull/2642 From 9a4f9c2511f39701cb8e3af1e6809be28210c3b9 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 6 Apr 2023 06:58:52 +0300 Subject: [PATCH 0626/1324] 2.3.17 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index dab311332d..227f04b4a1 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.16" +version="2.3.17" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 5a8dbcf1435a9ac431995c19037afb62e0cae307 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 7 Apr 2023 19:06:21 +0300 Subject: [PATCH 0627/1324] Document using and writing plugins --- README.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3d46c5b6ad..3ec6bc03ff 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Upgrading with Homebrew](#upgrading-with-homebrew) * [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout) * [Uninstalling pyenv](#uninstalling-pyenv) +* [Pyenv plugins](#pyenv-plugins) * [Advanced Configuration](#advanced-configuration) * [Using Pyenv without shims](#using-pyenv-without-shims) * [Environment variables](#environment-variables) @@ -567,6 +568,19 @@ uninstall from the system. brew uninstall pyenv ``` + +## Pyenv plugins + +Pyenv provides a simple, flexible and maintainable way to extend and customize its functionalty with plugins -- +as simple as creating a plugin directory and dropping a shell script on a certain subpath of it +with whatever extra logic you need to be run at certain moments. + +See [_Plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Plugins) on how to install and use plugins +as well as a catalog of some useful existing plugins for common needs. + +See [_Authoring plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) on writing your own plugins. + + ## Advanced Configuration Skip this section unless you must know what every line in your shell @@ -659,7 +673,6 @@ for environment variables that can be used to customize the build. ---- - ## Development The pyenv source code is [hosted on From 20189ff06f76fb1eec7b149ad6f86134057c809c Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 8 Apr 2023 01:12:09 +0300 Subject: [PATCH 0628/1324] Fix not showing symlink contents for unselected versions in `pyenv versions` (#2675) --- libexec/pyenv-versions | 2 +- test/versions.bats | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 93f5b13c13..0dd57dec75 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -121,7 +121,7 @@ print_version() { elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))" else - echo "${miss_prefix}$1" + echo "${miss_prefix}${version_repr}" fi num_versions=$((num_versions + 1)) } diff --git a/test/versions.bats b/test/versions.bats index ce101d307e..895e550f7d 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -238,11 +238,13 @@ OUT @test "non-bare output shows symlink contents" { create_version "1.9.0" - create_alias "link" "foo/bar" + create_alias "link" "1.9.0" run pyenv-versions - assert_success < foo/bar + link --> 1.9.0 OUT } From 777089466dd6aae2fe578bb4846a817674db4e76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mirek=20D=C5=82ugosz?= Date: Tue, 11 Apr 2023 09:15:16 +0200 Subject: [PATCH 0629/1324] Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3 --- plugins/python-build/share/python-build/3.10.11 | 2 +- plugins/python-build/share/python-build/3.11.3 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10.11 b/plugins/python-build/share/python-build/3.10.11 index 534ce07616..2c84bd8fe4 100644 --- a/plugins/python-build/share/python-build/3.10.11 +++ b/plugins/python-build/share/python-build/3.10.11 @@ -5,5 +5,5 @@ install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1. if has_tar_xz_support; then install_package "Python-3.10.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tar.xz#3c3bc3048303721c904a03eb8326b631e921f11cc3be2988456a42f115daf04c" standard verify_py310 copy_python_gdb ensurepip else - install_package "Python-3.10.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tar.xz#3c3bc3048303721c904a03eb8326b631e921f11cc3be2988456a42f115daf04c" standard verify_py310 copy_python_gdb ensurepip + install_package "Python-3.10.11" "https://www.python.org/ftp/python/3.10.11/Python-3.10.11.tgz#f3db31b668efa983508bd67b5712898aa4247899a346f2eb745734699ccd3859" standard verify_py310 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.11.3 b/plugins/python-build/share/python-build/3.11.3 index de94596374..f9fd9d906e 100644 --- a/plugins/python-build/share/python-build/3.11.3 +++ b/plugins/python-build/share/python-build/3.11.3 @@ -6,5 +6,5 @@ install_package "readline-8.2" "https://ftpmirror.gnu.org/readline/readline-8.2. if has_tar_xz_support; then install_package "Python-3.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz#8a5db99c961a7ecf27c75956189c9602c968751f11dbeae2b900dbff1c085b5e" standard verify_py311 copy_python_gdb ensurepip else - install_package "Python-3.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tar.xz#8a5db99c961a7ecf27c75956189c9602c968751f11dbeae2b900dbff1c085b5e" standard verify_py311 copy_python_gdb ensurepip + install_package "Python-3.11.3" "https://www.python.org/ftp/python/3.11.3/Python-3.11.3.tgz#1a79f3df32265d9e6625f1a0b31c28eb1594df911403d11f3320ee1da1b3e048" standard verify_py311 copy_python_gdb ensurepip fi From a57e0b5019c1d5d08d3311306bde3cf6c58997a2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 16 Apr 2023 20:11:08 +0300 Subject: [PATCH 0630/1324] README: move troubleshooting note higher --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3ec6bc03ff..bd1c6f2b67 100644 --- a/README.md +++ b/README.md @@ -402,15 +402,15 @@ You can pass options to Python's `configure` and compiler flags to customize the see [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables) for details. -**NOTE:** If you'd like a faster interpreter at the cost of longer build times, -see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance). +**NOTE:** If you are having trouble installing a Python version, +please visit the wiki page about +[Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). **NOTE:** If you want to use proxy for download, please set the `http_proxy` and `https_proxy` environment variables. -**NOTE:** If you are having trouble installing a Python version, -please visit the wiki page about -[Common Build Problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). +**NOTE:** If you'd like a faster interpreter at the cost of longer build times, +see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance). #### Prefix auto-resolution to the latest version From 73b6307399b4f306f3a61e502c28d1315ff8adeb Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Mon, 24 Apr 2023 13:56:01 +0200 Subject: [PATCH 0631/1324] Fix #2682: Correct pyenv_user_setup.bash file The manpage contains a reference to a file which does only exist on Debian (/usr/share/pyenv/pyenv_user_setup.bash). It is replaced by its content to make it usable for other distributions. --- man/man1/pyenv.1 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/man/man1/pyenv.1 b/man/man1/pyenv.1 index 621a3c3e76..0629e894dc 100644 --- a/man/man1/pyenv.1 +++ b/man/man1/pyenv.1 @@ -1,4 +1,4 @@ -.TH PYENV 1 "12 Dec 2020" "PYENV" +.TH PYENV 1 "24 Apr 2023" "PYENV" .SH NAME pyenv \- Simple Python version management .SH SYNOPSIS @@ -12,10 +12,12 @@ pyenv lets you easily switch between multiple versions of Python\. It's simple, \fBAppend\fR the following to \fB$HOME/.bashrc\fR .P .RS 15 -source /usr/share/pyenv/pyenv_user_setup.bash +.nf +if command -v pyenv 1>/dev/null 2>&1; then\n + eval "$(pyenv init -)" \n +fi +.fi .RE -.\"OR -.\"\fBsh echo \-e \if command \-v pyenv 1>/dev/null 2>&1; then\en eval "$(pyenv init \-)"\enfi' >> ~/\.bashrc\fR .RS 3 .P .nh From cf9d0dcd7b56cf340d0ffca92a5468259cd2a001 Mon Sep 17 00:00:00 2001 From: Aviad Hahami Date: Sun, 23 Apr 2023 17:37:16 +0300 Subject: [PATCH 0632/1324] fix: updating heredoc delimiter to be random and unique --- .github/workflows/modified_scripts_build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 93f49baae7..be106ee52f 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -15,7 +15,10 @@ jobs: if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) { print $1.$2; }' \ | sort -u); - echo -e "versions<> $GITHUB_ENV + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); + echo "versions<<$EOF" >> $GITHUB_ENV; + echo "$versions" >> $GITHUB_ENV; + echo "$EOF" >> $GITHUB_ENV; - id: modified-versions run: | echo -n "::set-output name=versions::" From 920ef1456ad6728a42677e093686f3a05aa70047 Mon Sep 17 00:00:00 2001 From: Kevin Schoedel <67607049+kpschoedel@users.noreply.github.com> Date: Fri, 12 May 2023 18:24:57 -0400 Subject: [PATCH 0633/1324] Support ksh alternative names (#2697) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Support ksh versions Korn shell had two major versions: ’88 and ’93. Some systems have ksh installed under the name `ksh93`. A few systems (maybe only Solaris now) also have a `ksh88`. A few others use the `pdksh` (’88) or `mksh` (’93) implementations, originated before ksh was open source. Limit to currently-used versions --------- Co-authored-by: Kevin Schoedel --- libexec/pyenv-init | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 8bc8bc36fe..c1e0da7bcd 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -109,7 +109,12 @@ function detect_profile() { profile='~/.zprofile' rc='~/.zshrc' ;; - ksh ) + ksh | ksh93 | mksh ) + # There are two implementations of Korn shell: AT&T (ksh93) and Mir (mksh). + # Systems may have them installed under those names, or as ksh, so those + # are recognized here. The obsolete ksh88 (subsumed by ksh93) and pdksh + # (subsumed by mksh) are not included, since they are unlikely to still + # be in use as interactive shells anywhere. profile='~/.profile' rc='~/.profile' ;; @@ -269,7 +274,7 @@ function pyenv end EOS ;; - ksh ) + ksh | ksh93 | mksh ) cat < Date: Tue, 23 May 2023 14:07:48 -0600 Subject: [PATCH 0634/1324] Add CPython 3.12.0b1 (#2701) --- .../python-build/share/python-build/{3.12.0a7 => 3.12.0b1} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0a7 => 3.12.0b1} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0a7 b/plugins/python-build/share/python-build/3.12.0b1 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0a7 rename to plugins/python-build/share/python-build/3.12.0b1 index 2ca790f6e0..3b03487622 100644 --- a/plugins/python-build/share/python-build/3.12.0a7 +++ b/plugins/python-build/share/python-build/3.12.0b1 @@ -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.0a7" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a7.tar.xz#a19ae4dc5afebdff5e1312346f160062a11e0dbd5f9e68a6a981ea37b21608e1" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0b1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b1.tar.xz#8ba76ca64acd745babdfb8467820964df98858ee6a9577bf1d93447257be581e" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0a7" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0a7.tgz#86d288766153193706e545cc98f73ea8ef1a9cb057608cfdecbd89190b796cf6" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0b1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b1.tgz#7684fa5e43fd68513b268c4569ba2cd323335c19c1d66c18ee1b90db9c57ca39" standard verify_py312 copy_python_gdb ensurepip fi From def5cd994e1096646d20ad9e6a220a970721921b Mon Sep 17 00:00:00 2001 From: t0b3 Date: Thu, 25 May 2023 08:47:37 +0200 Subject: [PATCH 0635/1324] Update 3.12-dev and add 3.13-dev (#2703) --- plugins/python-build/bin/python-build | 5 +++++ plugins/python-build/share/python-build/3.12-dev | 2 +- plugins/python-build/share/python-build/3.13-dev | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.13-dev diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 2dc6d068d2..20b17342a5 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1958,6 +1958,11 @@ build_package_verify_py312() { build_package_verify_py311 "$1" "${2:-3.12}" } +# Post-install check for Python 3.13.x +build_package_verify_py313() { + build_package_verify_py312 "$1" "${2:-3.13}" +} + # Post-install check for Python 3.x rolling release scripts # XXX: Will need splitting into project-specific ones if there emerge # multiple rolling-release scripts with different checks needed diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index ba0b8fe695..8b9d23b2ab 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -4,4 +4,4 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.12-dev" "https://github.com/python/cpython" main standard verify_py312 copy_python_gdb ensurepip +install_git "Python-3.12-dev" "https://github.com/python/cpython" 3.12 standard verify_py312 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.13-dev b/plugins/python-build/share/python-build/3.13-dev new file mode 100644 index 0000000000..5384da3a29 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13-dev @@ -0,0 +1,7 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 +install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 "Python-3.13-dev" "https://github.com/python/cpython" main standard verify_py313 copy_python_gdb ensurepip From c8a23e26e6319dbe70df7606f4ff2a2ed12725cd Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 25 May 2023 11:23:18 +0300 Subject: [PATCH 0636/1324] Update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce99b7d1f6..9dcea05dda 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Version History +## Release 2.3.18 + +* Fix not showing symlink contents for unselected versions in `pyenv versions` by @native-api in https://github.com/pyenv/pyenv/pull/2675 +* Correct link in has_tar_xz_support else branch of 3.10.11 and 3.11.3 by @mirekdlugosz in https://github.com/pyenv/pyenv/pull/2677 +* Fix #2682: Correct pyenv_user_setup.bash file by @tomschr in https://github.com/pyenv/pyenv/pull/2687 +* fix: updating heredoc delimiter to be random and unique by @aviadhahami in https://github.com/pyenv/pyenv/pull/2691 +* Support ksh alternative names by @kpschoedel in https://github.com/pyenv/pyenv/pull/2697 +* Add CPython 3.12.0b1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2701 +* Update 3.12-dev and add 3.13-dev by @t0b3 in https://github.com/pyenv/pyenv/pull/2703 + ## Release 2.3.17 * Try locate `readlink` first in pyenv-hooks, fix #2654 by @Harry-Chen in https://github.com/pyenv/pyenv/pull/2655 From 3fa5812bfcfe53e022c9e6ff5de18f342ac0b6d9 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 25 May 2023 11:23:39 +0300 Subject: [PATCH 0637/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 227f04b4a1..00d3d86b90 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.17" +version="2.3.18" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From f46b669f1d77e87cf0ff99795106b262ca285071 Mon Sep 17 00:00:00 2001 From: yfprojects <62463991+real-yfprojects@users.noreply.github.com> Date: Tue, 6 Jun 2023 11:09:59 +0000 Subject: [PATCH 0638/1324] Initial commit --- LICENSE | 21 +++++++++++++++++++++ README.md | 2 ++ 2 files changed, 23 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000000..b32e7f6de5 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 yfprojects + +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. diff --git a/README.md b/README.md new file mode 100644 index 0000000000..882dbf3456 --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# pyenv-link +A pyenv plugin for linking python versions and virtual envs into your pyenv root. From dffc750fa2c21c4d81deeff92aa2453e01204039 Mon Sep 17 00:00:00 2001 From: real-yfprojects Date: Tue, 6 Jun 2023 16:03:16 +0200 Subject: [PATCH 0639/1324] Initial implementation * bin/pyenv-link * bin/pyenv-link-version --- bin/pyenv-link | 31 +++++++++ bin/pyenv-link-version | 138 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 169 insertions(+) create mode 100755 bin/pyenv-link create mode 100755 bin/pyenv-link-version diff --git a/bin/pyenv-link b/bin/pyenv-link new file mode 100755 index 0000000000..fffb969200 --- /dev/null +++ b/bin/pyenv-link @@ -0,0 +1,31 @@ +#!/usr/bin/env bash +# +# Summary: Activate virtual environment +# +# Usage: pyenv link version +# +# Link a virtual python environment to pyenvs version directory +# so that the venv can be used like one created with *pyenv-virtualenv*. +# +# should be a path to a virtual python environments location. + +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +# Provide pyenv completions +case "$1" in +--complete) + echo --version + pyenv-link-version --complete + exit + ;; +version) + shift + pyenv-link-version "$@" + exit $? + ;; +*) + pyenv-help --usage link >&2 + exit 1 + ;; +esac diff --git a/bin/pyenv-link-version b/bin/pyenv-link-version new file mode 100755 index 0000000000..c2fc9c2902 --- /dev/null +++ b/bin/pyenv-link-version @@ -0,0 +1,138 @@ +#!/usr/bin/env bash +# +# Summary: Activate virtual environment +# +# Usage: pyenv link-venv [--dry] [--quiet] [] +# +# Link a virtual python environment to pyenvs version directory +# so that the venv can be used like one created with *pyenv-virtualenv*. +# +# should be a path to a virtual python environments location. +# should be string used as a version name it may not be present +# in the pyenv version directory yet. +# If not specified a matching name is guessed from pyvenv.cfg +# or directory name of the venv. +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +# functions + +if ! { + enable -f "${BASH_SOURCE%/*}"/../../../libexec/pyenv-realpath.dylib realpath || + type realpath # realpath available? +} >/dev/null 2>&1; then + # realpath requires GNU coreutils to be installed. That's why its bundled with pyenv + echo realpath not available >&2 + + # work-around when realpath is unavailable + realpath() { + echo "$(cd "$1" && pwd)" + } +fi + +array_doesnt_contain() { + local array="$1[@]" + local seeking=$2 + local in=0 + for element in "${!array}"; do + if [[ $element == "$seeking" ]]; then + in=1 + break + fi + done + return $in +} + +COMMON_VENV_NAMES=('venv' 'env' '.venv' '.env' 'ENV' 'VENV') +guess_name() { + local venv_dir=$1 + local name + + # guess venv name from pyvenv.cfg + local pyvenv_cfg_path=$venv_dir/pyvenv.cfg + if [ -f "$pyvenv_cfg_path" ]; then + # if `prompt` key wasn't found the var remains empty + name=$(cut -b 1-1024 "$pyvenv_cfg_path" | sed -n '/^ *prompt *= */s///p') + fi + + # guess venv name from name of venv directory + local venv_dir_name=${venv_dir##*/} + if [ -z "$name" ] && array_doesnt_contain COMMON_VENV_NAMES "$venv_dir_name"; then + name=$venv_dir_name + fi + + # guess venv name from name of the parent directory of the venv directory + local venv_dir_parent=${venv_dir%/*} + local venv_dir_parent_name=${venv_dir_parent##*/} + if [ -z "$name" ]; then + name=$venv_dir_parent_name + fi + + echo "$name" +} + +# process args +POSARGS=() +# Provide pyenv completions +if [ "$1" = "--complete" ]; then + echo --dry + echo --quiet + exit +fi + +for arg in "$@"; do + case $arg in + --dry) + dry=true # any value + ;; + --quiet) + quiet=true # any value + ;; + -*) + pyenv-help --usage link-version >&2 + exit 1 + ;; + *) + POSARGS+=("$arg") + ;; + esac +done + +if [ ! ${#POSARGS[@]} -le 2 ] || [ ! ${#POSARGS[@]} -ge 1 ]; then + pyenv-help --usage link-version >&2 + exit 1 +fi + +venv_dir=${POSARGS[0]%/} +venv_name=${POSARGS[1]} + +# Check venv exists +if [ ! -d "$venv_dir" ]; then + echo "The virtual env you specified doesn't exist" + exit 2 +fi + +# make venv dir absolute +venv_dir=$(realpath "$venv_dir") + +# determine venv name +if [ -z "$venv_name" ]; then + venv_name=$(guess_name "$venv_dir") +fi + +# check whether version exists already +if pyenv-prefix "$venv_name"; then + echo Version "$venv_name" already exists >&2 + exit 3 +fi + +# construct location to link to +pyenv_prefix_path="$PYENV_ROOT/versions/$venv_name" + +# link to pyenv version directory +if [ -z "$dry" ]; then + ln --symbolic "$venv_dir" "$pyenv_prefix_path" +fi + +# output +[ -z "$quiet" ] && echo Linked new version named "$venv_name" || true From d428be59ec28352544348b99ef85b81b3f61c3d2 Mon Sep 17 00:00:00 2001 From: real-yfprojects Date: Tue, 6 Jun 2023 16:39:52 +0200 Subject: [PATCH 0640/1324] Write README. * README.md --- README.md | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 61 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 882dbf3456..67fa6379dd 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,62 @@ # pyenv-link -A pyenv plugin for linking python versions and virtual envs into your pyenv root. +A [pyenv](https://github.com/pyenv/pyenv) plugin for linking python versions and virtual envs into your pyenv root. + +This plugin recommends the [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv/) plugin. + +## Installation + +This will install the latest development version of *pyenv-link* into +the `$(pyenv root)/plugins/pyenv-link` directory. + +**Important note:** If you installed pyenv into a non-standard directory, make +sure that you clone this repo into the 'plugins' directory of wherever you +installed into. + +From inside that directory you can: + - Check out a specific release tag. + - Get the latest development release by running `git pull` to download the + latest changes. + + +```bash +git clone https://github.com/real-yfprojects/pyenv-link.git $(pyenv root)/plugins/pyenv-link +``` + +For the Fish shell: + +```fish +git clone https://github.com/real-yfprojects/pyenv-link.git (pyenv root)/plugins/pyenv-link +``` + +## Usage + +Make an arbitrary virtualenv available through pyenv. This automatically guesses a fitting name from the prompt, the directory name or the location of the venv. + +```console +$ pyenv link version .venv +Linked new version named myproject-py3.10 +``` + +You can also specify a name to use for the venv. + +```console +$ pyenv link version .venv myname +Linked new version named myname +``` + +Now you can make pyenv activate/use the venv automatically: + +```console +$ pyenv local myproject-py3.10 +``` + +## Contributing +This project is developed in an open-source, community-driven way, as a voluntary effort in the authors’ free time. + +All kinds of contributions are greatly appreciated. This not only includes implementing new features but also refactoring work or improvements to the documentation. +Bug reports, feature requests and other suggestions are welcome too. + +### TODO + +- [ ] Tests +- [ ] CI \ No newline at end of file From ba9099392a152841930eabf782726f70f04d3b71 Mon Sep 17 00:00:00 2001 From: real-yfprojects Date: Tue, 6 Jun 2023 16:48:19 +0200 Subject: [PATCH 0641/1324] Fix completions * bin/pyenv-link --- bin/pyenv-link | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/bin/pyenv-link b/bin/pyenv-link index fffb969200..1992e2298d 100755 --- a/bin/pyenv-link +++ b/bin/pyenv-link @@ -15,9 +15,12 @@ set -e # Provide pyenv completions case "$1" in --complete) - echo --version - pyenv-link-version --complete - exit + if [ -z "$2" ]; then + echo version + else + shift 2 + pyenv-link-version --complete "$@" + fi ;; version) shift From b8d8dee191c04a1fc10ba2b2f39f131dceb18e8a Mon Sep 17 00:00:00 2001 From: real-yfprojects Date: Tue, 6 Jun 2023 16:59:25 +0200 Subject: [PATCH 0642/1324] Fix output * bin/pyenv-link-version --- bin/pyenv-link-version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/pyenv-link-version b/bin/pyenv-link-version index c2fc9c2902..55a1102d33 100755 --- a/bin/pyenv-link-version +++ b/bin/pyenv-link-version @@ -121,7 +121,7 @@ if [ -z "$venv_name" ]; then fi # check whether version exists already -if pyenv-prefix "$venv_name"; then +if pyenv-prefix "$venv_name" >/dev/null 2>&1; then echo Version "$venv_name" already exists >&2 exit 3 fi From fb73c4b7143f53611295319ea5e7441f05c8827c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Tue, 6 Jun 2023 09:19:19 -0600 Subject: [PATCH 0643/1324] Add CPython 3.9.17 --- plugins/python-build/share/python-build/3.9.17 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.17 diff --git a/plugins/python-build/share/python-build/3.9.17 b/plugins/python-build/share/python-build/3.9.17 new file mode 100644 index 0000000000..060bc03c8a --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.17 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.17" "https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tar.xz#30ce057c44f283f8ed93606ccbdb8d51dd526bdc4c62cce5e0dc217bfa3e8cee" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.17" "https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tgz#8ead58f669f7e19d777c3556b62fae29a81d7f06a7122ff9bc57f7dd82d7e014" standard verify_py39 copy_python_gdb ensurepip +fi From 23c727a767cca3bfc194b92a10b65064cfbb4118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Tue, 6 Jun 2023 10:39:56 -0600 Subject: [PATCH 0644/1324] Add CPython 3.7.17 and CPython 3.8.17 --- plugins/python-build/share/python-build/3.7.17 | 9 +++++++++ plugins/python-build/share/python-build/3.8.17 | 12 ++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.7.17 create mode 100644 plugins/python-build/share/python-build/3.8.17 diff --git a/plugins/python-build/share/python-build/3.7.17 b/plugins/python-build/share/python-build/3.7.17 new file mode 100644 index 0000000000..3d0d819099 --- /dev/null +++ b/plugins/python-build/share/python-build/3.7.17 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.7.17" "https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tar.xz#7911051ed0422fd54b8f59ffc030f7cf2ae30e0f61bda191800bb040dce4f9d2" standard verify_py37 copy_python_gdb ensurepip +else + install_package "Python-3.7.17" "https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tgz#fd50161bc2a04f4c22a0971ff0f3856d98b4bf294f89740a9f06b520aae63b49" standard verify_py37 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.17 b/plugins/python-build/share/python-build/3.8.17 new file mode 100644 index 0000000000..f7e454e602 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.17 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.17" "https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tar.xz#2e54b0c68191f16552f6de2e97a2396540572a219f6bbb28591a137cecc490a9" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.17" "https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tgz#def428fa6cf61b66bcde72e3d9f7d07d33b2e4226f04f9d6fce8384c055113ae" standard verify_py38 copy_python_gdb ensurepip +fi From 82c8d511c4ef97168168ddef7ebdf6b17747728b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Tue, 6 Jun 2023 14:39:15 -0600 Subject: [PATCH 0645/1324] Add CPython 3.12.0b2 --- .../python-build/share/python-build/{3.12.0b1 => 3.12.0b2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0b1 => 3.12.0b2} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0b1 b/plugins/python-build/share/python-build/3.12.0b2 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0b1 rename to plugins/python-build/share/python-build/3.12.0b2 index 3b03487622..00b83046f7 100644 --- a/plugins/python-build/share/python-build/3.12.0b1 +++ b/plugins/python-build/share/python-build/3.12.0b2 @@ -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.0b1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b1.tar.xz#8ba76ca64acd745babdfb8467820964df98858ee6a9577bf1d93447257be581e" standard verify_py312 copy_python_gdb ensurepip + 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 else - install_package "Python-3.12.0b1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b1.tgz#7684fa5e43fd68513b268c4569ba2cd323335c19c1d66c18ee1b90db9c57ca39" standard verify_py312 copy_python_gdb ensurepip + 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 fi From 4086e452fde1b279cbc679c445e81a757a9f9031 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Tue, 6 Jun 2023 18:26:24 -0600 Subject: [PATCH 0646/1324] Add CPython 3.10.12 --- plugins/python-build/share/python-build/3.10.12 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.12 diff --git a/plugins/python-build/share/python-build/3.10.12 b/plugins/python-build/share/python-build/3.10.12 new file mode 100644 index 0000000000..3d97afed1c --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.12 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.12" "https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tar.xz#afb74bf19130e7a47d10312c8f5e784f24e0527981eab68e20546cfb865830b8" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.12" "https://www.python.org/ftp/python/3.10.12/Python-3.10.12.tgz#a43cd383f3999a6f4a7db2062b2fc9594fefa73e175b3aedafa295a51a7bb65c" standard verify_py310 copy_python_gdb ensurepip +fi From 452647ab3352b00a9f6655c82be5e4a4a56c5a57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Rami=CC=81rez=20Mondrago=CC=81n?= Date: Wed, 7 Jun 2023 01:10:28 -0600 Subject: [PATCH 0647/1324] Add CPython 3.11.4 --- plugins/python-build/share/python-build/3.11.4 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.4 diff --git a/plugins/python-build/share/python-build/3.11.4 b/plugins/python-build/share/python-build/3.11.4 new file mode 100644 index 0000000000..ee1462320c --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.4 @@ -0,0 +1,10 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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.11.4" "https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tar.xz#2f0e409df2ab57aa9fc4cbddfb976af44e4e55bf6f619eee6bc5c2297264a7f6" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.4" "https://www.python.org/ftp/python/3.11.4/Python-3.11.4.tgz#85c37a265e5c9dd9f75b35f954e31fbfc10383162417285e30ad25cc073a0d63" standard verify_py311 copy_python_gdb ensurepip +fi From 021b6c2da044ee56f562e03f1be2b08f5826ef74 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 8 Jun 2023 12:17:52 +0300 Subject: [PATCH 0648/1324] v2.3.19 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9dcea05dda..32120f2d23 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.3.19 + +* Add CPython 3.7.17, 3.8.17 and 3.9.17 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2711 +* Add CPython 3.11.4 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2715 +* Add CPython 3.10.12 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2714 +* Add CPython 3.12.0b2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2713 + ## Release 2.3.18 * Fix not showing symlink contents for unselected versions in `pyenv versions` by @native-api in https://github.com/pyenv/pyenv/pull/2675 From e79dd97afa8ee1cc696fe70696f466f34cff5874 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 8 Jun 2023 12:18:16 +0300 Subject: [PATCH 0649/1324] v2.3.19 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 00d3d86b90..1adcf3aceb 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.18" +version="2.3.19" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d7d5ab51487e0853cd7c0e3e70b948d2752ed479 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 10 Jun 2023 20:19:54 +0300 Subject: [PATCH 0650/1324] 3.5.10: Fix patches to apply cleanly --- ...t-building-on-macOS-without-usr-incl.patch | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch index f95099a134..c7891f74c5 100644 --- a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0008-bpo-36231-Support-building-on-macOS-without-usr-incl.patch @@ -1,6 +1,6 @@ -From c7302116573d853d3181133477d9d0e4d4d3abfd Mon Sep 17 00:00:00 2001 -From: Ned Deily -Date: Tue, 18 Jun 2019 16:28:13 -0400 +From 2ad0bb719f5ce416d3bfa366814ebcf3b654f081 Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Sat, 10 Jun 2023 20:17:25 +0300 Subject: [PATCH] bpo-36231: Support building on macOS without /usr/include (GH-13773) (GH-14208) @@ -20,12 +20,12 @@ index 0000000000..c82e54c12c +10.14, system header files are only available within an SDK provided by +either the Command Line Tools or the Xcode app. diff --git a/setup.py b/setup.py -index bcc4bfa89d..5e0cd02430 100644 +index ab8065866f..28dc801845 100644 --- a/setup.py +++ b/setup.py -@@ -90,18 +90,57 @@ def sysroot_paths(make_vars, subdirs): - break - return dirs +@@ -60,18 +60,57 @@ def add_dir_to_list(dirlist, dir): + return + dirlist.insert(0, dir) +MACOS_SDK_ROOT = None + @@ -86,8 +86,8 @@ index bcc4bfa89d..5e0cd02430 100644 + + return MACOS_SDK_ROOT - def is_macosx_sdk_path(path): - """ + def is_macosx_at_least(vers): + if host_platform == 'darwin': -- -2.30.1 (Apple Git-130) +2.36.1.windows.1 From afe2615a1cccf89eafe7513acb99442552c43723 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 10 Jun 2023 20:28:10 +0300 Subject: [PATCH 0651/1324] 3.5.10: Backport bpo-42351 The bug is reported to manifest in Mandjaro Linux 6.3.5-2 --- ...error-when-opening-header-with-non-U.patch | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0009-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0009-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0009-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..e5540cc560 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0009-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,28 @@ +From 3cc28dc409d0db3752278379e7a8d4c23e0f2e29 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index 28dc801845..dd50485213 100644 +--- a/setup.py ++++ b/setup.py +@@ -129,7 +129,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.36.1.windows.1 + From 687944d9910f3abae2cd23d06da6490c352e8453 Mon Sep 17 00:00:00 2001 From: Alex Tomkins Date: Sat, 10 Jun 2023 22:09:42 +0100 Subject: [PATCH 0652/1324] Add missing patches for Python 3.7/3.8/3.9 (#2718) * Use OpenSSL 1.1.1u and remove patches for 1.1.1q --- .../python-build/share/python-build/3.7.17 | 2 +- .../python-build/share/python-build/3.8.17 | 2 +- .../python-build/share/python-build/3.9.17 | 2 +- ...system-libffi-patches-for-arm64-macO.patch | 310 ++++++++++++++++++ ...x-_decimal-for-arm64-Mac-OS-GH-21228.patch | 37 +++ ...error-when-opening-header-with-non-U.patch | 30 ++ 6 files changed, 380 insertions(+), 3 deletions(-) create mode 100644 plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch diff --git a/plugins/python-build/share/python-build/3.7.17 b/plugins/python-build/share/python-build/3.7.17 index 3d0d819099..4d70090116 100644 --- a/plugins/python-build/share/python-build/3.7.17 +++ b/plugins/python-build/share/python-build/3.7.17 @@ -1,6 +1,6 @@ prefer_openssl11 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.7.17" "https://www.python.org/ftp/python/3.7.17/Python-3.7.17.tar.xz#7911051ed0422fd54b8f59ffc030f7cf2ae30e0f61bda191800bb040dce4f9d2" standard verify_py37 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.8.17 b/plugins/python-build/share/python-build/3.8.17 index f7e454e602..5313c55b87 100644 --- a/plugins/python-build/share/python-build/3.8.17 +++ b/plugins/python-build/share/python-build/3.8.17 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" -install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.8.17" "https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tar.xz#2e54b0c68191f16552f6de2e97a2396540572a219f6bbb28591a137cecc490a9" standard verify_py38 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.17 b/plugins/python-build/share/python-build/3.9.17 index 060bc03c8a..32aecb8dde 100644 --- a/plugins/python-build/share/python-build/3.9.17 +++ b/plugins/python-build/share/python-build/3.9.17 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" -install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.9.17" "https://www.python.org/ftp/python/3.9.17/Python-3.9.17.tar.xz#30ce057c44f283f8ed93606ccbdb8d51dd526bdc4c62cce5e0dc217bfa3e8cee" standard verify_py39 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch new file mode 100644 index 0000000000..f23946d0fb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0001-Port-ctypes-and-system-libffi-patches-for-arm64-macO.patch @@ -0,0 +1,310 @@ +From: Christian Hammond +Date: Wed, 15 Dec 2021 23:12:36 -0800 +Subject: Port ctypes and system libffi patches for arm64/macOS 10.15+ to Python 3.7.12 + +This ports the following ctypes and libffi pyenv patches for Python +2.7.18 to Python 3.7.12: + +* `0004-Use-system-libffi-for-Mac-OS-10.15-and-up.patch` +* `0005-ctypes-use-the-correct-ABI-for-variadic-functions.patch` +* `0006-ctypes-probe-libffi-for-ffi_closure_alloc-and-ffi_pr.patch` + +These patches enable use of system libffi (fixing a broken `ctypes` +module on arm64 targets) and enable calling variadic functions on arm64. +They've been combined from patches port from Homebrew to pyenv by Takumi +Sueda, updated to work on the Python 3.7.12 codebase. + +The Homebrew patches are themselves backports of changes in Python 3.9 +and 3.10. That patch can be found at: + +https://github.com/Homebrew/formula-patches/blob/master/python/3.8.7.patch + +diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst +index 715d595b24..7743144978 100644 +--- a/Doc/library/ctypes.rst ++++ b/Doc/library/ctypes.rst +@@ -1551,6 +1551,13 @@ They are instances of a private class: + value usable as argument (integer, string, ctypes instance). This allows + defining adapters that can adapt custom objects as function parameters. + ++ .. attribute:: variadic ++ ++ Assign a boolean to specify that the function takes a variable number of ++ arguments. This does not matter on most platforms, but for Apple arm64 ++ platforms variadic functions have a different calling convention than ++ normal functions. ++ + .. attribute:: errcheck + + Assign a Python function or another callable to this attribute. The +diff --git a/Lib/test/test_unicode.py b/Lib/test/test_unicode.py +index 4ebd82d3e0..7b73c190b6 100644 +--- a/Lib/test/test_unicode.py ++++ b/Lib/test/test_unicode.py +@@ -2458,11 +2458,14 @@ class CAPITest(unittest.TestCase): + def test_from_format(self): + support.import_module('ctypes') + from ctypes import ( ++ c_char_p, + pythonapi, py_object, sizeof, + c_int, c_long, c_longlong, c_ssize_t, + c_uint, c_ulong, c_ulonglong, c_size_t, c_void_p) + name = "PyUnicode_FromFormat" + _PyUnicode_FromFormat = getattr(pythonapi, name) ++ _PyUnicode_FromFormat.argtypes = (c_char_p,) ++ _PyUnicode_FromFormat.variadic = True + _PyUnicode_FromFormat.restype = py_object + + def PyUnicode_FromFormat(format, *args): +diff --git a/Modules/_ctypes/_ctypes.c b/Modules/_ctypes/_ctypes.c +index dd0c61fd8a..79137e1dc7 100644 +--- a/Modules/_ctypes/_ctypes.c ++++ b/Modules/_ctypes/_ctypes.c +@@ -3174,6 +3174,34 @@ PyCFuncPtr_get_restype(PyCFuncPtrObject *self, void *Py_UNUSED(ignored)) + } + } + ++static int ++PyCFuncPtr_set_variadic(PyCFuncPtrObject *self, PyObject *ob) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); ++ int r = PyObject_IsTrue(ob); ++ if (r == 1) { ++ dict->flags |= FUNCFLAG_VARIADIC; ++ return 0; ++ } else if (r == 0) { ++ dict->flags &= ~FUNCFLAG_VARIADIC; ++ return 0; ++ } else { ++ return -1; ++ } ++} ++ ++static PyObject * ++PyCFuncPtr_get_variadic(PyCFuncPtrObject *self) ++{ ++ StgDictObject *dict = PyObject_stgdict((PyObject *)self); ++ assert(dict); /* Cannot be NULL for PyCFuncPtrObject instances */ ++ if (dict->flags & FUNCFLAG_VARIADIC) ++ Py_RETURN_TRUE; ++ else ++ Py_RETURN_FALSE; ++} ++ + static int + PyCFuncPtr_set_argtypes(PyCFuncPtrObject *self, PyObject *ob, void *Py_UNUSED(ignored)) + { +@@ -3219,6 +3247,8 @@ static PyGetSetDef PyCFuncPtr_getsets[] = { + { "argtypes", (getter)PyCFuncPtr_get_argtypes, + (setter)PyCFuncPtr_set_argtypes, + "specify the argument types", NULL }, ++ { "variadic", (getter)PyCFuncPtr_get_variadic, (setter)PyCFuncPtr_set_variadic, ++ "specify if function takes variable number of arguments", NULL }, + { NULL, NULL } + }; + +@@ -5632,6 +5662,7 @@ PyInit__ctypes(void) + PyModule_AddObject(m, "FUNCFLAG_USE_ERRNO", PyLong_FromLong(FUNCFLAG_USE_ERRNO)); + PyModule_AddObject(m, "FUNCFLAG_USE_LASTERROR", PyLong_FromLong(FUNCFLAG_USE_LASTERROR)); + PyModule_AddObject(m, "FUNCFLAG_PYTHONAPI", PyLong_FromLong(FUNCFLAG_PYTHONAPI)); ++ PyModule_AddObject(m, "FUNCFLAG_VARIADIC", PyLong_FromLong(FUNCFLAG_VARIADIC)); + PyModule_AddStringConstant(m, "__version__", "1.1.0"); + + PyModule_AddObject(m, "_memmove_addr", PyLong_FromVoidPtr(memmove)); +diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c +index 9cbf9801ad..e7fe11176b 100644 +--- a/Modules/_ctypes/callproc.c ++++ b/Modules/_ctypes/callproc.c +@@ -754,7 +756,8 @@ static int _call_function_pointer(int flags, + ffi_type **atypes, + ffi_type *restype, + void *resmem, +- int argcount) ++ int argcount, ++ int argtypecount) + { + PyThreadState *_save = NULL; /* For Py_BLOCK_THREADS and Py_UNBLOCK_THREADS */ + PyObject *error_object = NULL; +@@ -780,15 +783,39 @@ static int _call_function_pointer(int flags, + if ((flags & FUNCFLAG_CDECL) == 0) + cc = FFI_STDCALL; + #endif +- if (FFI_OK != ffi_prep_cif(&cif, +- cc, +- argcount, +- restype, +- atypes)) { +- PyErr_SetString(PyExc_RuntimeError, +- "ffi_prep_cif failed"); +- return -1; ++ ++#if HAVE_FFI_PREP_CIF_VAR ++ /* Everyone SHOULD set f.variadic=True on variadic function pointers, but ++ * lots of existing code will not. If there's at least one arg and more ++ * args are passed than are defined in the prototype, then it must be a ++ * variadic function. */ ++ if ((flags & FUNCFLAG_VARIADIC) || ++ (argtypecount != 0 && argcount > argtypecount)) ++ { ++ if (FFI_OK != ffi_prep_cif_var(&cif, ++ cc, ++ argtypecount, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif_var failed"); ++ return -1; ++ } ++ } else { ++#endif ++ if (FFI_OK != ffi_prep_cif(&cif, ++ cc, ++ argcount, ++ restype, ++ atypes)) { ++ PyErr_SetString(PyExc_RuntimeError, ++ "ffi_prep_cif failed"); ++ return -1; ++ } ++#if HAVE_FFI_PREP_CIF_VAR + } ++#endif + + if (flags & (FUNCFLAG_USE_ERRNO | FUNCFLAG_USE_LASTERROR)) { + error_object = _ctypes_get_errobj(&space); +@@ -1187,9 +1214,8 @@ PyObject *_ctypes_callproc(PPROC pProc, + + if (-1 == _call_function_pointer(flags, pProc, avalues, atypes, + rtype, resbuf, +- Py_SAFE_DOWNCAST(argcount, +- Py_ssize_t, +- int))) ++ Py_SAFE_DOWNCAST(argcount, Py_ssize_t, int), ++ Py_SAFE_DOWNCAST(argtype_count, Py_ssize_t, int))) + goto cleanup; + + #ifdef WORDS_BIGENDIAN +diff --git a/Modules/_ctypes/ctypes.h b/Modules/_ctypes/ctypes.h +index e58f85233c..e45975f6ad 100644 +--- a/Modules/_ctypes/ctypes.h ++++ b/Modules/_ctypes/ctypes.h +@@ -285,6 +285,7 @@ PyObject *_ctypes_callproc(PPROC pProc, + #define FUNCFLAG_PYTHONAPI 0x4 + #define FUNCFLAG_USE_ERRNO 0x8 + #define FUNCFLAG_USE_LASTERROR 0x10 ++#define FUNCFLAG_VARIADIC 0x20 + + #define TYPEFLAG_ISPOINTER 0x100 + #define TYPEFLAG_HASPOINTER 0x200 +diff --git a/setup.py b/setup.py +index bf90600eaa..48ff120e9a 100644 +--- a/setup.py ++++ b/setup.py +@@ -142,6 +142,13 @@ def macosx_sdk_root(): + + return MACOS_SDK_ROOT + ++def is_macosx_at_least(vers): ++ if host_platform == 'darwin': ++ dep_target = sysconfig.get_config_var('MACOSX_DEPLOYMENT_TARGET') ++ if dep_target: ++ return tuple(map(int, str(dep_target).split('.'))) >= vers ++ return False ++ + def is_macosx_sdk_path(path): + """ + Returns True if 'path' can be located in an OSX SDK +@@ -150,6 +157,13 @@ def is_macosx_sdk_path(path): + or path.startswith('/System/') + or path.startswith('/Library/') ) + ++def grep_headers_for(function, headers): ++ for header in headers: ++ with open(header, 'r') as f: ++ if function in f.read(): ++ return True ++ return False ++ + def find_file(filename, std_dirs, paths): + """Searches for the directory where a given file is located, + and returns a possibly-empty list of additional directories, or None +@@ -1972,7 +1986,11 @@ class PyBuildExt(build_ext): + return True + + def detect_ctypes(self, inc_dirs, lib_dirs): +- self.use_system_libffi = False ++ if not sysconfig.get_config_var("LIBFFI_INCLUDEDIR") and is_macosx_at_least((10,15)): ++ self.use_system_libffi = True ++ else: ++ self.use_system_libffi = '--with-system-ffi' in sysconfig.get_config_var("CONFIG_ARGS") ++ + include_dirs = [] + extra_compile_args = [] + extra_link_args = [] +@@ -2018,30 +2036,47 @@ class PyBuildExt(build_ext): + libraries=['m']) + self.extensions.extend([ext, ext_test]) + ++ ffi_inc = sysconfig.get_config_var("LIBFFI_INCLUDEDIR") ++ ffi_lib = None ++ + if host_platform == 'darwin': +- if '--with-system-ffi' not in sysconfig.get_config_var("CONFIG_ARGS"): ++ if not self.use_system_libffi: + return +- # OS X 10.5 comes with libffi.dylib; the include files are +- # in /usr/include/ffi +- inc_dirs.append('/usr/include/ffi') +- +- ffi_inc = [sysconfig.get_config_var("LIBFFI_INCLUDEDIR")] +- if not ffi_inc or ffi_inc[0] == '': +- ffi_inc = find_file('ffi.h', [], inc_dirs) +- if ffi_inc is not None: +- ffi_h = ffi_inc[0] + '/ffi.h' ++ ffi_in_sdk = os.path.join(macosx_sdk_root(), "usr/include/ffi") ++ if os.path.exists(ffi_in_sdk): ++ ffi_inc = ffi_in_sdk ++ ffi_lib = 'ffi' ++ else: ++ # OS X 10.5 comes with libffi.dylib; the include files are ++ # in /usr/include/ffi ++ inc_dirs.append('/usr/include/ffi') ++ ++ if not ffi_inc: ++ found = find_file('ffi.h', [], inc_dirs) ++ if found: ++ ffi_inc = found[0] ++ if ffi_inc: ++ ffi_h = ffi_inc + '/ffi.h' + if not os.path.exists(ffi_h): + ffi_inc = None + print('Header file {} does not exist'.format(ffi_h)) +- ffi_lib = None +- if ffi_inc is not None: +- for lib_name in ('ffi', 'ffi_pic'): ++ ++ if ffi_lib is None and ffi_inc: ++ for lib_name in ('ffi_convenience', 'ffi_pic', 'ffi'): + if (self.compiler.find_library_file(lib_dirs, lib_name)): + ffi_lib = lib_name + break + + if ffi_inc and ffi_lib: +- ext.include_dirs.extend(ffi_inc) ++ ffi_headers = glob(os.path.join(ffi_inc, '*.h')) ++ if grep_headers_for('ffi_closure_alloc', ffi_headers): ++ try: ++ sources.remove('_ctypes/malloc_closure.c') ++ except ValueError: ++ pass ++ if grep_headers_for('ffi_prep_cif_var', ffi_headers): ++ ext.extra_compile_args.append("-DHAVE_FFI_PREP_CIF_VAR=1") ++ ext.include_dirs.append(ffi_inc) + ext.libraries.append(ffi_lib) + self.use_system_libffi = True + +-- +2.30.1 (Apple Git-130) + diff --git a/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch new file mode 100644 index 0000000000..8ad6c8296b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0002-bpo-41100-fix-_decimal-for-arm64-Mac-OS-GH-21228.patch @@ -0,0 +1,37 @@ +From f2595c038ed7bfd182d9d05d83786106ebd02ca0 Mon Sep 17 00:00:00 2001 +From: Lawrence D'Anna <64555057+lawrence-danna-apple@users.noreply.github.com> +Date: Tue, 30 Jun 2020 02:15:46 -0700 +Subject: [PATCH] bpo-41100: fix _decimal for arm64 Mac OS (GH-21228) + +Patch by Lawrence Danna. +--- + .../Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst | 1 + + Modules/_decimal/libmpdec/mpdecimal.h | 3 +++ + 2 files changed, 4 insertions(+) + create mode 100644 Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst + +diff --git a/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +new file mode 100644 +index 0000000000..d6176d69f0 +--- /dev/null ++++ b/Misc/NEWS.d/next/Core and Builtins/2020-06-30-04-44-29.bpo-41100.PJwA6F.rst +@@ -0,0 +1 @@ ++add arm64 to the allowable Mac OS arches in mpdecimal.h +\ No newline at end of file +diff --git a/Modules/_decimal/libmpdec/mpdecimal.h b/Modules/_decimal/libmpdec/mpdecimal.h +index a67dd9bc12..3e9c8185c3 100644 +--- a/Modules/_decimal/libmpdec/mpdecimal.h ++++ b/Modules/_decimal/libmpdec/mpdecimal.h +@@ -135,6 +135,9 @@ const char *mpd_version(void); + #elif defined(__x86_64__) + #define CONFIG_64 + #define ASM ++ #elif defined(__arm64__) ++ #define CONFIG_64 ++ #define ANSI + #else + #error "unknown architecture for universal build." + #endif +-- +2.37.3 + diff --git a/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch new file mode 100644 index 0000000000..773b69fa0e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0003-bpo-42351-Avoid-error-when-opening-header-with-non-U.patch @@ -0,0 +1,30 @@ +From 245427d207ee88a4ba26a66c3de350bcbcc036f2 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Sat, 14 Nov 2020 16:07:47 +0100 +Subject: [PATCH] bpo-42351: Avoid error when opening header with non-UTF8 + encoding (GH-23279) + +grep_headers_for() would error out when a header contained +text that cannot be interpreted as UTF-8. + +cherry-picked from 7a27c7ed4b by Pedro Fonini +--- + setup.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/setup.py b/setup.py +index f211989aac..467362813d 100644 +--- a/setup.py ++++ b/setup.py +@@ -159,7 +159,7 @@ def is_macosx_sdk_path(path): + + def grep_headers_for(function, headers): + for header in headers: +- with open(header, 'r') as f: ++ with open(header, 'r', errors='surrogateescape') as f: + if function in f.read(): + return True + return False +-- +2.34.1 + From 43f40eca05aec7d01d09ebb15005aacd5a44c518 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 12 Jun 2023 10:33:36 +0300 Subject: [PATCH 0653/1324] v2.3.20 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 32120f2d23..23a9ac90c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.3.20 + +* Backport bpo-42351 to 3.5.10 by @native-api in https://github.com/pyenv/pyenv/pull/2717 +* Add missing patches for Python 3.7/3.8/3.9 by @tomkins in https://github.com/pyenv/pyenv/pull/2718 + ## Release v2.3.19 * Add CPython 3.7.17, 3.8.17 and 3.9.17 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2711 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 1adcf3aceb..d2b93a35c6 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.19" +version="2.3.20" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d0b78fd5fea40595ff123f610e148fd079669fcd Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 12 Jun 2023 15:34:45 +0300 Subject: [PATCH 0654/1324] CONTRIBUTING.md: clearer phrasing --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3f59ee0381..42b0c689ea 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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. From 8f655d2ca69d3016dd06b9431a5b35774f0466d6 Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Tue, 13 Jun 2023 17:13:00 +0200 Subject: [PATCH 0655/1324] Add graalpy-23.0.0 --- .../share/python-build/graalpy-23.0.0 | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-23.0.0 diff --git a/plugins/python-build/share/python-build/graalpy-23.0.0 b/plugins/python-build/share/python-build/graalpy-23.0.0 new file mode 100644 index 0000000000..abdb1d9f1b --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-23.0.0 @@ -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 From d4bd7bbe2b7f9f97fdfef14877d7b0ebc8f55800 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Sat, 17 Jun 2023 22:46:05 -0600 Subject: [PATCH 0656/1324] Add PyPy 7.3.12 --- .../share/python-build/pypy2.7-7.3.12 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.12-src | 14 ++++ .../share/python-build/pypy3.10-7.3.12 | 81 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.12-src | 14 ++++ .../share/python-build/pypy3.9-7.3.12 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.12-src | 14 ++++ 6 files changed, 285 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.12 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.12-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.12 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.12-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.12 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.12-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.12 b/plugins/python-build/share/python-build/pypy2.7-7.3.12 new file mode 100644 index 0000000000..930fd6bf54 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.12 @@ -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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.12-src b/plugins/python-build/share/python-build/pypy2.7-7.3.12-src new file mode 100644 index 0000000000..6a62e74bf6 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.12-src @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.12 b/plugins/python-build/share/python-build/pypy3.10-7.3.12 new file mode 100644 index 0000000000..24128b7f7a --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.12 @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.12-src b/plugins/python-build/share/python-build/pypy3.10-7.3.12-src new file mode 100644 index 0000000000..cb91866678 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.12-src @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.12 b/plugins/python-build/share/python-build/pypy3.9-7.3.12 new file mode 100644 index 0000000000..0ff0a64d0a --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.12 @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.12-src b/plugins/python-build/share/python-build/pypy3.9-7.3.12-src new file mode 100644 index 0000000000..ef5c784735 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.12-src @@ -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' From fe76b054456cf0d08c252cf1336fe1a416afbe96 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 20 Jun 2023 03:04:06 +0300 Subject: [PATCH 0657/1324] Fix occasional 'libexec/pyenv-latest: line 39: printf: write error: Broken pipe' (#2729) --- libexec/pyenv-latest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index d4c44b60d7..d5e95e956c 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -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 From ba8b58f90dff9519b1264542d4e5a58703006067 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 20 Jun 2023 13:52:17 +0300 Subject: [PATCH 0658/1324] 2.3.21 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index d2b93a35c6..0149454e72 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -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 From 7c17c741ebe6fb94e35ef2e74d92fe1300fbcdef Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Tue, 20 Jun 2023 13:52:59 +0300 Subject: [PATCH 0659/1324] 2.3.21 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23a9ac90c2..94ebc2499f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 From ad0d131032688b5c6c55629ad6d765ef83906028 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Tue, 20 Jun 2023 07:46:41 -0600 Subject: [PATCH 0660/1324] Add CPython 3.12.0b3 --- .../python-build/share/python-build/{3.12.0b2 => 3.12.0b3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0b2 => 3.12.0b3} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0b2 b/plugins/python-build/share/python-build/3.12.0b3 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0b2 rename to plugins/python-build/share/python-build/3.12.0b3 index 00b83046f7..0e7ea1b7db 100644 --- a/plugins/python-build/share/python-build/3.12.0b2 +++ b/plugins/python-build/share/python-build/3.12.0b3 @@ -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 From 05dcd457415f8428f5dd3d27b9d3c820af08be9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20=C5=A0?= Date: Wed, 28 Jun 2023 10:26:43 +0200 Subject: [PATCH 0661/1324] Add Cinder 3.10 --- .../share/python-build/cinder-3.10-dev | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 plugins/python-build/share/python-build/cinder-3.10-dev diff --git a/plugins/python-build/share/python-build/cinder-3.10-dev b/plugins/python-build/share/python-build/cinder-3.10-dev new file mode 100644 index 0000000000..f41ee2b720 --- /dev/null +++ b/plugins/python-build/share/python-build/cinder-3.10-dev @@ -0,0 +1,31 @@ +require_distro Fedora 32 &>/dev/null || \ +{ echo + colorize 1 "WARNING" + cat >&2 </dev/null) == 10 ]] || \ +{ command -v "gcc-10" >/dev/null && \ + export CC="gcc-10" && \ + echo "python-build: setting the compiler to \`gcc-10'"; } || \ +{ + echo + colorize 1 WARNING + cat >&2 < Date: Wed, 28 Jun 2023 10:57:13 +0200 Subject: [PATCH 0662/1324] Add Cinder configure patches --- .../Cinder-3.10-dev/001-disable-werror.patch | 30 +++++++++++++++++++ .../Cinder-3.8-dev/001-disable-werror.patch | 30 +++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch create mode 100644 plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch diff --git a/plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch b/plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch new file mode 100644 index 0000000000..3014b81253 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/cinder-3.10-dev/Cinder-3.10-dev/001-disable-werror.patch @@ -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 diff --git a/plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch b/plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch new file mode 100644 index 0000000000..bbcd9a1552 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/cinder-3.8-dev/Cinder-3.8-dev/001-disable-werror.patch @@ -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 From 1874f95a0eba3479dcd51faf7e8cd44b12446b6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20=C5=A0?= Date: Sat, 1 Jul 2023 19:10:17 +0200 Subject: [PATCH 0663/1324] Update Cinder errors and warnings --- .../share/python-build/cinder-3.10-dev | 60 +++++++++++-------- .../share/python-build/cinder-3.8-dev | 60 +++++++++++-------- 2 files changed, 72 insertions(+), 48 deletions(-) diff --git a/plugins/python-build/share/python-build/cinder-3.10-dev b/plugins/python-build/share/python-build/cinder-3.10-dev index f41ee2b720..7d83cd657e 100644 --- a/plugins/python-build/share/python-build/cinder-3.10-dev +++ b/plugins/python-build/share/python-build/cinder-3.10-dev @@ -1,28 +1,40 @@ -require_distro Fedora 32 &>/dev/null || \ -{ echo - colorize 1 "WARNING" - cat >&2 <&2 +fi -[[ $(${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'"; } || \ -{ - echo - colorize 1 WARNING - cat >&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 diff --git a/plugins/python-build/share/python-build/cinder-3.8-dev b/plugins/python-build/share/python-build/cinder-3.8-dev index 5a3c8a8223..4d8a8a7aec 100644 --- a/plugins/python-build/share/python-build/cinder-3.8-dev +++ b/plugins/python-build/share/python-build/cinder-3.8-dev @@ -1,28 +1,40 @@ -require_distro Fedora 32 &>/dev/null || \ -{ echo - colorize 1 "WARNING" - cat >&2 <&2 +fi -[[ $(${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'"; } || \ -{ - echo - colorize 1 WARNING - cat >&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 From 2f8cb2cf1f093e955a72babf0b65a07f84f33522 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9sz=C3=A1ros=20M=C3=A1t=C3=A9=20R=C3=B3bert?= Date: Fri, 7 Jul 2023 16:18:02 +0200 Subject: [PATCH 0664/1324] Handle osx specific `ln` option name (#1) On OSX `ln` does not have `--symbolic` only `-s`. * bin/pyenv-link-version --------- Co-authored-by: yfprojects <62463991+real-yfprojects@users.noreply.github.com> --- bin/pyenv-link-version | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/pyenv-link-version b/bin/pyenv-link-version index 55a1102d33..45fd4f67c3 100755 --- a/bin/pyenv-link-version +++ b/bin/pyenv-link-version @@ -131,7 +131,14 @@ pyenv_prefix_path="$PYENV_ROOT/versions/$venv_name" # link to pyenv version directory if [ -z "$dry" ]; then - ln --symbolic "$venv_dir" "$pyenv_prefix_path" + # Handle OS types + case "$(uname -s)" in + Darwin*) + # long form flags aren't supported + ln -s "$venv_dir" "$pyenv_prefix_path";; + *) + ln --symbolic "$venv_dir" "$pyenv_prefix_path";; + esac fi # output From 64c70feb08cdbe99bc901d96173424a175616c55 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 8 Jul 2023 22:37:24 +0300 Subject: [PATCH 0665/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 0149454e72..c40a1254b6 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.21" +version="2.3.22" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From af1a54482b00027e5dba533477aced2f358691f5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 8 Jul 2023 22:38:47 +0300 Subject: [PATCH 0666/1324] Update CHANGELOG.md --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 94ebc2499f..b84014f2b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # 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 From 51166377b7e7812ca43736a648e05158e7d41456 Mon Sep 17 00:00:00 2001 From: "Edgar R. M" Date: Tue, 11 Jul 2023 12:50:06 -0600 Subject: [PATCH 0667/1324] Add CPython 3.12.0b4 (#2741) --- .../python-build/share/python-build/{3.12.0b3 => 3.12.0b4} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0b3 => 3.12.0b4} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0b3 b/plugins/python-build/share/python-build/3.12.0b4 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0b3 rename to plugins/python-build/share/python-build/3.12.0b4 index 0e7ea1b7db..85f5378953 100644 --- a/plugins/python-build/share/python-build/3.12.0b3 +++ b/plugins/python-build/share/python-build/3.12.0b4 @@ -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.0b3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b3.tar.xz#9160c6065e9885b37c2e57865d0bb27fc7e54aaa9c186c761da30d2bddbcc9ee" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0b4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b4.tar.xz#f05710c36aee5850f5c2769be76b80bf212aec351438fdf8adc20c38c8361fac" standard verify_py312 copy_python_gdb ensurepip else - 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 + install_package "Python-3.12.0b4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b4.tgz#93d4a21e411f2c22abe9fa5a91f08042c07b1ab6170a5a453ea6c3338718a03d" standard verify_py312 copy_python_gdb ensurepip fi From 2506c9773c28362cbc68a83a695503e3cac7199f Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Mon, 10 Jul 2023 17:24:50 -0400 Subject: [PATCH 0668/1324] Log errors when parsing existing Conda versions This makes it easier to fix file names that cannot be parsed using the current logic. --- plugins/python-build/scripts/add_miniconda.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 4e17451887..0dfd2ce151 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -289,7 +289,7 @@ def get_existing_condas(name): logger.debug("Found existing %(name)s version %(v)s", locals()) yield v except ValueError: - pass + logger.error("Unable to parse existing version %s", entry_name) def get_available_condas(name, repo): From dd5378941ac4700ab54ceacb7dbe498546d88e26 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Fri, 23 Jun 2023 20:10:18 -0400 Subject: [PATCH 0669/1324] Fix miniconda version handling Anaconda and miniconda have changed their version string format again, so the parsing needs to be done differently. `add_miniconda.py` can now parse all existing definition files properly. --- plugins/python-build/scripts/add_miniconda.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 0dfd2ce151..f5981d237e 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -150,20 +150,23 @@ def from_str(cls, s): """ Convert a string of the form "miniconda_n-ver" or "miniconda_n-py_ver-ver" to a :class:`CondaVersion` object. """ - components = s.split("-") - if len(components) == 3: - miniconda_n, py_ver, ver = components - py_ver = PyVersion(f"py{py_ver.replace('.', '')}") - else: - miniconda_n, ver = components - py_ver = None - + miniconda_n, _, remainder = s.partition("-") suffix = miniconda_n[-1] if suffix in string.digits: flavor = miniconda_n[:-1] else: flavor = miniconda_n suffix = "" + + components = remainder.split("-") + if flavor == Flavor.MINICONDA and len(components) >= 2: + py_ver, *ver_parts = components + py_ver = PyVersion(f"py{py_ver.replace('.', '')}") + ver = "-".join(ver_parts) + else: + ver = "-".join(components) + py_ver = None + return CondaVersion(Flavor(flavor), Suffix(suffix), VersionStr(ver), py_ver) def to_filename(self): From 3f6bc8d16a79d9d7215d6a8ddef06e9a74838f63 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 11 Jul 2023 17:35:35 -0400 Subject: [PATCH 0670/1324] Support miniconda with Python 3.11 --- plugins/python-build/scripts/add_miniconda.py | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index f5981d237e..929ec8808e 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -109,6 +109,7 @@ class PyVersion(StrEnum): PY38 = "py38" PY39 = "py39" PY310 = "py310" + PY311 = "py311" def version(self): first, *others = self.value[2:] From 37cc45a83117746cc16819a0b4a13606f4e9e795 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Tue, 11 Jul 2023 17:35:57 -0400 Subject: [PATCH 0671/1324] Update anaconda and miniconda with `add_miniconda.py` This adds anaconda 2023.03, anaconda 2023.07, miniconda 23.3.1, and miniconda 23.5.0. --- .../share/python-build/anaconda3-2023.03-0 | 28 +++++++++++++++++++ .../share/python-build/anaconda3-2023.03-1 | 28 +++++++++++++++++++ .../share/python-build/anaconda3-2023.07-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.10-23.3.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.10-23.5.0-3 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.11-23.5.0-3 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.3.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.5.0-3 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.3.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.5.0-3 | 28 +++++++++++++++++++ 10 files changed, 280 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.03-0 create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.03-1 create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.07-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.3.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.5.0-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.5.0-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.3.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.5.0-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.3.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.5.0-3 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.03-0 b/plugins/python-build/share/python-build/anaconda3-2023.03-0 new file mode 100644 index 0000000000..9669d7459f --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.03-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.03-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-aarch64.sh#613797154d9383355677f7dfee10db32b2c327cbedabddcb303598f242c79883" "anaconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.03-0-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-ppc64le.sh#eafeaccca96f60ebb0aa0052d9baac8eaa2ee422358ee35b12f60f37e8a3ebb2" "anaconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.03-0-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-s390x.sh#2648337081c3ce4b760457c5f00fb768ecd7d1d0957051ef5252ab380bb78233" "anaconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.03-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-Linux-x86_64.sh#19737d5c27b23a1d8740c5cb2414bf6253184ce745d0a912bb235a212a15e075" "anaconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.03-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-MacOSX-arm64.sh#d27ee5432438972e90548e3dfa89490c5dc38a723f4dcd53061f0bd9d53b1bd0" "anaconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.03-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-0-MacOSX-x86_64.sh#cc37b1eb85bdc2ade3f95201a746cdc63ee4fbfae48ee9d0c7a3cf319562452d" "anaconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.03-1 b/plugins/python-build/share/python-build/anaconda3-2023.03-1 new file mode 100644 index 0000000000..8569d3ef14 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.03-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.03-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-aarch64.sh#54e600faa2af63a25717af30ecaddf1ee428cdfebd3721a70f41462e232e8153" "anaconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.03-1-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-ppc64le.sh#a31f2d6da83534cff7c994403cc11fa634b31fcd10eb4153d00233345ee084b2" "anaconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.03-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-s390x.sh#5af1406c6350b4ba6839c49faa32a3c90f2b9845a03c35843f118dd9dd013421" "anaconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.03-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh#95102d7c732411f1458a20bdf47e4c1b0b6c8a21a2edfe4052ca370aaae57bab" "anaconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.03-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-MacOSX-arm64.sh#85152324c423fedbeed2e7491cb32e597eaeb1b86ae7a61ff7597b401fd053ce" "anaconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.03-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.03-1-MacOSX-x86_64.sh#3593921c8a5516db82f0d7dd1c691f7ee7794236852e7da614e9ad6e93eeb342" "anaconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.07-0 b/plugins/python-build/share/python-build/anaconda3-2023.07-0 new file mode 100644 index 0000000000..3d433ade7d --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.07-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.07-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-aarch64.sh#5f4865448c1111fb80cb49abff0f9b38b2970857dba7a4627c499ba102b82af5" "anaconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.07-0-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-ppc64le.sh#98efb73758680b84f890d818b5748d7a08e82c4b825d597f7e3c4467125da278" "anaconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.07-0-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-s390x.sh#f6933a8b70d346d423e089843fc151c46bdaee4e3e4e4fd0fb81ca06b8766892" "anaconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.07-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-Linux-x86_64.sh#ac738639aba0b676a618911600d0a0e7825ee7fd10efb6b3d95cc2e570d9ee7b" "anaconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.07-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-MacOSX-arm64.sh#23a9deb80acb145c65375bd73cbaa8793be81447278c4db7be50ef7c32a58635" "anaconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.07-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-0-MacOSX-x86_64.sh#b6ea24fe16544d5b2d5adf6c913c1fc89a6dbdef12a4caff76ff574b33d0f3cb" "anaconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.3.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-23.3.1-0 new file mode 100644 index 0000000000..00703dd8f4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.3.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.3.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-aarch64.sh#6950c7b1f4f65ce9b87ee1a2d684837771ae7b2e6044e0da9e915d1dee6c924c" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.3.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-ppc64le.sh#b3de538cd542bc4f5a2f2d2a79386288d6e04f0e1459755f3cefe64763e51d16" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.3.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-s390x.sh#ed4f51afc967e921ff5721151f567a4c43c4288ac93ec2393c6238b8c4891de8" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.3.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-Linux-x86_64.sh#aef279d6baea7f67940f16aad17ebe5f6aac97487c7c03466ff01f4819e5a651" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.3.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-arm64.sh#9d1d12573339c49050b0d5a840af0ff6c32d33c3de1b3db478c01878eb003d64" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.3.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.3.1-0-MacOSX-x86_64.sh#5abc78b664b7da9d14ade330534cc98283bb838c6b10ad9cfd8b9cc4153f8104" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.5.0-3 b/plugins/python-build/share/python-build/miniconda3-3.10-23.5.0-3 new file mode 100644 index 0000000000..de8ca217bd --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.5.0-3 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-aarch64.sh#a632110a9ebddd8528b26241663ee9368d218e36b40e570072774897762f1de8" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-ppc64le.sh#5ed0af4645f49c4412e33a3f94396bcb3eb25f4a3ccb0bfe5bc23ef06bad6f3f" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-s390x.sh#5701eba074e3c2894949370ab456df48361a2efaad9b11209dbf8258ddf1e331" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-Linux-x86_64.sh#738890e7a6f0719a942c632a0aab1df7a5a592c5667d0495d1f0495990a709ba" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-MacOSX-arm64.sh#ff2121c0a8245bbe63ff70cdb76b492c831889225f9c5277e096f08fd03e7f17" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.0-3-MacOSX-x86_64.sh#03a98ff5d1c813d7bf969203fe404d7a6f149b335c2077703656807721603495" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.5.0-3 b/plugins/python-build/share/python-build/miniconda3-3.11-23.5.0-3 new file mode 100644 index 0000000000..57743eaf16 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.5.0-3 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-aarch64.sh#6e3e60e7093194b3435fde19efc54d0dd78be393bf5b7487cc28cd1039ebed4d" "miniconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py311_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-ppc64le.sh#c1ab8b5d629f66a1609e456a0d6a83a2896af6dc0b2b702025cb19456030eacd" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-s390x.sh#42e7cc490fc81d9b1dc56cf8bd951e084e804824d60aca3a4b15d35c57ad373e" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-Linux-x86_64.sh#61a5c087893f6210176045931b89ee6e8760c17abd9c862b2cab4c1b7d00f7c8" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-MacOSX-arm64.sh#c4ce7311d2d1c729bf8d98e6d5aa2581ce0b08a1480985e63efaf8529b2fc6ca" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.0-3-MacOSX-x86_64.sh#2503d9e852fcaf85adca825bde84bdc297b118fd2c14316e4f27a93a190a7bdd" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.3.1-0 b/plugins/python-build/share/python-build/miniconda3-3.8-23.3.1-0 new file mode 100644 index 0000000000..1207508adb --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.3.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.3.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-aarch64.sh#ad491ebad6efec7470fe2139c8b407a895cb2c828b3233b97da6e4f22cae0cde" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.3.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-ppc64le.sh#8aa819800ba3ec88ad8518a9e4fc71ada8087547300fc53527c4ecc8072a4d50" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.3.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-s390x.sh#e4d83bb9f0900c9128504f7e3c4d3b9e5eaf3b87c4bb5190a3086947e92bd3fa" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.3.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-Linux-x86_64.sh#d1f3a4388c1a6fd065e32870f67abc39eb38f4edd36c4947ec7411e32311bd59" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.3.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-MacOSX-arm64.sh#e0151c68f6a11a38b29c2f4a775bf6a22187fa2c8ca0f31930d69f2f013c0810" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.3.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.3.1-0-MacOSX-x86_64.sh#eb7b2d285f6d3b7c9cde9576c8c647e70b65361426b0e0e069b4ab23ccbb79e2" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.5.0-3 b/plugins/python-build/share/python-build/miniconda3-3.8-23.5.0-3 new file mode 100644 index 0000000000..d1432bf2b7 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.5.0-3 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-aarch64.sh#853e1c3c24f1c4cc2a1c57b05059740127724a2b346f887e3f0bb92a6cd05fe1" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-ppc64le.sh#5bef0b71b9c9c6a27e534894e913e47e545793a549a8815bb4a66a8c9d793d45" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-s390x.sh#e0271bc3af023053258cfe01059d53769bbd32dc5542b5c96280d29dcd8568f6" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-Linux-x86_64.sh#f833ae8ad96db31d4f2a09d12f1b188721c769d60d813d7e6341c19e77bc791f" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-MacOSX-arm64.sh#5daf6837136d08a17f039b29993f67207ba90dcc90abe94c6d5a8925f6888076" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.0-3-MacOSX-x86_64.sh#54ead65ad1ff77d9cba2512a8765d64e6b7d8ae154e2fc1a6fcb01395b9a8cf3" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.3.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-23.3.1-0 new file mode 100644 index 0000000000..48b5dbd2cf --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.3.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.3.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-aarch64.sh#e93ccab720b57f821e0d758f54e9aee9bd2f0ea931ebb26b78d866704437a296" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.3.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-ppc64le.sh#d2bcef86812863adaf11fcda6df829aa508760cbde4a19174cf0fec03e8498f5" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.3.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-s390x.sh#d0b658566edd239dd50fc28ab1d3a57b8b0da707481b3b18c27d11273c4fdb5a" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.3.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-Linux-x86_64.sh#1564571a6a06a9999a75a6c65d63cb82911fc647e96ba5b729f904bf00c177d3" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.3.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-MacOSX-arm64.sh#c74474bab188b8b3dcaf0f0ca52f5e0743591dbe171766016023d052acf96502" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.3.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.3.1-0-MacOSX-x86_64.sh#54d739715feb0cd5c127865215cc9f50697709d71e9ee7da430576c5a1c8010d" "miniconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.5.0-3 b/plugins/python-build/share/python-build/miniconda3-3.9-23.5.0-3 new file mode 100644 index 0000000000..8031d63ee3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.5.0-3 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.5.0-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-aarch64.sh#f77868e96eee904cd137ebe463439258d76281830bb9e2bd330d23aea1ddd31a" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.5.0-3-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-ppc64le.sh#4bbda8ba3b8d1d26f04a469bbe29b3ef626a8b10b823f64314719e132f7c3696" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.5.0-3-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-s390x.sh#7ef72ef1411b028788c81308238b604cba46315cb42e70a2d65511c05440ebca" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.5.0-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-Linux-x86_64.sh#b7fc320922235ccbaacba7b5a61e34671e75f3a2c7110c63db0c6a9f98ecf8a8" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.5.0-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-MacOSX-arm64.sh#d006d99f86850510f9aed1a81e16a4213a4829e7ea6913f0c42054b4b0ac05a7" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.5.0-3-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.0-3-MacOSX-x86_64.sh#86ae780b5c5a32c45bc0f2e146941afea6dd1ca48e8d5e1bf99a83df255a0a78" "miniconda" verify_py39 + ;; +* ) + { 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 From e908606554919d195ecc29198e9c1447e0cfc0dd Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 22 Jul 2023 16:08:35 +0300 Subject: [PATCH 0672/1324] v2.3.23 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index c40a1254b6..828c4517ca 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.22" +version="2.3.23" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 879fa68b35608672b1b979f0e5665a6a506e1366 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sat, 22 Jul 2023 16:09:30 +0300 Subject: [PATCH 0673/1324] v2.3.23 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b84014f2b6..7904fd8878 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.3.23 + +* Add CPython 3.12.0b4 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2741 +* Add new anaconda and miniconda definitions by @aphedges in https://github.com/pyenv/pyenv/pull/2742 + ## Release v2.3.22 * Add CPython 3.12.0b3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2730 From 8aabba94854293738aea9e8d034cc981250ed7de Mon Sep 17 00:00:00 2001 From: VictorieeMan <59509525+VictorieeMan@users.noreply.github.com> Date: Sun, 23 Jul 2023 21:29:17 +0200 Subject: [PATCH 0674/1324] README: Add explicit UNIX reference into the relevant installation sections (#2744) Co-authored-by: Ivan Pozdeev --- README.md | 38 ++++++++++++++++++++------------------ 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index bd1c6f2b67..7bb47ac798 100644 --- a/README.md +++ b/README.md @@ -44,10 +44,11 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations) * **[Installation](#installation)** * [Getting Pyenv](#getting-pyenv) - * [Homebrew in macOS](#homebrew-in-macos) + * [UNIX/MacOS](#unixmacos) + * [Homebrew in macOS](#homebrew-in-macos) + * [Automatic installer](#automatic-installer) + * [Basic GitHub Checkout](#basic-github-checkout) * [Windows](#windows) - * [Automatic installer](#automatic-installer) - * [Basic GitHub Checkout](#basic-github-checkout) * [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv) * [Restart your shell](#restart-your-shell) * [Install Python build dependencies](#install-python-build-dependencies) @@ -200,7 +201,8 @@ As far as Pyenv is concerned, version names are simply directories under ## Installation ### Getting Pyenv -#### Homebrew in macOS +#### UNIX/MacOS +##### Homebrew in macOS 1. Consider installing with [Homebrew](https://brew.sh): ```sh @@ -234,19 +236,7 @@ As far as Pyenv is concerned, version names are simply directories under ~~~ -#### Windows - -Pyenv does not officially support Windows and does not work in Windows outside -the Windows Subsystem for Linux. -Moreover, even there, the Pythons it installs are not native Windows versions -but rather Linux versions running in a virtual machine -- -so you won't get Windows-specific functionality. - -If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork -- -which does install native Windows Python versions. - - -#### Automatic installer +##### Automatic installer `curl https://pyenv.run | bash` @@ -254,7 +244,7 @@ For more details visit our other project: https://github.com/pyenv/pyenv-installer -#### Basic GitHub Checkout +##### Basic GitHub Checkout This will get you going with the latest version of Pyenv and make it easy to fork and contribute any changes back upstream. @@ -270,6 +260,18 @@ easy to fork and contribute any changes back upstream. cd ~/.pyenv && src/configure && make -C src ``` +#### Windows + +Pyenv does not officially support Windows and does not work in Windows outside +the Windows Subsystem for Linux. +Moreover, even there, the Pythons it installs are not native Windows versions +but rather Linux versions running in a virtual machine -- +so you won't get Windows-specific functionality. + +If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork -- +which does install native Windows Python versions. + + ### Set up your shell environment for Pyenv **Upgrade note:** The startup logic and instructions have been updated for simplicity in 2.3.0. From ac5efed3a8a81322518b4896c29724db704a7209 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 28 Jul 2023 15:23:39 +0300 Subject: [PATCH 0675/1324] Fix FreeBSD tests in MacOS CI (#2748) Guthub have recently preinstalled x64 Homebrew OpenSSL to stock MacOS runners. This has caused FreeBSD OpenSSL detection logic to erroneously trigger when running FreeBSD tests in MacOS because their paths happened to coincide. Replaced checking a specific path with checking with pkg. --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/build.bats | 35 ++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 20b17342a5..7d0b2a16e1 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1420,7 +1420,7 @@ use_freebsd_pkg() { # check if FreeBSD if [ "FreeBSD" = "$(uname -s)" ]; then # use openssl if installed from Ports Collection - if [ -f /usr/local/include/openssl/ssl.h ]; then + if pkg info -e openssl; then package_option python configure --with-openssl="/usr/local" fi diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 76a6b6a5e5..8a0dee1c95 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -259,6 +259,38 @@ make install OUT } +@test "openssl is linked from Ports in FreeBSD if present" { + cached_tarball "Python-3.6.2" + + for i in {1..7}; do stub uname '-s : echo FreeBSD'; done + stub uname '-r : echo 11.0-RELEASE' + for i in {1..2}; do stub uname '-s : echo FreeBSD'; done + stub sysctl '-n hw.ncpu : echo 1' + + stub pkg "info -e openssl : true" + for in in {1..2}; do stub pkg false; done + + stub_make_install + + export -n MAKE_OPTS + run_inline_definition < Date: Sun, 6 Aug 2023 11:37:43 -0600 Subject: [PATCH 0676/1324] Add CPython 3.12.0rc1 --- .../python-build/share/python-build/{3.12.0b4 => 3.12.0rc1} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0b4 => 3.12.0rc1} (52%) diff --git a/plugins/python-build/share/python-build/3.12.0b4 b/plugins/python-build/share/python-build/3.12.0rc1 similarity index 52% rename from plugins/python-build/share/python-build/3.12.0b4 rename to plugins/python-build/share/python-build/3.12.0rc1 index 85f5378953..7bc7e0f252 100644 --- a/plugins/python-build/share/python-build/3.12.0b4 +++ b/plugins/python-build/share/python-build/3.12.0rc1 @@ -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.0b4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b4.tar.xz#f05710c36aee5850f5c2769be76b80bf212aec351438fdf8adc20c38c8361fac" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0rc1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc1.tar.xz#bd88d516b51474d7facae3ed7ab6a421efb17e583c21c8a749470f293e2575fc" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0b4" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0b4.tgz#93d4a21e411f2c22abe9fa5a91f08042c07b1ab6170a5a453ea6c3338718a03d" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0rc1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc1.tgz#ccd2e1bc72caaa0296c455198893c0fee7e25e56e7a23eb7d667fc8d2ba525c6" standard verify_py312 copy_python_gdb ensurepip fi From db871427c7a232e18ee7a6dc0182989a646ccca9 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 11 Aug 2023 11:57:35 +0300 Subject: [PATCH 0677/1324] Add an updated Anaconda and Miniconda installer scripts --- .../share/python-build/anaconda3-2023.07-1 | 28 +++++++++++++++++++ .../share/python-build/anaconda3-2023.07-2 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.10-23.5.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.10-23.5.2-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.11-23.5.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.11-23.5.2-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.5.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.5.2-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.5.1-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.5.2-0 | 28 +++++++++++++++++++ 10 files changed, 280 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.07-1 create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.07-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.5.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.5.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.5.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.5.2-0 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.07-1 b/plugins/python-build/share/python-build/anaconda3-2023.07-1 new file mode 100644 index 0000000000..b76a4930ad --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.07-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.07-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-aarch64.sh#2ebe549375f3f5ffec9558a8a8405ebd697e69c8133b8f9c1c5cd4ff69d1cc74" "anaconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.07-1-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-ppc64le.sh#ee149f55ebdd3f15fc1db4e9cddb5126da62e7a193fa15026c9fa009a2575d0a" "anaconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.07-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-s390x.sh#49aad1bc077334f30177443c234f3c982f1c9751fc78c4c29fb4cf736e4f61ef" "anaconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.07-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-Linux-x86_64.sh#111ce0a7f26e606863008a9519fd608b1493e483b6f487aea71d82b13fe0967e" "anaconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.07-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-MacOSX-arm64.sh#322045ad100dcc380decde5812db58c617901c6a8ac46dd7818080fe3ae19f8e" "anaconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.07-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-1-MacOSX-x86_64.sh#803b2d0c5a142af3de14b410517c2c8889eaceb1b784d4c121512ebda13af6f8" "anaconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.07-2 b/plugins/python-build/share/python-build/anaconda3-2023.07-2 new file mode 100644 index 0000000000..3c46a49eb9 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.07-2 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.07-2-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-aarch64.sh#75967bc2113d9e336e670e1e557c9198d8b98e59fb9adb82cbe0e71ce5f7c2db" "anaconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.07-2-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-ppc64le.sh#7a72e301fb3b8e175a96b6457fc84654dd2eb98942528d9988760779b92847e4" "anaconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.07-2-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-s390x.sh#121743a62210249dd9fb9d6527d545d08f6bf6d2624d51ad4b5d168cb3e860d6" "anaconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.07-2-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-Linux-x86_64.sh#589fb34fe73bc303379abbceba50f3131254e85ce4e7cd819ba4276ba29cad16" "anaconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.07-2-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-MacOSX-arm64.sh#8b08ca8a94dd5fda20d134fea13fa6c55c70d20d4b5a7a1c80d311aeb0cd7a88" "anaconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.07-2-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.07-2-MacOSX-x86_64.sh#a2f7d0c19f60d00742154db21bfb3976d82215ff58396353f4dc729828bd2f49" "anaconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-23.5.1-0 new file mode 100644 index 0000000000..1b5f19e417 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.5.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-aarch64.sh#d6a99c45326f8e849b18964090f0f5ac56bc4f173a6b18a4a5057bc09bd128f3" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-ppc64le.sh#920a8d8f9a6aa6bc1cd2ddf56cb0af779b3c70eb82d61fb05397814adfc0837f" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-s390x.sh#63962e4c21e13b680f62d8c7cf11fb1a4a2192188d0d7c0a0994099470b65567" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-Linux-x86_64.sh#9f4cd0a9f7289a1e03b79fe6d06bab0769c46c33a774ea8a94dc3c1883344d85" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-MacOSX-arm64.sh#dde48d596695115a05218d694b20212d900a66c005a1926a9018a756b1188f1f" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.1-0-MacOSX-x86_64.sh#4e5315e39ce5be6d64fb0bf0a62aa6e8d09224542fa5b9a4d695c599bd6f66b0" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.5.2-0 b/plugins/python-build/share/python-build/miniconda3-3.10-23.5.2-0 new file mode 100644 index 0000000000..a50be90b0e --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.5.2-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-aarch64.sh#24f7fe91032538cf2d9748facabae346e45e46ca21bb5f2d5875b7865dca6fa4" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-ppc64le.sh#3a76e4e400271d1589770dac8f696b03d1faf45fee57da38e8c399b6cb0daadb" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-s390x.sh#7a65b8593db0ec4b561b9968daca7c7c4f5f95cb21fe717ba895fded924bc056" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-Linux-x86_64.sh#ea5e6e8a3d5a0247b9df85382d27220fac8e59b5778fd313c5913879cd9baafc" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-MacOSX-arm64.sh#71b7ca2ae4068504f9c6dab30fd6e83694086241156af1e319d598befe0f3a26" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.5.2-0-MacOSX-x86_64.sh#13c57188a4bcb7462a7580c9ddf8ff2d301e353c835d33042a51a231667cf25d" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-23.5.1-0 new file mode 100644 index 0000000000..f0130d89dd --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.5.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-aarch64.sh#a7a68db6676075aa20991d3fac6d7cfdb2bb3c815c0c17ea26fac96241486c6b" "miniconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py311_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-ppc64le.sh#63d6756dd9956e3ff581381fd319088fe23af53df8ccad8c6f029c89f5a1e534" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-s390x.sh#4472acdf8bab722a6dc4ef0b59636feac12b3520ef3d88c1bebd11106b596a96" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-Linux-x86_64.sh#333779c9cae3fe14735949a8dcb9657b9e55ada69e9c60f191c5d582b2deac20" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-MacOSX-arm64.sh#52b3a134a73d48204e7517fb5b4378bece65a048e9a32c9276eb3fd51989b976" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.1-0-MacOSX-x86_64.sh#834a194e6d790eade3db98a78ec3f2857df13bb8b6661a26a34e67462561015b" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.5.2-0 b/plugins/python-build/share/python-build/miniconda3-3.11-23.5.2-0 new file mode 100644 index 0000000000..7bb8bd38ae --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.5.2-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-aarch64.sh#3962738cfac270ae4ff30da0e382aecf6b3305a12064b196457747b157749a7a" "miniconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py311_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-ppc64le.sh#92237cb2a443dd15005ec004f2f744b14de02cd5513a00983c2f191eb43d1b29" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-s390x.sh#221a4cd7f0a9275c3263efa07fa37385746de884f4306bb5d1fe5733ca770550" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-Linux-x86_64.sh#634d76df5e489c44ade4085552b97bebc786d49245ed1a830022b0b406de5817" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-MacOSX-arm64.sh#c8f436dbde130f171d39dd7b4fca669c223f130ba7789b83959adc1611a35644" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.5.2-0-MacOSX-x86_64.sh#1622e7a0fa60a7d3d892c2d8153b54cd6ffe3e6b979d931320ba56bd52581d4b" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.8-23.5.1-0 new file mode 100644 index 0000000000..981c7c1639 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.5.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-aarch64.sh#dcf57b73c3db9b4ce5ab1407f0573c83241b5041f2c6fd590959a091ca518b4c" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-ppc64le.sh#1c141b28ffe6dee40fc04c0d175da22270b86c63ec67e71798cd15183d10bcf2" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-s390x.sh#1c7c2188cad19a1a00bf8a5895af8bd67a06f983ea02d34ad3cdb40cb6a86224" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-Linux-x86_64.sh#05c1284d67d35abcc3a9b814cd124ec351020b9172962bcc166bf2f2ac22ea5e" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-MacOSX-arm64.sh#044bc2a3eab865448924bf2aeab069a7a61a174b132c58f6e9a88cf14c5b647c" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.1-0-MacOSX-x86_64.sh#ed617d73092e9f0b696f2b55e68126d751040ef6700c2ea38bc913bf18fd8956" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.5.2-0 b/plugins/python-build/share/python-build/miniconda3-3.8-23.5.2-0 new file mode 100644 index 0000000000..6d1246c3c5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.5.2-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-aarch64.sh#cd39b811ac9a2f9094c4dfff9ec0f7ec811d6ad7ede5ab3f1a31d330ab3a2c55" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-ppc64le.sh#6fc3bf00d4fe0c724fab884d93b981acbc22bb8fc41c144df6d2fc080ff80e25" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-s390x.sh#b840fd5a8474a3e6831cd50a64eadf73239c6ad7deeebf2c3d3fe366220b2722" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-Linux-x86_64.sh#e2a4438671e0e42c5bba14cb51de6ce9763938184d6ca2967340bbe972bbe7e6" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-MacOSX-arm64.sh#782bd1a401b20b41227a086adae98e270bbc942c3b7621788fb5574a9583142e" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.5.2-0-MacOSX-x86_64.sh#6dc8bfb3b382c31be1755545ae6afc5fbdf8a67726ffdb8a05b917204bd08779" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-23.5.1-0 new file mode 100644 index 0000000000..382bdc8ec1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.5.1-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-aarch64.sh#ac438ca1a76d78622cc7768d94988e5673983f60f0302941ce05ea4e11e1376e" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.5.1-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-ppc64le.sh#a981947722decf258e4a21f06ab5ddd545c709ba959957121a3e3b89b3dd860a" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.5.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-s390x.sh#b3ea1e4ce80901b70b49d14bc4a008d910410ddd58dead9c4c220834f5aa46c2" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-Linux-x86_64.sh#960b7aa0294d6d828739ad5542fe1d8b81bb602be401ad00febdf9d29bf37514" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-MacOSX-arm64.sh#63aaa53c1f6139d667f8e308a2849632efeb575e6223d075ab8a8c15850478d6" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.1-0-MacOSX-x86_64.sh#056b43eb844aac487e5f6e0f748c528a34cd3d38c8409f239a75bf89ffede3b9" "miniconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.5.2-0 b/plugins/python-build/share/python-build/miniconda3-3.9-23.5.2-0 new file mode 100644 index 0000000000..a3fd290d19 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.5.2-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.5.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-aarch64.sh#ecc06a39bdf786ebb8325a2754690a808f873154719c97d10087ef0883b69e84" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.5.2-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-ppc64le.sh#dc5aee01ee36a154b8070e6948b9a43773b6942476a144bc89e6135ac5beac58" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.5.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-s390x.sh#40ece8784a9e7dd521ab354ffc816bb466842ae3eee681a93647945c5070c9b4" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.5.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-Linux-x86_64.sh#9829d95f639bd0053b2ed06d1204e60644617bf37dd5cc57523732e0e8d64516" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.5.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-MacOSX-arm64.sh#1b10164086354b39a46ff928eef5797ff57e0fa9706ccaf7d4e621b416541479" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.5.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.5.2-0-MacOSX-x86_64.sh#dcbbdf92dc2954c79002b64ed53d3451e191dbdde0b30c67334f41dc6ca46ac1" "miniconda" verify_py39 + ;; +* ) + { 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 From 791ae90aef97ebb33ca457c73c03271af390e557 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 11 Aug 2023 02:20:36 -0700 Subject: [PATCH 0678/1324] 2.3.24 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 828c4517ca..21b419103a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.23" +version="2.3.24" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 79a501139fd106b39c6095467930ac506822c4c5 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 11 Aug 2023 02:21:21 -0700 Subject: [PATCH 0679/1324] 2.3.24 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7904fd8878..3af9f350af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.3.24 + +* README update: Added UNIX reference near Automatic installer by @VictorieeMan in https://github.com/pyenv/pyenv/pull/2744 +* Fix FreeBSD tests in MacOS CI by @native-api in https://github.com/pyenv/pyenv/pull/2748 +* Add CPython 3.12.0rc1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2752 +* [Add an updated Anaconda and Miniconda installers](https://github.com/pyenv/pyenv/commit/db871427c7a232e18ee7a6dc0182989a646ccca9) + ## Release v2.3.23 * Add CPython 3.12.0b4 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2741 From c85ca6ce60ba7b94b3fb2b34db7e8e8c72f4c739 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 24 Aug 2023 08:51:13 -0600 Subject: [PATCH 0680/1324] Add CPython 3.10.13 --- plugins/python-build/share/python-build/3.10.13 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.13 diff --git a/plugins/python-build/share/python-build/3.10.13 b/plugins/python-build/share/python-build/3.10.13 new file mode 100644 index 0000000000..ccd3f79121 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.13 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.13" "https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tar.xz#5c88848668640d3e152b35b4536ef1c23b2ca4bd2c957ef1ecbb053f571dd3f6" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.13" "https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz#698ec55234c1363bd813b460ed53b0f108877c7a133d48bde9a50a1eb57b7e65" standard verify_py310 copy_python_gdb ensurepip +fi From 035c9336d294470d68b504c92fe01f56e388107d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 24 Aug 2023 12:16:47 -0600 Subject: [PATCH 0681/1324] Add CPython 3.11.5 --- plugins/python-build/share/python-build/3.11.5 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.5 diff --git a/plugins/python-build/share/python-build/3.11.5 b/plugins/python-build/share/python-build/3.11.5 new file mode 100644 index 0000000000..39f21e4f55 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.5 @@ -0,0 +1,10 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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.11.5" "https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz#85cd12e9cf1d6d5a45f17f7afe1cebe7ee628d3282281c492e86adf636defa3f" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.5" "https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tgz#a12a0a013a30b846c786c010f2c19dd36b7298d888f7c4bd1581d90ce18b5e58" standard verify_py311 copy_python_gdb ensurepip +fi From 552827d3f990aff099a448b9cfe176a61fb7d116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 24 Aug 2023 14:06:46 -0600 Subject: [PATCH 0682/1324] Add CPython 3.9.18 --- plugins/python-build/share/python-build/3.9.18 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.18 diff --git a/plugins/python-build/share/python-build/3.9.18 b/plugins/python-build/share/python-build/3.9.18 new file mode 100644 index 0000000000..5d524e95c2 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.18 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.18" "https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tar.xz#01597db0132c1cf7b331eff68ae09b5a235a3c3caa9c944c29cac7d1c4c4c00a" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.18" "https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz#504ce8cfd59addc04c22f590377c6be454ae7406cb1ebf6f5a350149225a9354" standard verify_py39 copy_python_gdb ensurepip +fi From a8075debe540968adf9773b43ee1cb4a5e46d655 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 24 Aug 2023 14:56:43 -0600 Subject: [PATCH 0683/1324] Add CPython 3.8.18 --- plugins/python-build/share/python-build/3.8.18 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.8.18 diff --git a/plugins/python-build/share/python-build/3.8.18 b/plugins/python-build/share/python-build/3.8.18 new file mode 100644 index 0000000000..8527e17a8c --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.18 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.18" "https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tar.xz#3ffb71cd349a326ba7b2fadc7e7df86ba577dd9c4917e52a8401adbda7405e3f" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.18" "https://www.python.org/ftp/python/3.8.18/Python-3.8.18.tgz#7c5df68bab1be81a52dea0cc2e2705ea00553b67107a301188383d7b57320b16" standard verify_py38 copy_python_gdb ensurepip +fi From 14cf54fb1cd11364d85e05c0e14f79efb13d3560 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 27 Aug 2023 01:29:26 -0700 Subject: [PATCH 0684/1324] Update CHANGELOG.md --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3af9f350af..cb137afb93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.3.25 + +* Add CPython 3.8.18, 3.9.18, 3.10.13, 3.11.5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2763 + ## Release v2.3.24 * README update: Added UNIX reference near Automatic installer by @VictorieeMan in https://github.com/pyenv/pyenv/pull/2744 From 7ec5c30451393d21ddc1e3ed5a588b717d77305e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 27 Aug 2023 01:29:50 -0700 Subject: [PATCH 0685/1324] Update pyenv---version --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 21b419103a..a8636e18df 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.24" +version="2.3.25" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 6be623144482cedd28446c7d1be86d399bec3aeb Mon Sep 17 00:00:00 2001 From: Evan Pitstick Date: Fri, 25 Aug 2023 08:06:08 +0300 Subject: [PATCH 0686/1324] Use -I with ensurepip The -s flag assures that nothing can be installed to user site-packages but doesn't keep ensurepip from looking there for Pip. If Pip is installed in the user site-packages directory, pip won't be installed for the newly built python -- and its shim won't be created. -I makes the build install Pip in any case. The user site-packages installation will override it -- but we'll have the shim at least. --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/pyenv_ext.bats | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 20b17342a5..531d8eb3a7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2025,7 +2025,7 @@ build_package_ensurepip() { ensurepip_opts="--altinstall" fi # FIXME: `--altinstall` with `get-pip.py` - "$PYTHON_BIN" -s -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1 + "$PYTHON_BIN" -I -m ensurepip ${ensurepip_opts} 1>/dev/null 2>&1 || build_package_get_pip "$@" || return 1 build_package_symlink_version_suffix } diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index a2b73f61e3..ccf6f4c6dd 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -200,7 +200,7 @@ OUT assert_success assert_build_log < Date: Sun, 27 Aug 2023 20:23:37 +0300 Subject: [PATCH 0687/1324] gitignore the bulid directory for tests --- plugins/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/.gitignore b/plugins/.gitignore index e209208591..acd0fcce1e 100644 --- a/plugins/.gitignore +++ b/plugins/.gitignore @@ -2,3 +2,4 @@ !/.gitignore !/version-ext-compat !/python-build +/python-build/test/build From e1b7e1b51927517594e845ac9402abf6313976d2 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Mon, 28 Aug 2023 16:57:04 -0400 Subject: [PATCH 0688/1324] Fix "grep: warning: stray \ before -" in `conda.bash` (#2768) According to the POSIX spec, an unescaped backslash not followed by an escapable character is undefined behavior, and it has become an error in GNU grep 3.8 (2022-09-02). --- pyenv.d/rehash/conda.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index aaf8888410..884cd4f2af 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -35,7 +35,7 @@ make_shims() { deregister_conda_shims() { # adapted for Bash 4.x's associative array (#1749) - if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) \-A'; then + if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) -A'; then for shim in ${!registered_shims[*]}; do if conda_shim "${shim}" 1>&2; then unset registered_shims[${shim}] From 3ba8df29e58be9af002eb39798fec8663465bb09 Mon Sep 17 00:00:00 2001 From: Meng Xiangzhuo Date: Tue, 29 Aug 2023 16:45:11 +0800 Subject: [PATCH 0689/1324] fix a typo in README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7bb47ac798..ea739f391f 100644 --- a/README.md +++ b/README.md @@ -573,7 +573,7 @@ uninstall from the system. ## Pyenv plugins -Pyenv provides a simple, flexible and maintainable way to extend and customize its functionalty with plugins -- +Pyenv provides a simple, flexible and maintainable way to extend and customize its functionality with plugins -- as simple as creating a plugin directory and dropping a shell script on a certain subpath of it with whatever extra logic you need to be run at certain moments. From 1dbb1009339d9a346a05fba07b293bf660db53ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Wed, 6 Sep 2023 16:14:28 -0600 Subject: [PATCH 0690/1324] Add CPython 3.12.0rc2 (#2778) --- plugins/python-build/share/python-build/3.12.0rc1 | 9 --------- plugins/python-build/share/python-build/3.12.0rc2 | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.12.0rc1 create mode 100644 plugins/python-build/share/python-build/3.12.0rc2 diff --git a/plugins/python-build/share/python-build/3.12.0rc1 b/plugins/python-build/share/python-build/3.12.0rc1 deleted file mode 100644 index 7bc7e0f252..0000000000 --- a/plugins/python-build/share/python-build/3.12.0rc1 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl11 -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.0rc1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc1.tar.xz#bd88d516b51474d7facae3ed7ab6a421efb17e583c21c8a749470f293e2575fc" standard verify_py312 copy_python_gdb ensurepip -else - install_package "Python-3.12.0rc1" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc1.tgz#ccd2e1bc72caaa0296c455198893c0fee7e25e56e7a23eb7d667fc8d2ba525c6" standard verify_py312 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.12.0rc2 b/plugins/python-build/share/python-build/3.12.0rc2 new file mode 100644 index 0000000000..159e176e54 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.0rc2 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.1.1s" "https://www.openssl.org/source/openssl-3.1.1s.tar.gz#b3aa61334233b852b63ddb048df181177c2c659eb9d4376008118f9c08d07674" 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.0rc2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc2.tar.xz#11eb10376e6baf7bea53001f5181eaee1797788c4db6e83a061e422357927674" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.0rc2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc2.tgz#c3ef992c5c0067bc9a185de79fe0c1650a9a061b4d47d8787de20e04f22e2b29" standard verify_py312 copy_python_gdb ensurepip +fi From abfa56e31de355ef53513ea62e92c2b288f1fb47 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 7 Sep 2023 11:36:22 +0300 Subject: [PATCH 0691/1324] v2.3.26 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb137afb93..fef38f0e7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.3.26 + +* Prevent `grep` warning in `conda.bash` by @aphedges in https://github.com/pyenv/pyenv/pull/2768 +* fix a typo in README.md by @xzmeng in https://github.com/pyenv/pyenv/pull/2769 +* use -I with ensurepip by @xaocon in https://github.com/pyenv/pyenv/pull/2764 +* Add CPython 3.12.0rc2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2778 + ## Release v2.3.25 * Add CPython 3.8.18, 3.9.18, 3.10.13, 3.11.5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2763 From bdfb80cc129d0aed666700d582a42d19cc7902a1 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Thu, 7 Sep 2023 11:36:40 +0300 Subject: [PATCH 0692/1324] v2.3.26 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a8636e18df..181315c45f 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.25" +version="2.3.26" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 259b5cad268dbc4826bcf9b8410869681d9d408e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 7 Sep 2023 22:03:00 +0300 Subject: [PATCH 0693/1324] Remove 3.7 from CI 3.7 is EOL since 2023-06-27 https://peps.python.org/pep-0537/ --- .github/workflows/macos_build.yml | 1 - .github/workflows/ubuntu_build.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index a56c3f7a2e..dfd6f3b44a 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -10,7 +10,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.7" - "3.8" - "3.9" - "3.10" diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index f43f5410ef..ac4434deb4 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -10,7 +10,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.7" - "3.8" - "3.9" - "3.10" From da3ac7b7a379652d1e3cd6c3b0adc2018f1a2a32 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 7 Sep 2023 22:11:04 +0300 Subject: [PATCH 0694/1324] Prefer OpenSSL 3 in Homebrew since 3.12 (#2781) --- plugins/python-build/bin/python-build | 6 ++++++ plugins/python-build/share/python-build/3.12-dev | 2 +- plugins/python-build/share/python-build/3.12.0rc2 | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 2e8bf1cfce..2f1d8ebb6a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1474,6 +1474,12 @@ prefer_openssl11() { export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA } +prefer_openssl3() { + # Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) + PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@1.1 openssl}" + export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA +} + build_package_mac_readline() { # Install to a subdirectory since we don't want shims for bin/readline. READLINE_PREFIX_PATH="${PREFIX_PATH}/readline" diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index 8b9d23b2ab..7fbdcf5f6d 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 diff --git a/plugins/python-build/share/python-build/3.12.0rc2 b/plugins/python-build/share/python-build/3.12.0rc2 index 159e176e54..1abccea1b7 100644 --- a/plugins/python-build/share/python-build/3.12.0rc2 +++ b/plugins/python-build/share/python-build/3.12.0rc2 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.1.1s" "https://www.openssl.org/source/openssl-3.1.1s.tar.gz#b3aa61334233b852b63ddb048df181177c2c659eb9d4376008118f9c08d07674" 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 From 8cfc75604b17308c23f6edcf58bc8b2f55e1debb Mon Sep 17 00:00:00 2001 From: Timothy Pansino <11214426+TimPansino@users.noreply.github.com> Date: Sat, 16 Sep 2023 01:02:21 -0700 Subject: [PATCH 0695/1324] Fix get-pip urls for older pypy versions (#2788) --- plugins/python-build/bin/python-build | 6 +-- plugins/python-build/test/pyenv_ext.bats | 56 ++++++++++++++++++++++++ 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 2f1d8ebb6a..6d777af2ff 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2337,7 +2337,7 @@ if [ -z "${GET_PIP_URL}" ]; then 2.6 | 2.6.* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/2.6/get-pip.py" ;; - 2.7 | 2.7.* ) + 2.7 | 2.7.* | pypy2.7 | pypy2.7-* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/2.7/get-pip.py" ;; 3.2 | 3.2.* ) @@ -2349,10 +2349,10 @@ if [ -z "${GET_PIP_URL}" ]; then 3.4 | 3.4.* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/3.4/get-pip.py" ;; - 3.5 | 3.5.* ) + 3.5 | 3.5.* | pypy3.5 | pypy3.5-* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/3.5/get-pip.py" ;; - 3.6 | 3.6.* ) + 3.6 | 3.6.* | pypy3.6 | pypy3.6-* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/3.6/get-pip.py" ;; * ) diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index ccf6f4c6dd..6212638bad 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -393,6 +393,14 @@ OUT assert_success } +@test "use the custom GET_PIP_URL for 2.7 versions" { + run_inline_definition_with_name --name=2.7 < Date: Sat, 16 Sep 2023 03:48:52 -0700 Subject: [PATCH 0696/1324] Update openssl url for 3.12.0rc2 The old 3.1.1s URL returns a 404 --- plugins/python-build/share/python-build/3.12.0rc2 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.12.0rc2 b/plugins/python-build/share/python-build/3.12.0rc2 index 1abccea1b7..6d5b1cc714 100644 --- a/plugins/python-build/share/python-build/3.12.0rc2 +++ b/plugins/python-build/share/python-build/3.12.0rc2 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.1.1s" "https://www.openssl.org/source/openssl-3.1.1s.tar.gz#b3aa61334233b852b63ddb048df181177c2c659eb9d4376008118f9c08d07674" mac_openssl --if has_broken_mac_openssl +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.12.0rc2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc2.tar.xz#11eb10376e6baf7bea53001f5181eaee1797788c4db6e83a061e422357927674" standard verify_py312 copy_python_gdb ensurepip From 64af7c3e54b71ee169ceaa73432ff58b6c244acf Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 17 Sep 2023 10:47:49 +0300 Subject: [PATCH 0697/1324] v2.3.27 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fef38f0e7e..98b34c582e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +# Release v2.3.27 + +* Prefer OpenSSL 3 in Homebrew since 3.12 by @native-api in https://github.com/pyenv/pyenv/pull/2781 +* Fix get-pip urls for older pypy versions by @TimPansino in https://github.com/pyenv/pyenv/pull/2788 +* Update openssl url for 3.12.0rc2 by @zsol in https://github.com/pyenv/pyenv/pull/2789 + ## Release v2.3.26 * Prevent `grep` warning in `conda.bash` by @aphedges in https://github.com/pyenv/pyenv/pull/2768 From c844b332ca9744ee5273a8c40396f29b0d730bdf Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 17 Sep 2023 10:48:10 +0300 Subject: [PATCH 0698/1324] v2.3.27 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 181315c45f..7b6e566c02 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.26" +version="2.3.27" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d2c4d963d2992ce89cacf7806cc1e07c20e67c8c Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 18 Sep 2023 00:46:59 +0300 Subject: [PATCH 0699/1324] Prioritize 'zlib from xcode sdk' flag correctly (#2791) All include directories should go into CPPFLAGS. XCode SDK was being added to CFLAGS instead which caused old Tcl/Tk in the SDK to override a newer one in Homebrew. --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 6d777af2ff..349c8de567 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1616,7 +1616,7 @@ 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" - export CFLAGS="${CFLAGS:+$CFLAGS }-I${xc_sdk_path}/usr/include" + 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" fi From a82598e17413f04c001b43cb2468a5a2962377bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Mon, 18 Sep 2023 22:53:45 -0600 Subject: [PATCH 0700/1324] Prefer OpenSSL 3 in Homebrew in 3.13-dev (#2793) --- plugins/python-build/share/python-build/3.13-dev | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.13-dev b/plugins/python-build/share/python-build/3.13-dev index 5384da3a29..8c4740e473 100644 --- a/plugins/python-build/share/python-build/3.13-dev +++ b/plugins/python-build/share/python-build/3.13-dev @@ -1,7 +1,7 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +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.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_git "Python-3.13-dev" "https://github.com/python/cpython" main standard verify_py313 copy_python_gdb ensurepip From bed2ec2f73e6b9cf820ca99a2a191279e7d75800 Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Tue, 19 Sep 2023 20:31:10 +0530 Subject: [PATCH 0701/1324] Add CPython 3.12.0rc3 (#2795) --- .../python-build/share/python-build/{3.12.0rc2 => 3.12.0rc3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.12.0rc2 => 3.12.0rc3} (58%) diff --git a/plugins/python-build/share/python-build/3.12.0rc2 b/plugins/python-build/share/python-build/3.12.0rc3 similarity index 58% rename from plugins/python-build/share/python-build/3.12.0rc2 rename to plugins/python-build/share/python-build/3.12.0rc3 index 6d5b1cc714..b822de1cff 100644 --- a/plugins/python-build/share/python-build/3.12.0rc2 +++ b/plugins/python-build/share/python-build/3.12.0rc3 @@ -3,7 +3,7 @@ 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.12.0rc2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc2.tar.xz#11eb10376e6baf7bea53001f5181eaee1797788c4db6e83a061e422357927674" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0rc3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc3.tar.xz#96397e891e98802b1d399dee3ceaeb9bcf0aa2566c8a7b1cce4d0196c277506a" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0rc2" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc2.tgz#c3ef992c5c0067bc9a185de79fe0c1650a9a061b4d47d8787de20e04f22e2b29" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0rc3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc3.tgz#b808294fb2e1c4511ec2ec3c0b643a047f94de64f95ec912e3880bbcc73bd101" standard verify_py312 copy_python_gdb ensurepip fi From 8b0c743f122a29023797047f9b5fe4c833fb5902 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 19 Sep 2023 19:48:31 +0200 Subject: [PATCH 0702/1324] Add graalpy-23.1.0 (#2796) --- .../python-build/graalpy-community-23.1.0 | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-community-23.1.0 diff --git a/plugins/python-build/share/python-build/graalpy-community-23.1.0 b/plugins/python-build/share/python-build/graalpy-community-23.1.0 new file mode 100644 index 0000000000..dcda3848d3 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-23.1.0 @@ -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.1.0' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="720334d90d52b5337db018ad6582953e9383c27188f08810250c2fe14a11db5a" + ;; +"linux-aarch64" ) + checksum="c7dc4f94413e667070f7d46f57af04c4db53383e721be9637b58cb030dfa1f58" + ;; +"macos-amd64" ) + checksum="13583382ba716231edce1b71d53e9efba776fef003ef2f515bda9c00a831779a" + ;; +"macos-aarch64" ) + checksum="5bc39af6938c507ec169b02a34237b6f4b286982e5be04b3109c171becc1949d" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-${VERSION}${BUILD}" "${url}" "copy" ensurepip From f7f096503aec966bd7a0573b77085bc73391277f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20Papp?= <108480845+lpapp-foundry@users.noreply.github.com> Date: Sat, 23 Sep 2023 17:47:15 +0100 Subject: [PATCH 0703/1324] Update the OpenSSL dependency for Python 2.7.18 to 1.1 (#2797) It seems that pyenv cannot install 2.7.18 on Mac M1 (Apple ARM). openssl 1.0.2 does not have ARM support. M1 support was added in 1.1.1i according to https://www.openssl.org/news/cl111.txt --- plugins/python-build/share/python-build/2.7.18 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/2.7.18 b/plugins/python-build/share/python-build/2.7.18 index 544f3a7e4e..5725575ddb 100644 --- a/plugins/python-build/share/python-build/2.7.18 +++ b/plugins/python-build/share/python-build/2.7.18 @@ -1,5 +1,5 @@ export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="openssl@1.1 openssl@1.0 openssl" -install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" mac_openssl --if has_broken_mac_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 From 3fda63be304d959fa071ad99d1513599801d231e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Mon, 2 Oct 2023 08:54:31 -0600 Subject: [PATCH 0704/1324] Add CPython 3.12.0 --- plugins/python-build/share/python-build/3.12-dev | 2 +- plugins/python-build/share/python-build/{3.12.0rc3 => 3.12.0} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename plugins/python-build/share/python-build/{3.12.0rc3 => 3.12.0} (52%) diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index 7fbdcf5f6d..69ca817b56 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -2,6 +2,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 -install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl +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.0" "https://ftpmirror.gnu.org/readline/readline-8.0.tar.gz#e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461" mac_readline --if has_broken_mac_readline install_git "Python-3.12-dev" "https://github.com/python/cpython" 3.12 standard verify_py312 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.12.0rc3 b/plugins/python-build/share/python-build/3.12.0 similarity index 52% rename from plugins/python-build/share/python-build/3.12.0rc3 rename to plugins/python-build/share/python-build/3.12.0 index b822de1cff..605867fae4 100644 --- a/plugins/python-build/share/python-build/3.12.0rc3 +++ b/plugins/python-build/share/python-build/3.12.0 @@ -3,7 +3,7 @@ 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.12.0rc3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc3.tar.xz#96397e891e98802b1d399dee3ceaeb9bcf0aa2566c8a7b1cce4d0196c277506a" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz#795c34f44df45a0e9b9710c8c71c15c671871524cd412ca14def212e8ccb155d" standard verify_py312 copy_python_gdb ensurepip else - install_package "Python-3.12.0rc3" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0rc3.tgz#b808294fb2e1c4511ec2ec3c0b643a047f94de64f95ec912e3880bbcc73bd101" standard verify_py312 copy_python_gdb ensurepip + install_package "Python-3.12.0" "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz#51412956d24a1ef7c97f1cb5f70e185c13e3de1f50d131c0aac6338080687afb" standard verify_py312 copy_python_gdb ensurepip fi From 3edc31eb3d3d305a0996869e0b97c3ff00e32c49 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 2 Oct 2023 19:53:49 +0300 Subject: [PATCH 0705/1324] v2.3.28 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98b34c582e..dc1f1c5003 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +# Release v2.3.28 + +* Prioritize 'zlib from xcode sdk' flag correctly by @native-api in https://github.com/pyenv/pyenv/pull/2791 +* Prefer OpenSSL 3 in Homebrew in 3.13-dev by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2793 +* Add CPython 3.12.0rc3 by @saaketp in https://github.com/pyenv/pyenv/pull/2795 +* Add graalpy-23.1.0 and split between graalpy and graalpy-community by @msimacek in https://github.com/pyenv/pyenv/pull/2796 +* Update the OpenSSL dependency for Python 2.7.18 by @lpapp-foundry in https://github.com/pyenv/pyenv/pull/2797 +* Add CPython 3.12.0 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2804 + # Release v2.3.27 * Prefer OpenSSL 3 in Homebrew since 3.12 by @native-api in https://github.com/pyenv/pyenv/pull/2781 From a19d6138778fbe5f76816ad162ccd1de3da47d4e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 2 Oct 2023 19:54:11 +0300 Subject: [PATCH 0706/1324] Update CHANGELOG.md --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc1f1c5003..cb1f051d14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Version History -# Release v2.3.28 +## Release v2.3.28 * Prioritize 'zlib from xcode sdk' flag correctly by @native-api in https://github.com/pyenv/pyenv/pull/2791 * Prefer OpenSSL 3 in Homebrew in 3.13-dev by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2793 @@ -9,7 +9,7 @@ * Update the OpenSSL dependency for Python 2.7.18 by @lpapp-foundry in https://github.com/pyenv/pyenv/pull/2797 * Add CPython 3.12.0 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2804 -# Release v2.3.27 +## Release v2.3.27 * Prefer OpenSSL 3 in Homebrew since 3.12 by @native-api in https://github.com/pyenv/pyenv/pull/2781 * Fix get-pip urls for older pypy versions by @TimPansino in https://github.com/pyenv/pyenv/pull/2788 From 28e7000b485bff61235d8a691c3989c9a5ed0a53 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 2 Oct 2023 19:54:39 +0300 Subject: [PATCH 0707/1324] v2.3.28 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 7b6e566c02..a8e76e1452 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.27" +version="2.3.28" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 7fbec9a971ba877245199e0128e5535997f24d39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Rom=C3=A1n?= Date: Mon, 2 Oct 2023 14:10:51 -0700 Subject: [PATCH 0708/1324] Add CPython 3.11.6 --- plugins/python-build/share/python-build/3.11.6 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.6 diff --git a/plugins/python-build/share/python-build/3.11.6 b/plugins/python-build/share/python-build/3.11.6 new file mode 100644 index 0000000000..de1bdbd46d --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.6 @@ -0,0 +1,10 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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.11.6" "https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz#0fab78fa7f133f4f38210c6260d90d7c0d5c7198446419ce057ec7ac2e6f5f38" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.6" "https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz#c049bf317e877cbf9fce8c3af902436774ecef5249a29d10984ca3a37f7f4736" standard verify_py311 copy_python_gdb ensurepip +fi From 931a7d7c7f5a4f854262167c0df5ddd775776b0e Mon Sep 17 00:00:00 2001 From: Benoit Daloze Date: Thu, 5 Oct 2023 12:03:39 +0200 Subject: [PATCH 0709/1324] Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution * Use the new Oracle GraalVM distribution to provide the best user experience, as it significantly faster than GraalVM CE and is free for development and production use: https://medium.com/graalvm/whats-new-in-graalvm-languages-161527df3d76 --- .../share/python-build/graalpy-23.1.0 | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-23.1.0 diff --git a/plugins/python-build/share/python-build/graalpy-23.1.0 b/plugins/python-build/share/python-build/graalpy-23.1.0 new file mode 100644 index 0000000000..c7915da0fe --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-23.1.0 @@ -0,0 +1,63 @@ +# 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.1.0' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-23.1.0" && echo + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="afbb81f034e77aecf4717fe14f2a7403aa1b82f0abf53a2e55e46bd49efe8c39" + ;; +"linux-aarch64" ) + checksum="be1e21ea245ddbdb9c266e670d6f1e76a55c693f98cee44aa74a76b249e53f96" + ;; +"macos-amd64" ) + checksum="6445537c597567ccf5ae37d296ecd988a92149fb4a1fb57088811e75f19c6da4" + ;; +"macos-aarch64" ) + checksum="f1b9b22cd8c0afb7eabd59fad554c23f452fbafcdffccf8a22eca037199d62ae" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip From 928f69cf9ab4df25074de1196e9c3cffe02087f6 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Thu, 5 Oct 2023 23:59:29 -0400 Subject: [PATCH 0710/1324] Install ncurses from Homebrew, if available (#2813) XCode Command Line Tools 15.0 was recently released, and it contains a broken version of ncurses 6.0. Some uses of Python's `curses` module will segfault when compiled with it. The solution is to switch to using the version of ncurses from Homebrew, which is currently 6.4. Support for ncurses 6 was added to Python 3.7 and was backported to 3.6 and 2.7, so this change should not break any recently supported Python versions. Tested with Python 3.12, 3.11, and 2.7, and all tests in the `test.test_curses` module pass without issue. See https://github.com/python/cpython/issues/109617 and https://github.com/python/cpython/issues/69906 for more information. --- plugins/python-build/bin/python-build | 13 ++++ plugins/python-build/test/build.bats | 96 ++++++++++++++++-------- plugins/python-build/test/compiler.bats | 2 +- plugins/python-build/test/pyenv_ext.bats | 2 +- 4 files changed, 78 insertions(+), 35 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 349c8de567..783848dc5a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -803,6 +803,7 @@ build_package_standard_build() { use_homebrew || true use_tcltk || true use_homebrew_readline || use_freebsd_pkg || true + use_homebrew_ncurses || true if is_mac -ge 1014; then use_xcode_sdk_zlib || use_homebrew_zlib || true else @@ -1468,6 +1469,18 @@ use_homebrew_readline() { fi } +use_homebrew_ncurses() { + can_use_homebrew || return 1 + local libdir="$(brew --prefix ncurses 2>/dev/null || true)" + if [ -d "$libdir" ]; then + echo "python-build: use ncurses from homebrew" + export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" + else + return 1 + fi +} + prefer_openssl11() { # Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl}" diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 8a0dee1c95..f050e4b582 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -62,7 +62,7 @@ assert_build_log() { cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + for i in {1..10}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -89,7 +89,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + for i in {1..10}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -119,7 +119,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + for i in {1..10}; do stub uname '-s : echo Linux'; done stub brew false stub_make_install stub_make_install @@ -151,7 +151,7 @@ OUT BREW_PREFIX="$TMP/homebrew-prefix" mkdir -p "$BREW_PREFIX" - for i in {1..8}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix : echo '$BREW_PREFIX'" false stub_make_install @@ -179,10 +179,10 @@ OUT brew_libdir="$TMP/homebrew-yaml" mkdir -p "$brew_libdir" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix libyaml : echo '$brew_libdir'" - for i in {1..4}; do stub brew false; done + for i in {1..5}; do stub brew false; done stub_make_install install_fixture definitions/needs-yaml @@ -205,7 +205,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + for i in {1..10}; do stub uname '-s : echo Linux'; done stub brew true; brew stub_make_install stub_make_install @@ -234,11 +234,11 @@ OUT readline_libdir="$TMP/homebrew-readline" mkdir -p "$readline_libdir" - for i in {1..7}; do stub uname '-s : echo Darwin'; done + for i in {1..8}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done for i in {1..2}; do stub brew false; done stub brew "--prefix readline : echo '$readline_libdir'" - stub brew false + for i in {1..2}; do stub brew false; done stub_make_install run_inline_definition <>"$tcl_tk_libdir/lib/tclConfig.sh" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew false for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done - for i in {1..2}; do stub brew false; done + for i in {1..3}; do stub brew false; done stub_make_install @@ -452,10 +482,10 @@ OUT tcl_tk_version_long="8.6.10" tcl_tk_version="${tcl_tk_version_long%.*}" - for i in {1..8}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..4}; do stub brew false; done + for i in {1..5}; do stub brew false; done stub_make_install export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${TMP}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'" @@ -480,7 +510,7 @@ OUT @test "tcl-tk is linked from Homebrew via pkgconfig only when envvar is set" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done tcl_tk_libdir="$TMP/homebrew-tcl-tk" @@ -488,7 +518,7 @@ OUT stub brew false for i in {1..2}; do stub brew "--prefix tcl-tk : echo '${tcl_tk_libdir}'"; done - for i in {1..2}; do stub brew false; done + for i in {1..3}; do stub brew false; done stub_make_install @@ -513,7 +543,7 @@ OUT @test "number of CPU cores defaults to 2" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done stub sysctl false @@ -540,7 +570,7 @@ OUT @test "number of CPU cores is detected on Mac" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done stub sysctl '-n hw.ncpu : echo 4' @@ -570,7 +600,7 @@ OUT for i in {1..7}; do stub uname '-s : echo FreeBSD'; done stub uname '-r : echo 11.0-RELEASE' - for i in {1..2}; do stub uname '-s : echo FreeBSD'; done + for i in {1..3}; do stub uname '-s : echo FreeBSD'; done for i in {1..3}; do stub pkg false; done stub sysctl '-n hw.ncpu : echo 1' @@ -597,7 +627,7 @@ OUT @test "setting PYTHON_MAKE_INSTALL_OPTS to a multi-word string" { cached_tarball "Python-3.6.2" - for i in {1..8}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Linux'; done stub_make_install @@ -621,7 +651,7 @@ OUT @test "(PYTHON_)CONFIGURE_OPTS and (PYTHON_)MAKE_OPTS take priority over automatically added options" { cached_tarball "Python-3.6.2" - for i in {1..8}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Linux'; done stub_make_install @@ -649,7 +679,7 @@ OUT @test "--enable-shared is not added if --disable-shared is passed" { cached_tarball "Python-3.6.2" - for i in {1..8}; do stub uname '-s : echo Linux'; done + for i in {1..9}; do stub uname '-s : echo Linux'; done stub_make_install @@ -673,9 +703,9 @@ OUT @test "configuring with dSYM in MacOS" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..4}; do stub brew false; done + for i in {1..5}; do stub brew false; done stub_make_install run_inline_definition <> build.log' stub_make_install diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index 8f9f3eeab9..63da580001 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -69,7 +69,7 @@ DEF mkdir -p "$INSTALL_ROOT" cd "$INSTALL_ROOT" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..3}; do stub sw_vers '-productVersion : echo 10.10'; done stub cc 'false' diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 6212638bad..a4d45901e9 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -325,7 +325,7 @@ EOS cached_tarball "Python-3.6.2" for i in {1..4}; do stub brew false; done - for i in {1..7}; do stub uname '-s : echo Linux'; done + for i in {1..8}; do stub uname '-s : echo Linux'; done stub "$MAKE" \ " : echo \"$MAKE \$@\" >> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" From 7d7e7e5b93b12c83823fd975ee0d67026401dc31 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 6 Oct 2023 08:05:28 +0300 Subject: [PATCH 0711/1324] v2.3.29 --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index cb1f051d14..090998468d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.3.29 + +* Add CPython 3.11.6 by @thecesrom in https://github.com/pyenv/pyenv/pull/2806 +* Add GraalPy 23.1.0 definition using the faster Oracle GraalVM distribution by @eregon in https://github.com/pyenv/pyenv/pull/2812 +* Install ncurses from Homebrew, if available by @aphedges in https://github.com/pyenv/pyenv/pull/2813 + ## Release v2.3.28 * Prioritize 'zlib from xcode sdk' flag correctly by @native-api in https://github.com/pyenv/pyenv/pull/2791 From bb38acd99460f6dd2c5367cbc28947c4ef2fc209 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 6 Oct 2023 08:05:47 +0300 Subject: [PATCH 0712/1324] v2.3.29 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a8e76e1452..3e3017a26c 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.28" +version="2.3.29" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From dee8a9dbadd87ec6fa677c73a5e0c306aef42935 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 12 Oct 2023 22:09:48 +0300 Subject: [PATCH 0713/1324] Fix intermittent "broken pipe" in version sort test (#2817) --- test/versions.bats | 1 + 1 file changed, 1 insertion(+) diff --git a/test/versions.bats b/test/versions.bats index 895e550f7d..ad2cf07ab3 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -201,6 +201,7 @@ OUT create_version "1.218.0" create_executable sort </dev/null if [ "\$1" == "--version-sort" ]; then echo "${PYENV_ROOT}/versions/1.9.0" echo "${PYENV_ROOT}/versions/1.53.0" From b8b6846a21536c9321b4787138889fbe180113c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Fri, 13 Oct 2023 12:07:42 -0600 Subject: [PATCH 0714/1324] Add CPython 3.13.0a1 (#2818) --- plugins/python-build/share/python-build/3.13.0a1 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.0a1 diff --git a/plugins/python-build/share/python-build/3.13.0a1 b/plugins/python-build/share/python-build/3.13.0a1 new file mode 100644 index 0000000000..6ec8bbcfe9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0a1 @@ -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 From c6f0d31dc937f8805d231987f030ac506be19130 Mon Sep 17 00:00:00 2001 From: Dan Dees Date: Wed, 4 Oct 2023 02:30:27 +0300 Subject: [PATCH 0715/1324] pypy 3.7.13 --- .../share/python-build/pypy2.7-7.3.13 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.13-src | 14 ++++ .../share/python-build/pypy3.10-7.3.13 | 81 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.13-src | 14 ++++ .../share/python-build/pypy3.9-7.3.13 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.13-src | 14 ++++ 6 files changed, 285 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.13 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.13-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.13 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.13-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.13 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.13-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.13 b/plugins/python-build/share/python-build/pypy2.7-7.3.13 new file mode 100644 index 0000000000..627ffc4210 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.13 @@ -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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.13-src b/plugins/python-build/share/python-build/pypy2.7-7.3.13-src new file mode 100644 index 0000000000..275d80919a --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.13-src @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.13 b/plugins/python-build/share/python-build/pypy3.10-7.3.13 new file mode 100644 index 0000000000..1690b6eef7 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.13 @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.13-src b/plugins/python-build/share/python-build/pypy3.10-7.3.13-src new file mode 100644 index 0000000000..4ebe5f2f8d --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.13-src @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.13 b/plugins/python-build/share/python-build/pypy3.9-7.3.13 new file mode 100644 index 0000000000..2161b5cef3 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.13 @@ -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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.13-src b/plugins/python-build/share/python-build/pypy3.9-7.3.13-src new file mode 100644 index 0000000000..07ff98938b --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.13-src @@ -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' From 509d3a88556dafeb3a5ad985c1d67d0c0a08ad36 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 13 Oct 2023 22:24:38 +0300 Subject: [PATCH 0716/1324] Use pip<21 syntax in ensurepip call for pypy2.7-7.3.13 and 2.7.18 --- plugins/python-build/bin/python-build | 11 ++++++++++- plugins/python-build/share/python-build/2.7.18 | 4 ++-- .../python-build/share/python-build/pypy2.7-7.3.13 | 2 +- .../share/python-build/pypy2.7-7.3.13-src | 2 +- 4 files changed, 14 insertions(+), 5 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 783848dc5a..95d56af2b7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2037,14 +2037,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 } diff --git a/plugins/python-build/share/python-build/2.7.18 b/plugins/python-build/share/python-build/2.7.18 index 5725575ddb..6576ca67ec 100644 --- a/plugins/python-build/share/python-build/2.7.18 +++ b/plugins/python-build/share/python-build/2.7.18 @@ -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 diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.13 b/plugins/python-build/share/python-build/pypy2.7-7.3.13 index 627ffc4210..0239066bb5 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.13 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.13 @@ -78,4 +78,4 @@ function pypy_pkg_data { declare -a pd="$(pypy_pkg_data "$(pypy_architecture 2>/dev/null || true)")" # install -${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip' +${pd[0]} "${pd[1]}" "${pd[2]}" 'pypy' "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.13-src b/plugins/python-build/share/python-build/pypy2.7-7.3.13-src index 275d80919a..4704161ec3 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.13-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.13-src @@ -11,4 +11,4 @@ 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' +install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip_lt21' From 709534c21f223a466b9644679d815ddb0b48c6b1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 15 Oct 2023 15:03:49 +0300 Subject: [PATCH 0717/1324] CI: add 3.12 --- .github/workflows/macos_build.yml | 1 + .github/workflows/ubuntu_build.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index dfd6f3b44a..f24b5f4dfc 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -14,6 +14,7 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12" runs-on: macos-11 steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index ac4434deb4..e5ba9a4d09 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -14,6 +14,7 @@ jobs: - "3.9" - "3.10" - "3.11" + - "3.12" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v3 From d25cd0d0f52b5a90ad3150852d378908abcdfe87 Mon Sep 17 00:00:00 2001 From: startergo <7897244+startergo@users.noreply.github.com> Date: Sun, 15 Oct 2023 10:17:22 -0400 Subject: [PATCH 0718/1324] 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 --- plugins/python-build/bin/python-build | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 95d56af2b7..0ddebaac16 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -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 /Cellar + # and we'd rather have rpath set to /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 From 9c8f92cf4e3518c00a21c45d2c6e9f4e9f289c98 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 16 Oct 2023 21:36:46 +0300 Subject: [PATCH 0719/1324] v2.3.30 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 3e3017a26c..0ae03bc3fa 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -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 From f50b99265c3abd72064f2ea5f4f6ae583e8f3688 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 16 Oct 2023 21:37:24 +0300 Subject: [PATCH 0720/1324] v2.3.30 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 090998468d..0068f266ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 From 27525adece4cfbfd4efac00bf079c8a5b24861c3 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sat, 21 Oct 2023 19:05:48 -0400 Subject: [PATCH 0721/1324] Determine Python versions properly for Anaconda The code for determining which Python version is bundled with which version of Anaconda has not been updated in a while. I have added 3.10 and 3.11, both of which were used in bundles this year. I also updated the URL for the source of this data, the Anaconda release notes, because it has moved. --- plugins/python-build/scripts/add_miniconda.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 929ec8808e..3ecb80d6be 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -193,7 +193,11 @@ def default_py_version(self): else: return PyVersion.PY37 if self.flavor == "anaconda": - # https://docs.anaconda.com/anaconda/reference/release-notes/ + # https://docs.anaconda.com/free/anaconda/reference/release-notes/ + if v >= (2023,7): + return PyVersion.PY311 + if v >= (2023,3): + return PyVersion.PY310 if v >= (2021,11): return PyVersion.PY39 if v >= (2020,7): From 968fc797c32ef1eca3d652b0d5b684c0a6bb8df8 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Fri, 20 Oct 2023 17:23:33 -0400 Subject: [PATCH 0722/1324] Update anaconda and miniconda with `add_miniconda.py` This adds anaconda 2023.09 and miniconda 23.9.0. --- .../share/python-build/anaconda3-2023.09-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.10-23.9.0-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.11-23.9.0-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.9.0-0 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.9.0-0 | 28 +++++++++++++++++++ 5 files changed, 140 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2023.09-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.9.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.9.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.9.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.9.0-0 diff --git a/plugins/python-build/share/python-build/anaconda3-2023.09-0 b/plugins/python-build/share/python-build/anaconda3-2023.09-0 new file mode 100644 index 0000000000..5814121967 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2023.09-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2023.09-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-aarch64.sh#69ee26361c1ec974199bce5c0369e3e9a71541de7979d2b9cfa4af556d1ae0ea" "anaconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Anaconda3-2023.09-0-Linux-ppc64le" "https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-ppc64le.sh#5ea1ed9808af95eb2655fe6a4ffdb66bea66ecd1d053fc2ee69eacc7685ef665" "anaconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2023.09-0-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-s390x.sh#ee817071a2ad94e044fb48061a721bc86606b2f4906b705e4f42177eeb3ca7c5" "anaconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2023.09-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.09-0-Linux-x86_64.sh#6c8a4abb36fbb711dc055b7049a23bbfd61d356de9468b41c5140f8a11abd851" "anaconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2023.09-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2023.09-0-MacOSX-arm64.sh#34121775d9e30a6ea12af0a462e1881670b0c175b426e06fd7b1581625ebd69b" "anaconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2023.09-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2023.09-0-MacOSX-x86_64.sh#0c64a2c634fe31335079d97340c277c81b3f0c9dfe862a06599570640ac897a4" "anaconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.9.0-0 b/plugins/python-build/share/python-build/miniconda3-3.10-23.9.0-0 new file mode 100644 index 0000000000..81da0efd64 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.9.0-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.9.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.9.0-0-Linux-aarch64.sh#bc0f7f0a1c83cdf1330726168518b55454d092c64593f82872a50c4b5742b958" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.9.0-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.9.0-0-Linux-ppc64le.sh#fa9d79e1df278dc72e5935fec3c87c6897a9388895a2a47b0ed49935d71c92e7" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.9.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.9.0-0-Linux-s390x.sh#e10a160a44b0356f2ce59ce562855461499202976197ca7e1bf25ccb51dabb57" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.9.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.9.0-0-Linux-x86_64.sh#b272a5f843762f0a18f6b70a162cd554a43a06adcd6f5a2102840e41907fffe5" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.9.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.9.0-0-MacOSX-arm64.sh#3178aad8c75b30830e97d9a232433df1dfbe6cd34f55e0d7769cfaa17aa49e84" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.9.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.9.0-0-MacOSX-x86_64.sh#88266dda3e812bf6789fceeb9cfcfbbcada860aa4050ae2a781812fbd077ed35" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.9.0-0 b/plugins/python-build/share/python-build/miniconda3-3.11-23.9.0-0 new file mode 100644 index 0000000000..4c32258c6d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.9.0-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.9.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.9.0-0-Linux-aarch64.sh#1242847b34b23353d429fcbcfb6586f0c373e63070ad7d6371c23ddbb577778a" "miniconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py311_23.9.0-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.9.0-0-Linux-ppc64le.sh#07b53e411c2e4423bd34c3526d6644b916c4b2143daa8fbcb36b8ead412239b9" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.9.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.9.0-0-Linux-s390x.sh#707c68e25c643c84036a16acdf836a3835ea75ffd2341c05ec2da6db1f3e9963" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.9.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.9.0-0-Linux-x86_64.sh#43651393236cb8bb4219dcd429b3803a60f318e5507d8d84ca00dafa0c69f1bb" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_23.9.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.9.0-0-MacOSX-arm64.sh#4215f6fc572207f73a8f64692b4936b1952051f4cd620eec2ebd1f946e98b886" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_23.9.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.9.0-0-MacOSX-x86_64.sh#4b60eb49cf8fea6272bd2060878ab02cbab187dffd2fd732685c3c92a60b62ed" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.9.0-0 b/plugins/python-build/share/python-build/miniconda3-3.8-23.9.0-0 new file mode 100644 index 0000000000..dd256a9dfd --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.9.0-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.9.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.9.0-0-Linux-aarch64.sh#c59fbb2565812573f39b88425ef48607de70d1feadc522204811555e58bb972c" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.9.0-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.9.0-0-Linux-ppc64le.sh#4d1903b396de1c3473a81b2794f0d9792b30b4e9d98ae1c9dcfeef3aba15435b" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.9.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.9.0-0-Linux-s390x.sh#57cf786d2c30aed186a14e9319c596579750ef75d1c8c039734492b5e6d6762c" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.9.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.9.0-0-Linux-x86_64.sh#3c684c1c22d3a0e6bd5ab28186fd7b068b5c552f0937ee927ad117f35a5573fc" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.9.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.9.0-0-MacOSX-arm64.sh#694facc3601da8a93592d6f947818c2064d6854ca1f2a7e5b40b3e2e91e65baa" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.9.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.9.0-0-MacOSX-x86_64.sh#6fab242ca8200a1d59e54c5cc1abb89f7519a136da234e2ab77a30fb87c4ce7d" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.9.0-0 b/plugins/python-build/share/python-build/miniconda3-3.9-23.9.0-0 new file mode 100644 index 0000000000..c2b8ca4392 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.9.0-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.9.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.9.0-0-Linux-aarch64.sh#b3ae7a36e3adbe9f9ab152b645d8d20b09bd25b4f0a9be15bfb4d36aafdedd98" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.9.0-0-Linux-ppc64le" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.9.0-0-Linux-ppc64le.sh#f7699ab404cbcba918e1977cc54ee8573902835d3272e3d80b5a107f8c5b5b38" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.9.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.9.0-0-Linux-s390x.sh#eab9add06fe3b0beb9b54b3ab3fc57b944dc370a3c9342216082f7747d6c74a7" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.9.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.9.0-0-Linux-x86_64.sh#9200a10c762186391c35709382ed7cfa6578a051c9c76ea58f998df62c5afab0" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.9.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.9.0-0-MacOSX-arm64.sh#3143f830fdff011a3d389fdb53b8021e90b662615a1ed62a0bcad099cef35c26" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.9.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.9.0-0-MacOSX-x86_64.sh#763c08ad5bdf159d32e406bd3b03394e1fba6923f1936271ca27c8073f744ac2" "miniconda" verify_py39 + ;; +* ) + { 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 From 011bbf0ccaf17a11e22db2d1909784de29c9c87c Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 22 Oct 2023 12:35:36 +0300 Subject: [PATCH 0723/1324] v2.3.31 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0068f266ff..dfadf9feb0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.3.31 +* Add new anaconda and miniconda definitions by @aphedges in https://github.com/pyenv/pyenv/pull/2824 + ## Release v2.3.30 * Fix intermittent "broken pipe" in tests by @native-api in https://github.com/pyenv/pyenv/pull/2817 From 54f7a7c0464f4feb3ba61cfee72fc14db802f98f Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 22 Oct 2023 12:35:53 +0300 Subject: [PATCH 0724/1324] v2.3.31 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 0ae03bc3fa..34053d8a65 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.30" +version="2.3.31" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 63c471d0204f0b06cca640c3a49037e4f914b63f Mon Sep 17 00:00:00 2001 From: fsc-eriker <72394365+fsc-eriker@users.noreply.github.com> Date: Mon, 30 Oct 2023 21:10:26 +0200 Subject: [PATCH 0725/1324] Describe --no-rehash option in the manpage (#2832) (Closes: #2831) --- man/man1/pyenv.1 | 1 + 1 file changed, 1 insertion(+) diff --git a/man/man1/pyenv.1 b/man/man1/pyenv.1 index 0629e894dc..c3d2de1ba7 100644 --- a/man/man1/pyenv.1 +++ b/man/man1/pyenv.1 @@ -234,6 +234,7 @@ Skip this section unless you must know what every line in your shell profile is \fBSets up your shims path\.\fR This is the only requirement for pyenv to function properly\. You can do this by hand by prepending \fB$(pyenv root)/shims\fR to your \fB$PATH\fR\. .IP "2." 4 \fBRehashes shims\.\fR From time to time you'll need to rebuild your shim files\. Doing this on init makes sure everything is up to date\. You can always run \fBpyenv rehash\fR manually\. +You can disable this functionality by adding \fB--no-rehash\fR to the end of your \fBpyenv init\fR command line. .IP "3." 4 \fBInstalls the sh dispatcher\.\fR This bit is also optional, but allows pyenv and plugins to change variables in your current shell, making commands like \fBpyenv shell\fR possible\. The sh dispatcher doesn't do anything crazy like override \fBcd\fR or hack your shell prompt, but if for some reason you need \fBpyenv\fR to be a real script rather than a shell function, you can safely skip it\. .IP "" 0 From 087793a660f1b8c53f1dbf90f7ac2ef38777c0ea Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 12 Nov 2023 11:58:17 +0300 Subject: [PATCH 0726/1324] Make adding $PYENV_ROOT/bin to PATH independent of other software (#2837) Fixes breakage in WSL with Pyenv-win installed in the host system; doesn't affect other supported installation scenarios. --- README.md | 4 ++-- libexec/pyenv-init | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ea739f391f..ab5ded5f18 100644 --- a/README.md +++ b/README.md @@ -317,14 +317,14 @@ See [Advanced configuration](#advanced-configuration) for details and more confi * to add to `~/.bash_profile`: ~~~ bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(pyenv init -)"' >> ~/.bash_profile ~~~ - For **Zsh**: ~~~ zsh echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc echo 'eval "$(pyenv init -)"' >> ~/.zshrc ~~~ diff --git a/libexec/pyenv-init b/libexec/pyenv-init index c1e0da7bcd..5ce275e172 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -165,7 +165,7 @@ function help_() { fi echo echo 'export PYENV_ROOT="$HOME/.pyenv"' - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' echo 'eval "$(pyenv init -)"' ;; esac From fb2c65f149507c694b99abecd5f714e0368d4eb8 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 12 Nov 2023 12:41:13 +0300 Subject: [PATCH 0727/1324] Make `pyenv init` output insertable to startup files (#2838) --- libexec/pyenv-init | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 5ce275e172..a875bb3106 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -160,8 +160,8 @@ function help_() { echo "$profile :" else echo - echo "${profile_explain:-$profile} (for login shells)" - echo "and $rc (for interactive shells) :" + echo "# ${profile_explain:-$profile} (for login shells)" + echo "# and $rc (for interactive shells) :" fi echo echo 'export PYENV_ROOT="$HOME/.pyenv"' From 988258ea5f769566b9b2ab4ead6ca99d1f51f24e Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 12 Nov 2023 18:52:52 +0300 Subject: [PATCH 0728/1324] v2.3.32 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfadf9feb0..239fa99c3b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.3.32 +* Describe --no-rehash option in the manpage by @fsc-eriker in https://github.com/pyenv/pyenv/pull/2832 +* Make adding $PYENV_ROOT/bin to PATH independent of other software by @native-api in https://github.com/pyenv/pyenv/pull/2837 +* Make `pyenv init` output insertable to startup files by @native-api in https://github.com/pyenv/pyenv/pull/2838 + ## Release v2.3.31 * Add new anaconda and miniconda definitions by @aphedges in https://github.com/pyenv/pyenv/pull/2824 From d31230109957392ddf178ddfe78db195afbe8ccf Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Sun, 12 Nov 2023 18:53:11 +0300 Subject: [PATCH 0729/1324] v2.3.32 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 34053d8a65..86d9973e44 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.31" +version="2.3.32" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 62242c1d561040d7d2b082b88b85c822558b4b40 Mon Sep 17 00:00:00 2001 From: Michael Goerz Date: Mon, 13 Nov 2023 12:39:23 -0500 Subject: [PATCH 0730/1324] Add miniforge3-23.3.1-1 --- .../share/python-build/miniforge3-23.3.1-1 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-23.3.1-1 diff --git a/plugins/python-build/share/python-build/miniforge3-23.3.1-1 b/plugins/python-build/share/python-build/miniforge3-23.3.1-1 new file mode 100644 index 0000000000..aac3c7caf0 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.3.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.3.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Miniforge3-23.3.1-1-Linux-aarch64.sh#dc5d94b83251621f088bd82df896ea45e63597293ece7ccd923b2346aed34b89" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.3.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Miniforge3-23.3.1-1-Linux-ppc64le.sh#2eafa28fee5f1dfffb01feaca70de000f8e8335e1f659603ef0b9a40b9d1f213" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.3.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Miniforge3-23.3.1-1-Linux-x86_64.sh#b3e14bd70f99bc8959445fad3532128a6af36c5e77bc62226db0e80d1df0e9e9" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.3.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Miniforge3-23.3.1-1-MacOSX-arm64.sh#51d15ed1471ef8633f99574dc0c43fc972ce1981ebf08eade4d9b249bb7640e4" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.3.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Miniforge3-23.3.1-1-MacOSX-x86_64.sh#d8eef4816b28f1bfc099d8fc2cdac4fb0ebbe1ddd27f4acb66d83d66c260cb63" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From ef0c2a787b9db55f2554caf6d77ee53b40c37bf0 Mon Sep 17 00:00:00 2001 From: binbjz Date: Sat, 18 Nov 2023 15:53:40 +0800 Subject: [PATCH 0731/1324] Add support for miniconda3-3.11-23.10.0-1 --- .../python-build/miniconda3-3.11-23.10.0-1 | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.10.0-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.10.0-1 b/plugins/python-build/share/python-build/miniconda3-3.11-23.10.0-1 new file mode 100644 index 0000000000..e1e50bad2e --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.10.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.10.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.10.0-1-Linux-aarch64.sh#a60e70ad7e8ac5bb44ad876b5782d7cdc66e10e1f45291b29f4f8d37cc4aa2c8" "miniconda" verify_py311 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py311_23.10.0-1-Linux-ppc64le.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.10.0-1-Linux-ppc64le.sh#1a2eda0a9a52a4bd058abbe9de5bb2bc751fcd7904c4755deffdf938d6f4436e" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.10.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.10.0-1-Linux-s390x.sh#ae212385c9d7f7473da7401d3f5f6cbbbc79a1fce730aa48531947e9c07e0808" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.10.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.10.0-1-Linux-x86_64.sh#d0643508fa49105552c94a523529f4474f91730d3e0d1f168f1700c43ae67595" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script ""Miniconda3-py311_23.10.0-1-MacOSX-arm64.sh "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.10.0-1-MacOSX-arm64.sh#5043144d7eaea2286e30d091b62fcf50f7ed983b092230e56c370b592e7a57f2" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script ""Miniconda3-py311_23.10.0-1-MacOSX-x86_64.sh "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.10.0-1-MacOSX-x86_64.sh#8c50faa3880fdef96967477af09d41c52332998beeee7ef8116c79d4f5023d72" "miniconda" verify_py311 + ;; +* ) + { 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 From ae1c5d2bff324cf859d37d08bd7f264ab2b46ade Mon Sep 17 00:00:00 2001 From: binbjz Date: Sat, 18 Nov 2023 16:39:57 +0800 Subject: [PATCH 0732/1324] =?UTF-8?q?Add=20support=20for=20miniconda3-3.10?= =?UTF-8?q?-23.10.0-1=E3=80=81miniconda3-3.9-23.10.0-1=E3=80=81miniconda3-?= =?UTF-8?q?3.8-23.10.0-1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../python-build/miniconda3-3.10-23.10.0-1 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.10.0-1 | 28 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.10.0-1 | 28 +++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.10.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.10.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.10.0-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.10.0-1 b/plugins/python-build/share/python-build/miniconda3-3.10-23.10.0-1 new file mode 100644 index 0000000000..ecdea4ed28 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.10.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.10.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-Linux-aarch64.sh#3b8698e433dd9e8f948f94939b176b7819807bedb86020b81e2fca674d3df3b4" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py310_23.10.0-1-Linux-ppc64le.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-Linux-ppc64le.sh#8ba2b32ee15be9e43c3712d9235e8c6f1350de733e72f67ef035c878eee134e5" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.10.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-Linux-s390x.sh#ab037a5df6414fe48979285769a61bf99e46d1efd1c98bd3b0a9ab767862f86b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.10.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-Linux-x86_64.sh#c7a34df472feb69805b64df6e8db58363c5ccab41cd3b40b07e3e6dfb924359a" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.10.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-MacOSX-arm64.sh#a1477dfb4edfe922c2d1ed8dce90c16e6c57b3008f9503fae804acfda67736ae" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.10.0-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.10.0-1-MacOSX-x86_64.sh#bea320962dce404ecc1f6f4b0c0462cd3300df8ab165e5cb5bcee372c498535f" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.10.0-1 b/plugins/python-build/share/python-build/miniconda3-3.8-23.10.0-1 new file mode 100644 index 0000000000..77d1887484 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.10.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.10.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.10.0-1-Linux-aarch64.sh#aee297bdefb15cfee9e2cb4c0881f811ce18c1a066ac75b811b21967ccd41acd" "miniconda" verify_py38 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py38_23.10.0-1-Linux-ppc64le.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.10.0-1-Linux-ppc64le.sh#1d7ccb2fa31042116b38ec518a63428d9cf87adba8771ffa9f0e3241f6b5a72a" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.10.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.10.0-1-Linux-s390x.sh#095bfb828b3155e6a345b7e821010451dfd291e8373b618a3b72a050a1c7a909" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.10.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.10.0-1-Linux-x86_64.sh#6842afb93a64fd4f04daa0f49f4618857d2327ead1366851eb0e49f1ae460f00" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.10.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.10.0-1-MacOSX-arm64.sh#c5ece9fce0a2f3c68600476e4256146f03511f82f76d05324eedbdc9eb06bed7" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script ""Miniconda3-py38_23.10.0-1-MacOSX-x86_64.sh "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.10.0-1-MacOSX-x86_64.sh#0e6921f44b4278aa178969f59da57ca4ced2a55ef7730c774296f1de1801c561" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.10.0-1 b/plugins/python-build/share/python-build/miniconda3-3.9-23.10.0-1 new file mode 100644 index 0000000000..04cd1e601c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.10.0-1 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.10.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-Linux-aarch64.sh#e7558e2a628ce2f40e8ea792763b942ba587b01b33a677d2d22e7372ec50dbb7" "miniconda" verify_py39 + ;; +"Linux-ppc64le" ) + install_script "Miniconda3-py39_23.10.0-1-Linux-ppc64le.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-Linux-ppc64le.sh#cd92b3272d85c94ef54b685d49fbbd9d36c6680e6b518f1806c039ddb34fc754" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.10.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-Linux-s390x.sh#1aa4b984316faa9917c0dce8656bf3b32941def86397815adbe124185b7d3cdb" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.10.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-Linux-x86_64.sh#3dbb87a74f80c84ae166a380bf51da8ef75699ce97c234e3e196afa20d1a9319" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.10.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-MacOSX-arm64.sh#adfac9e92405a6fdb60cc3b39018cb5084d096799be8f82fa88d26dadbe719b6" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.10.0-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.10.0-1-MacOSX-x86_64.sh#6d26cbe11e964bf573c459420154139d922ffa2e5c690c9c1e9bdb84f17f83af" "miniconda" verify_py39 + ;; +* ) + { 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 From ae74597dedc9a2994679f3f23966d30d4eb1a571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Wed, 22 Nov 2023 16:25:45 -0600 Subject: [PATCH 0733/1324] Add CPython 3.13.0a2 --- .../python-build/share/python-build/{3.13.0a1 => 3.13.0a2} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.13.0a1 => 3.13.0a2} (57%) diff --git a/plugins/python-build/share/python-build/3.13.0a1 b/plugins/python-build/share/python-build/3.13.0a2 similarity index 57% rename from plugins/python-build/share/python-build/3.13.0a1 rename to plugins/python-build/share/python-build/3.13.0a2 index 6ec8bbcfe9..896e5edf16 100644 --- a/plugins/python-build/share/python-build/3.13.0a1 +++ b/plugins/python-build/share/python-build/3.13.0a2 @@ -3,7 +3,7 @@ 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 + install_package "Python-3.13.0a2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a2.tar.xz#b6d46b44190c4c02421eb69a042d16b0c55481bdda818c6c416dc244113a9c2d" 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 + install_package "Python-3.13.0a2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a2.tgz#9a3c363589ec882f2d1ff008f29f66231ccb552366dd9d8041a65c7e799cbafd" standard verify_py313 copy_python_gdb ensurepip fi From 1239b7cb1f9424a17d515ece0c1aa495a0da1b44 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 26 Nov 2023 12:59:10 +0300 Subject: [PATCH 0734/1324] python-build: Document PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA and PYTHON_BUILD_HTTP_CLIENT (#2853) grammar --- plugins/python-build/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index d3eec17d9d..7b0601cd71 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -113,7 +113,9 @@ You can set certain environment variables to control the build process. checksum of the file to the mirror URL. * `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from their original source URLs instead of using a mirror. -* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew on macOS. +* `PYTHON_BUILD_HTTP_CLIENT`, explicitly specify the HTTP client type to use. `aria2`, `curl` and `wget` are the supported values and by default, are searched in that order. +* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew in macOS. +* `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions in `share/python-build/` are looked up. * `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get From efb01775c0c413f964a098c75372d847b0811312 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 27 Nov 2023 15:54:25 +0300 Subject: [PATCH 0735/1324] v2.3.33 --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 239fa99c3b..56d28d27a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.3.33 +* Add miniforge3-23.3.1-1 by @goerz in https://github.com/pyenv/pyenv/pull/2839 +* Add support for miniconda3-3.11-23.10.0-1 by @binbjz in https://github.com/pyenv/pyenv/pull/2843 +* Add support for miniconda3 23.10.0-1 with py3.10、py3.9、py3.8 by @binbjz in https://github.com/pyenv/pyenv/pull/2844 +* Add CPython 3.13.0a2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2849 +* python-build: Document PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA and PYTHON_BUILD_HTTP_CLIENT by @native-api in https://github.com/pyenv/pyenv/pull/2853 + ## Release v2.3.32 * Describe --no-rehash option in the manpage by @fsc-eriker in https://github.com/pyenv/pyenv/pull/2832 * Make adding $PYENV_ROOT/bin to PATH independent of other software by @native-api in https://github.com/pyenv/pyenv/pull/2837 From 2fb5b9e9a3c498dbc74c3452851ff90c95dcdc5a Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Mon, 27 Nov 2023 15:54:43 +0300 Subject: [PATCH 0736/1324] v2.3.33 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 86d9973e44..f6b4c1ae91 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.32" +version="2.3.33" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From ebff965cc6dc17d90d0ec82af5a4fb47fd4a5907 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 29 Nov 2023 22:57:28 +0300 Subject: [PATCH 0737/1324] Fix graalpy-community to use a separate package name (#2855) Using the same name as graalpy causes a cache clash --- .../python-build/share/python-build/graalpy-community-23.1.0 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/graalpy-community-23.1.0 b/plugins/python-build/share/python-build/graalpy-community-23.1.0 index dcda3848d3..ff46e4d5fd 100644 --- a/plugins/python-build/share/python-build/graalpy-community-23.1.0 +++ b/plugins/python-build/share/python-build/graalpy-community-23.1.0 @@ -51,4 +51,4 @@ else url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" fi -install_package "graalpy-${VERSION}${BUILD}" "${url}" "copy" ensurepip +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 3e1b4e0be1b01737560d0ec8b741c7d8fd704c22 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 29 Nov 2023 23:39:14 +0300 Subject: [PATCH 0738/1324] Move 3.11.5+ to OpenSSL 3 by default (#2858) As per https://docs.python.org/3.11/whatsnew/3.11.html#notable-changes-in-3-11-5, OpenSSL 3.0 support in CPython is finally official since 3.11.5. --- plugins/python-build/share/python-build/3.11.5 | 4 ++-- plugins/python-build/share/python-build/3.11.6 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/3.11.5 b/plugins/python-build/share/python-build/3.11.5 index 39f21e4f55..5e822dfe29 100644 --- a/plugins/python-build/share/python-build/3.11.5 +++ b/plugins/python-build/share/python-build/3.11.5 @@ -1,7 +1,7 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 "openssl-3.2.0" "https://www.openssl.org/source/openssl-3.2.0.tar.gz#14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" 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.11.5" "https://www.python.org/ftp/python/3.11.5/Python-3.11.5.tar.xz#85cd12e9cf1d6d5a45f17f7afe1cebe7ee628d3282281c492e86adf636defa3f" standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.11.6 b/plugins/python-build/share/python-build/3.11.6 index de1bdbd46d..efcaeecde2 100644 --- a/plugins/python-build/share/python-build/3.11.6 +++ b/plugins/python-build/share/python-build/3.11.6 @@ -1,7 +1,7 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 "openssl-3.2.0" "https://www.openssl.org/source/openssl-3.2.0.tar.gz#14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" 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.11.6" "https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tar.xz#0fab78fa7f133f4f38210c6260d90d7c0d5c7198446419ce057ec7ac2e6f5f38" standard verify_py311 copy_python_gdb ensurepip From 1a9e9ee5da412abd47636085ec7b811c652d8135 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Mon, 4 Dec 2023 23:44:38 -0600 Subject: [PATCH 0739/1324] Add CPython 3.11.7 --- plugins/python-build/share/python-build/3.11.7 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.7 diff --git a/plugins/python-build/share/python-build/3.11.7 b/plugins/python-build/share/python-build/3.11.7 new file mode 100644 index 0000000000..2f19ba8e5f --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.7 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.0" "https://www.openssl.org/source/openssl-3.2.0.tar.gz#14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" 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.11.7" "https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tar.xz#18e1aa7e66ff3a58423d59ed22815a6954e53342122c45df20c96877c062b9b7" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.7" "https://www.python.org/ftp/python/3.11.7/Python-3.11.7.tgz#068c05f82262e57641bd93458dfa883128858f5f4997aad7a36fd25b13b29209" standard verify_py311 copy_python_gdb ensurepip +fi From 99d74e78f71bc6035514faa7a9341f52e9a352be Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 6 Dec 2023 06:56:03 +0300 Subject: [PATCH 0740/1324] v2.3.34 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f6b4c1ae91..5adeafcfbc 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.33" +version="2.3.34" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d3766f22a588519cb640771130fa8ed6985f0556 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Wed, 6 Dec 2023 06:56:43 +0300 Subject: [PATCH 0741/1324] v2.3.34 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 56d28d27a6..fae6a22ff9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.3.34 +* Fix graalpy-community to use a separate package name by @native-api in https://github.com/pyenv/pyenv/pull/2855 +* Move 3.11.5+ to OpenSSL 3 by default by @native-api in https://github.com/pyenv/pyenv/pull/2858 +* Add CPython 3.11.7 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2860 + ## Release v2.3.33 * Add miniforge3-23.3.1-1 by @goerz in https://github.com/pyenv/pyenv/pull/2839 * Add support for miniconda3-3.11-23.10.0-1 by @binbjz in https://github.com/pyenv/pyenv/pull/2843 From fce51d45a074d86455e49acb2809e5b99d6ce276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 7 Dec 2023 18:52:56 -0600 Subject: [PATCH 0742/1324] Add CPython 3.12.1 --- plugins/python-build/share/python-build/3.12.1 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.1 diff --git a/plugins/python-build/share/python-build/3.12.1 b/plugins/python-build/share/python-build/3.12.1 new file mode 100644 index 0000000000..636724c9f5 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.1 @@ -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.12.1" "https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tar.xz#8dfb8f426fcd226657f9e2bd5f1e96e53264965176fa17d32658e873591aeb21" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.1" "https://www.python.org/ftp/python/3.12.1/Python-3.12.1.tgz#d01ec6a33bc10009b09c17da95cc2759af5a580a7316b3a446eb4190e13f97b2" standard verify_py312 copy_python_gdb ensurepip +fi From dfde39650e13c4ae9f5f909d3f525275e683b905 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 8 Dec 2023 13:22:44 +0300 Subject: [PATCH 0743/1324] v2.3.35 --- libexec/pyenv---version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5adeafcfbc..f157bf029e 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.34" +version="2.3.35" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 74a2523c97d2e5c1dbdca7b58f3372324ccad4e6 Mon Sep 17 00:00:00 2001 From: Anton Petrov Date: Fri, 8 Dec 2023 13:23:20 +0300 Subject: [PATCH 0744/1324] v2.3.35 --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index fae6a22ff9..380cf08adc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.3.35 +* Add CPython 3.12.1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2861 + ## Release v2.3.34 * Fix graalpy-community to use a separate package name by @native-api in https://github.com/pyenv/pyenv/pull/2855 * Move 3.11.5+ to OpenSSL 3 by default by @native-api in https://github.com/pyenv/pyenv/pull/2858 From 3c92216ea229f24f9f59f638a82ca26f6c0f19bc Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Mon, 11 Dec 2023 22:29:06 -0600 Subject: [PATCH 0745/1324] Add a Dependabot config to auto-update GitHub action versions (#2863) --- .github/dependabot.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000000..2390d8c809 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,10 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + groups: + github-actions: + patterns: + - "*" From 96f93fd5531afa2fb5a826c92770293e500f9ab6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 08:04:41 +0300 Subject: [PATCH 0746/1324] Bump the github-actions group with 1 update (#2864) Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 6 +++--- .github/workflows/pyenv_tests.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index f24b5f4dfc..3f299f8029 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -17,7 +17,7 @@ jobs: - "3.12" runs-on: macos-11 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index be106ee52f..0beef58e94 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -6,7 +6,7 @@ jobs: outputs: versions: ${{steps.modified-versions.outputs.versions}} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: git fetch origin "$GITHUB_BASE_REF" - shell: bash run: > @@ -33,7 +33,7 @@ jobs: os: ["macos-11", "macos-12"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -93,7 +93,7 @@ jobs: os: ["ubuntu-20.04", "ubuntu-22.04"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index dc905d14c2..f05430cd9f 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -16,7 +16,7 @@ jobs: - macos-11 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index e5ba9a4d09..e3951d3ccb 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -17,7 +17,7 @@ jobs: - "3.12" runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: From 2c69732fec100d953b44d3c31b97b8a5f61e50c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marvin=20H=C3=A4user?= <8659494+mhaeuser@users.noreply.github.com> Date: Tue, 26 Dec 2023 01:43:53 +0100 Subject: [PATCH 0747/1324] Add installation prefix to `python-config --ldflags` output (#2865) Needed to link against libpython of the Pyenv-controlled installation --- plugins/python-build/bin/python-build | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0ddebaac16..a93baa11c4 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1383,6 +1383,19 @@ configured_with_package_dir() { return 1 } +# `python-config` ignores LDFLAGS envvar. Adding to LIBS is the only way to add extra stuff +# to `python-config --ldflags` output +append_ldflags_libs() { + local args="$1" + export LDFLAGS="${LDFLAGS:+$LDFLAGS }$args" + export LIBS="${LIBS:+${LIBS% } }$args" +} +prepend_ldflags_libs() { + local args="$1" + export LDFLAGS="$args${LDFLAGS:+ $LDFLAGS}" + export LIBS="$args${LIBS:+ $LIBS}" +} + use_homebrew() { can_use_homebrew || return 1 # unless Homebrew is at the default /usr/local, need to add its paths to @@ -1392,10 +1405,7 @@ use_homebrew() { # /usr/local/lib:/usr/lib is the default library search path if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${brew_prefix}/include" - export LDFLAGS="${LDFLAGS:+$LDFLAGS }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" - # `python-config` ignores LDFLAGS envvar. Adding to LIBS is the only way to add extra stuff - # to `python-config --ldflags` output - export LIBS="${LIBS:+${LIBS% } }-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" + append_ldflags_libs "-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" fi fi } @@ -2258,13 +2268,13 @@ package_option python configure --libdir="${PREFIX_PATH}/lib" if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS ${PYTHON_CONFIGURE_OPTS_ARRAY[@]}" == *"--enable-shared"* ]]; then # The ld on Darwin embeds the full paths to each dylib by default if [[ "$LDFLAGS" != *"-rpath="* ]] ; then - export LDFLAGS="-Wl,-rpath,${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" + prepend_ldflags_libs "-Wl,-rpath,${PREFIX_PATH}/lib" fi fi # python-build: Set `RPATH` if --shared` was given for PyPy (#244) if [[ "$PYPY_OPTS" == *"--shared"* ]]; then - export LDFLAGS="-Wl,-rpath=${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" + prepend_ldflags_libs "-Wl,-rpath=${PREFIX_PATH}/lib" fi # Add support for framework installation (`--enable-framework`) of CPython (#55, #99) @@ -2446,7 +2456,7 @@ if [ -n "$VERBOSE" ]; then trap "kill $TAIL_PID" SIGINT SIGTERM EXIT fi -export LDFLAGS="-L${PREFIX_PATH}/lib${LDFLAGS:+ $LDFLAGS}" +prepend_ldflags_libs "-L${PREFIX_PATH}/lib" export CPPFLAGS="-I${PREFIX_PATH}/include${CPPFLAGS:+ $CPPFLAGS}" unset PYTHONHOME From 2798a6694deca46201095ace7e4b75494a60925f Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Tue, 26 Dec 2023 08:51:40 +0800 Subject: [PATCH 0748/1324] Add support for miniconda3 23.11.0-1, 23.11.0-2 with py3.11, py3.10, py3.9, py3.8 (#2870) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-23.11.0-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.10-23.11.0-2 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-23.11.0-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-23.11.0-2 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.11.0-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.8-23.11.0-2 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.11.0-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-23.11.0-2 | 25 +++++++++++++++++++ 8 files changed, 200 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-2 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-1 b/plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-1 new file mode 100644 index 0000000000..1be16ceac2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.11.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-1-Linux-aarch64.sh#30b3f26fee441c5d70bd50ec06ea1acaa0e373ad30771165eada3f6bdf27766a" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.11.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-1-Linux-s390x.sh#54bfe6a47e24ddaa74b02c88d64596c1234fdf6c3789740471dea2bf3c685392" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.11.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-1-Linux-x86_64.sh#6581658486be8e700d77e24eccafba586a0fbafafadcf73d35ab13eaee4b80b1" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.11.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-1-MacOSX-arm64.sh#570f66f7264d8ba3195fc0755baed35320842b36fb34ef16bdc142f1dc616cae" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.11.0-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-1-MacOSX-x86_64.sh#6517332e5af2088a0413dd9f536f258814efb6d5b9f78011a6f2ea53e2874484" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-2 b/plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-2 new file mode 100644 index 0000000000..bf84089bdc --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-23.11.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_23.11.0-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-Linux-aarch64.sh#85bb96bca04b75f2081b4c0f7f10476fd67fba1637c18b07272aa3a518df5596" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_23.11.0-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-Linux-s390x.sh#fd506291eb51641e8cd3164c09fec31826f26dc446c3da9bb4c88fe35c95dfe7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_23.11.0-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-Linux-x86_64.sh#35a58b8961e1187e7311b979968662c6223e86e1451191bed2e67a72b6bd0658" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_23.11.0-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-MacOSX-arm64.sh#958a8d6e14d9eb843b24ba4019a1b62e0dedd819d844247485fd0c0ea4acbc61" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_23.11.0-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_23.11.0-2-MacOSX-x86_64.sh#07a6f46146993510d5d839ee014fc2229f7870d92aa73a52f11dd240833f08fb" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-1 b/plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-1 new file mode 100644 index 0000000000..f395b7fb27 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.11.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-1-Linux-aarch64.sh#63c06a1974695e50bbe767a030903d169e637e42d5b7b6d30876b19a01fbbad8" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.11.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-1-Linux-s390x.sh#04586c734987a39114b81384014c2cfa89360c518371b6fa249d3062efca27fe" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.11.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-1-Linux-x86_64.sh#5b3cefe534e23541f5f703f40d4818e361c3615dbf14651a0f29554c3fc3d0fd" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_23.11.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-1-MacOSX-arm64.sh#7901f8f272478657bd023cfd6d832b53213053897efd23c1061bcc35c68c0637" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_23.11.0-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-1-MacOSX-x86_64.sh#7ee24fb01fbe1081d6dd600805f5f9c6a3a12714670ecad65a6dfcf870c8a74d" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-2 b/plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-2 new file mode 100644 index 0000000000..493e0922c4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-23.11.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_23.11.0-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-2-Linux-aarch64.sh#decd447fb99dbd0fc5004481ec9bf8c04f9ba28b35a9292afe49ecefe400237f" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_23.11.0-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-2-Linux-s390x.sh#53a9e9eb97cd6e318f4f184add069436e1a46124cf864bf2d7bd67043e50e471" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_23.11.0-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-2-Linux-x86_64.sh#c9ae82568e9665b1105117b4b1e499607d2a920f0aea6f94410e417a0eff1b9c" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_23.11.0-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-2-MacOSX-arm64.sh#5694c382e6056d62ed874f22692224c4f53bca22e8135b6f069111e081be07aa" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_23.11.0-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_23.11.0-2-MacOSX-x86_64.sh#2b7f9e46308c28c26dd83abad3e72121ef63916eaf17b63723b5a1f728dc3032" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-1 b/plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-1 new file mode 100644 index 0000000000..c0653ac0c2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.11.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-1-Linux-aarch64.sh#3b28bce7689d42c85190e86738f152efc88a7d17cbcd90b4eb8cb92be42e3bff" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.11.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-1-Linux-s390x.sh#38e4050d6b73814071c065d36c41c6fea553fbf973e72e6375b958fcff747b69" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.11.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-1-Linux-x86_64.sh#ad3cb53ddfbadd190172b864337572206733ae75515fcfb17157cc8f2cb907a5" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.11.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-1-MacOSX-arm64.sh#89b1b0428e68fea63af15193237f2efed9a3c80cffa2fc221cca0af2465d3fd2" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.11.0-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-1-MacOSX-x86_64.sh#5056bea02062a198991a09c8c9c02c39735ad2d26cdbf21863eaa799bcacd8ab" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-2 b/plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-2 new file mode 100644 index 0000000000..24ff73eb9b --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.8-23.11.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py38_23.11.0-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-2-Linux-aarch64.sh#6e439ae5373d35b78a3f45775fa69f0afddd0c0a9e5e545cd2f75f913a6d143b" "miniconda" verify_py38 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py38_23.11.0-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-2-Linux-s390x.sh#4d53356e80b3be7e90dbcf021d40cd3d7f889cf4d19574c9957ba22f5a9d98f2" "miniconda" verify_py38 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py38_23.11.0-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-2-Linux-x86_64.sh#cb908ddbd603d789d94076ea4dd3f8517b15866719e007725dca778a8dfab823" "miniconda" verify_py38 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py38_23.11.0-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-2-MacOSX-arm64.sh#5b0258717b9c53c90fc9255ef739d766325fc284761b637837e3d378bb12d3e3" "miniconda" verify_py38 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py38_23.11.0-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py38_23.11.0-2-MacOSX-x86_64.sh#143d79c7018c66ef452a27711090367dc36e0046ae765f514bc2b1c2b4f76746" "miniconda" verify_py38 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-1 b/plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-1 new file mode 100644 index 0000000000..1f2aa85b57 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.11.0-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-1-Linux-aarch64.sh#a8a9c37882209680d9258e57ce5d5ca0e186f0159e703736b9f5122e94864083" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.11.0-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-1-Linux-s390x.sh#719c653d7e4b724566c2a9fa365f7b6dbb830d279513ae62e02e11144722c1c9" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.11.0-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-1-Linux-x86_64.sh#d36c0f778b6b164223a174acafbe8556b841b67e53cb84b3eb24f1956b62121a" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.11.0-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-1-MacOSX-arm64.sh#1f345d26837e505713aa7b9332cc740c7f2319c7208dc6bd7b95b6a251a9b665" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.11.0-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-1-MacOSX-x86_64.sh#7b05aff168e441ec500e038bb3e252e5b01f3059a74f92fb7f3a7630eb6a6b13" "miniconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-2 b/plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-2 new file mode 100644 index 0000000000..f99536de80 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-23.11.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_23.11.0-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-2-Linux-aarch64.sh#465f30688bae46f73b8497bb601face6b652092ace0e515c898e2a64f8c0f15f" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_23.11.0-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-2-Linux-s390x.sh#ff1de437a3f9110d8d7665c1f6d178bb797150689264bec5d0d8b36604e3823a" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_23.11.0-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-2-Linux-x86_64.sh#b911ff745c55db982078ac51ed4d848da0170f16ba642822a3bc7dd3fc8c61ba" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_23.11.0-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-2-MacOSX-arm64.sh#0234becafc167a475fbbcd9a59dda0eec288343695ff6b9645b34fcb9f124bb5" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_23.11.0-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_23.11.0-2-MacOSX-x86_64.sh#cc22270c81080d50e518f74d36a151fd3727e2cd6fccc4b1fd345f9a852d5762" "miniconda" verify_py39 + ;; +* ) + { 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 From 2d85075123fd52c2932564c1580fc26c4a8b4c3e Mon Sep 17 00:00:00 2001 From: cpzt Date: Wed, 27 Dec 2023 03:45:07 +0800 Subject: [PATCH 0749/1324] Add micropython 1.20.0 and 1.21.0 (#2869) --- plugins/python-build/bin/python-build | 8 +++++++- .../python-build/share/python-build/micropython-1.20.0 | 4 ++++ .../python-build/share/python-build/micropython-1.21.0 | 4 ++++ plugins/python-build/share/python-build/micropython-1.9.3 | 2 +- plugins/python-build/share/python-build/micropython-1.9.4 | 2 +- plugins/python-build/test/compiler.bats | 2 +- 6 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 plugins/python-build/share/python-build/micropython-1.20.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.21.0 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a93baa11c4..ae4246f84f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -925,7 +925,13 @@ build_package_ironpython_builder() { ( cd "Stage/Release/IronPython-"* && build_package_ironpython ) } +build_package_micropython_1_9() { + # supported version 1.9.3 and 1.9.4 + build_package_micropython "with_axtls" +} + build_package_micropython() { + # supported version 1.10 and higher if [ "${MAKEOPTS+defined}" ]; then MAKE_OPTS="$MAKEOPTS" elif [ -z "${MAKE_OPTS+defined}" ]; then @@ -934,7 +940,7 @@ build_package_micropython() { { cd mpy-cross "$MAKE" $MAKE_OPTS cd ../ports/unix - "$MAKE" $MAKE_OPTS axtls + [ "$1" = "with_axtls" ] && "$MAKE" $MAKE_OPTS axtls "$MAKE" $MAKE_OPTS CFLAGS_EXTRA="-DMICROPY_PY_SYS_PATH_DEFAULT='\".frozen:${PREFIX_PATH}/lib/micropython\"' $CFLAGS_EXTRA" "$MAKE" install $MAKE_INSTALL_OPTS PREFIX="${PREFIX_PATH}" ln -fs micropython "${PREFIX_PATH}/bin/python" diff --git a/plugins/python-build/share/python-build/micropython-1.20.0 b/plugins/python-build/share/python-build/micropython-1.20.0 new file mode 100644 index 0000000000..64705710ce --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.20.0 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.20.0.tar.xz#098ef8e40abdc62551b5460d0ffe9489074240c0cb5589ca3c3a425551beb9bf"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.20.0.zip#6a2ce86e372ee8c5b9310778fff7fca1daa580afa28ea755f1a303675a8612b7"; } +$install micropython-1.20.0 "$src" micropython diff --git a/plugins/python-build/share/python-build/micropython-1.21.0 b/plugins/python-build/share/python-build/micropython-1.21.0 new file mode 100644 index 0000000000..ccd8b7d367 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.21.0 @@ -0,0 +1,4 @@ +has_tar_xz_support \ + && { install=install_package; src="https://micropython.org/resources/source/micropython-1.21.0.tar.xz#abd2152613559d3f44728668346e78be9d93458133a03b700baf222c322fd4d5"; } \ + || { install=install_zip; src="https://micropython.org/resources/source/micropython-1.21.0.zip#12521faacc7191353f2739267bd9fd2a5e60ea04fb47df74f8e22b6bf59ba967"; } +$install micropython-1.21.0 "$src" micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.9.3 b/plugins/python-build/share/python-build/micropython-1.9.3 index bed5167a70..be7704379a 100644 --- a/plugins/python-build/share/python-build/micropython-1.9.3 +++ b/plugins/python-build/share/python-build/micropython-1.9.3 @@ -1,4 +1,4 @@ has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.9.3.tar.xz#3aa37065f5ea8df372d36253d0ae6333c68572e577df8558d4b7b93e070c624d" \ || src="https://github.com/micropython/micropython/releases/download/v1.9.3/micropython-1.9.3.tar.gz#f94c0b4834edca625b86c0846c89e609ee8fbdbe98e7f719d5108d74b6b4945e" -install_package micropython-1.9.3 "$src" micropython +install_package micropython-1.9.3 "$src" micropython_1_9 diff --git a/plugins/python-build/share/python-build/micropython-1.9.4 b/plugins/python-build/share/python-build/micropython-1.9.4 index d0338c456e..8d5dd5624b 100644 --- a/plugins/python-build/share/python-build/micropython-1.9.4 +++ b/plugins/python-build/share/python-build/micropython-1.9.4 @@ -1,4 +1,4 @@ has_tar_xz_support \ && src="https://micropython.org/resources/source/micropython-1.9.4.tar.xz#1d358d99e908a94fd6dd0d6b448ee56c5830b609cf27a42e0db3bee40cc52a9e" \ || src="https://github.com/micropython/micropython/releases/download/v1.9.4/micropython-1.9.4.tar.gz#0db042011bffcbd65362b67eb3cca87eaefa9f2a55b747fa75e922c706b8ce1a" -install_package micropython-1.9.4 "$src" micropython +install_package micropython-1.9.4 "$src" micropython_1_9 diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index 63da580001..61ff22be95 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -110,7 +110,7 @@ OUT mkdir -p "$INSTALL_ROOT/bin" cd "$INSTALL_ROOT" - stub make true true '(for a in "$@"; do echo $a; done)|grep -E "^CFLAGS_EXTRA="' true + stub make true '(for a in "$@"; do echo $a; done)|grep -E "^CFLAGS_EXTRA="' true stub ln true stub mkdir true run_inline_definition < Date: Sat, 30 Dec 2023 10:11:56 -0500 Subject: [PATCH 0750/1324] Make "Automatic installer" command a copy-able code block (#2874) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ab5ded5f18..1513c83f97 100644 --- a/README.md +++ b/README.md @@ -238,7 +238,9 @@ As far as Pyenv is concerned, version names are simply directories under ##### Automatic installer -`curl https://pyenv.run | bash` +```bash +curl https://pyenv.run | bash +``` For more details visit our other project: https://github.com/pyenv/pyenv-installer From 6e3b91a816e5551d646211b71749addffefb0c15 Mon Sep 17 00:00:00 2001 From: dand-oss Date: Mon, 1 Jan 2024 02:32:19 +0700 Subject: [PATCH 0751/1324] Added PyPy 7.3.14 (#2876) Co-authored-by: Dan Dees --- .../share/python-build/pypy2.7-7.3.14 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.14-src | 14 ++++ .../share/python-build/pypy3.10-7.3.14 | 81 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.14-src | 14 ++++ .../share/python-build/pypy3.9-7.3.14 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.14-src | 14 ++++ 6 files changed, 285 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.14 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.14-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.14 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.14-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.14 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.14-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.14 b/plugins/python-build/share/python-build/pypy2.7-7.3.14 new file mode 100644 index 0000000000..e7af9283ad --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.14 @@ -0,0 +1,81 @@ +VERSION='7.3.14' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=98468f4cc704a2821401afdd001ebddd367e594e05a70c7767fb86f1364fb21a +linux32_hash=b12b4b587da55c8f212ae854e31d29258451e069c65aca596e577644e520bc8b +linux64_hash=5938c3c6cddb2e8eb5e435cd3bf61d15134b94a9ac026e26a533bdda6c28a4a0 +osarm64_hash=a428e18fcf1470b032fb1f4d75795aeed9216b4314a4c8a3e4d7e13f10f8607e +osx64_hash=8af24683621937e65c518fbca1eb34e17ffc741c2ac917e4ca20694348157d78 +s390x_hash=5abc6a0f55a89c08def13b5f410b8e7bd706fe1b472f31db01ecbc4d0a49e8dc + +### 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.14-src b/plugins/python-build/share/python-build/pypy2.7-7.3.14-src new file mode 100644 index 0000000000..1cc47f06cb --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.14-src @@ -0,0 +1,14 @@ +VERSION='7.3.14' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=e096fe67ce2d8d4d5e7dceb84fe1ca854498f00766d31b27d32c8d8833131373 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.14 b/plugins/python-build/share/python-build/pypy3.10-7.3.14 new file mode 100644 index 0000000000..1446657623 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.14 @@ -0,0 +1,81 @@ +VERSION='7.3.14' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +aarch64_hash=fbef65dfc69dcd6006d843553d268b331f1b13dfc3938492bd35f0f477b5bcf4 +linux32_hash=d37e7c7a03bed5dceca2ab7f821ad7655808cccf6908155f78f0effd811b7f4f +linux64_hash=a83879891dc0a6c1504da0954fba1125b21a2591782897231a8168100ea72b94 +osarm64_hash=0f09584e21ed8f45e8ff1e3dd1582f077ebdd23a1068298f45006f67bc692632 +osx64_hash=31ce62b7ea3b5b5bde68241ae9404f0a68f5a7d0094ef651062b7a64caecfd4e +s390x_hash=363e87ad3b6547cc68981c665cf049449bed44cf9e49cabbbcc61df73ea2d40b + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.14-src b/plugins/python-build/share/python-build/pypy3.10-7.3.14-src new file mode 100644 index 0000000000..7f469f95ab --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.14-src @@ -0,0 +1,14 @@ +VERSION='7.3.14' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +hash=a3481af466103fa13740db4e27780e0423dcf8626b3340f60d3d3c28fbc11ae0 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.14 b/plugins/python-build/share/python-build/pypy3.9-7.3.14 new file mode 100644 index 0000000000..340bcf5d59 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.14 @@ -0,0 +1,81 @@ +VERSION='7.3.14' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=14b842f32f60ce2d9d130971f9bcbdb6875824a0e78fac36806d267e0982179c +linux32_hash=4ad89a22369a6f2f83a7d8d047e0fc4cf5597f0921fa7afa23499ed05f663503 +linux64_hash=febd770a616641ca8419c381c7fb224e515b892551d0db49a1231397ed38859d +osarm64_hash=4f8f2464a743f855b8fc8bda7ce7994a674616db3b5c2c1955cd08502fa782ca +osx64_hash=0e2fea9b2dadb82b7acf05f21c0144f7bb1cfaaa39c693ab1eba4aef5ed52680 +s390x_hash=ba2451e9081db5bc724a05530a7f98817231de83ff6fdf15bad21a4e9b6dfeae + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.14-src b/plugins/python-build/share/python-build/pypy3.9-7.3.14-src new file mode 100644 index 0000000000..e572a8f89c --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.14-src @@ -0,0 +1,14 @@ +VERSION='7.3.14' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=560fe6161e159557e1fe612aaadf9b293eefded1da372e70b8e3b23bba598366 + +### 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' From 46d3954bffb70a78adaba2c4d4a2601313483878 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 16 Jan 2024 19:43:29 +0100 Subject: [PATCH 0752/1324] Add graalpy-23.1.2 (#2884) --- .../share/python-build/graalpy-23.1.2 | 64 +++++++++++++++++++ .../python-build/graalpy-community-23.1.2 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-23.1.2 create mode 100644 plugins/python-build/share/python-build/graalpy-community-23.1.2 diff --git a/plugins/python-build/share/python-build/graalpy-23.1.2 b/plugins/python-build/share/python-build/graalpy-23.1.2 new file mode 100644 index 0000000000..50d39a6324 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-23.1.2 @@ -0,0 +1,64 @@ +# Copyright (c) 2024, 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.1.2' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-23.1.2" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="ea9c61845968dd396f57bbb6bb6ccf1608b198dffd99c6fe2e5c03d836e40a74" + ;; +"linux-aarch64" ) + checksum="715cc67f551a009a04814e7201bc33e629ba6c329e7d32c265a3ebf8619f4a66" + ;; +"macos-amd64" ) + checksum="e9e5977077ef4986fce0f8416b81c1c468add9f3f123edfb223b54a5d34a95c6" + ;; +"macos-aarch64" ) + checksum="46c859233c7c5ce44fc44e97f17a1685dc3f8516785c2e419f8661ed7b5185b1" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-23.1.2 b/plugins/python-build/share/python-build/graalpy-community-23.1.2 new file mode 100644 index 0000000000..6b28b4bffc --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-23.1.2 @@ -0,0 +1,54 @@ +# Copyright (c) 2024, 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.1.2' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="27577bded9dd742c7b9b8e5315cec286657edb5842968cc966aa451ddc8729d9" + ;; +"linux-aarch64" ) + checksum="c993484132b9e196d351570ba6a74632eb8695767e383ca86ba1092c4484ff7a" + ;; +"macos-amd64" ) + checksum="e74d586f114b33e55e1a6849672e1a0ea5bd372d8f4a501b532d221c61915d3c" + ;; +"macos-aarch64" ) + checksum="d269f5fdb3e8ae323554de2876ef25d43aaa86867edc41f2b76ea53a27ee3662" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From f82acf8d44186651455b082351dff5ff1cea46ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Wed, 17 Jan 2024 12:45:12 -0600 Subject: [PATCH 0753/1324] Add CPython 3.13.0a3 (#2885) --- .../python-build/share/python-build/{3.13.0a2 => 3.13.0a3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.13.0a2 => 3.13.0a3} (57%) diff --git a/plugins/python-build/share/python-build/3.13.0a2 b/plugins/python-build/share/python-build/3.13.0a3 similarity index 57% rename from plugins/python-build/share/python-build/3.13.0a2 rename to plugins/python-build/share/python-build/3.13.0a3 index 896e5edf16..4ca10241b8 100644 --- a/plugins/python-build/share/python-build/3.13.0a2 +++ b/plugins/python-build/share/python-build/3.13.0a3 @@ -3,7 +3,7 @@ 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.0a2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a2.tar.xz#b6d46b44190c4c02421eb69a042d16b0c55481bdda818c6c416dc244113a9c2d" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tar.xz#20784c8304eb1c69c80f966ebdf0775be2e37e23df3b62461eec12a85dcf7ead" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0a2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a2.tgz#9a3c363589ec882f2d1ff008f29f66231ccb552366dd9d8041a65c7e799cbafd" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tgz#9c7c2b42a20127816f9403723bfc88d1566f47dac0c46f50492f7ff8db646d8f" standard verify_py313 copy_python_gdb ensurepip fi From 2374260efa9af987f2c046475dcd22804a81fb6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Thu, 18 Jan 2024 01:00:11 -0600 Subject: [PATCH 0754/1324] Add PyPy v7.3.15 (#2886) --- .../share/python-build/pypy2.7-7.3.15 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.15-src | 14 ++++ .../share/python-build/pypy3.10-7.3.15 | 81 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.15-src | 14 ++++ .../share/python-build/pypy3.9-7.3.15 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.15-src | 14 ++++ 6 files changed, 285 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.15 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.15-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.15 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.15-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.15 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.15-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.15 b/plugins/python-build/share/python-build/pypy2.7-7.3.15 new file mode 100644 index 0000000000..6e146671eb --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.15 @@ -0,0 +1,81 @@ +VERSION='7.3.15' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=31b41fca7280636d7818713b7a0fab8f34ece9c82cc88e51d305d43b3e6306d6 +linux32_hash=cb5c1da62a8ca31050173c4f6f537bc3ff316026895e5f1897b9bb526babae79 +linux64_hash=e857553bdc4f25ba9670a5c173a057a9ff71262d5c5da73a6ddef9d7dc5d4f5e +osarm64_hash=618d33df7ac6570d88a58183e3e15c56f63f862968cecbd2ee896eac6255cea6 +osx64_hash=72dac262fc63115b6ccd2c3c15e7afd1b2e7a65d7e97265c116246d1cf2cdffd +s390x_hash=eb442279ec3f1eb17da296e38b531d3ca50c6418eab208a020bca4646a1dea46 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.15-src b/plugins/python-build/share/python-build/pypy2.7-7.3.15-src new file mode 100644 index 0000000000..65082f7196 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.15-src @@ -0,0 +1,14 @@ +VERSION='7.3.15' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=a66ddaed39544a35bb7ab7a17dbf673a020c7cb3a614bd2b61a54776888daf2c + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.15 b/plugins/python-build/share/python-build/pypy3.10-7.3.15 new file mode 100644 index 0000000000..e7e49cf9c2 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.15 @@ -0,0 +1,81 @@ +VERSION='7.3.15' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +aarch64_hash=52146fccaf64e87e71d178dda8de63c01577ec3923073dc69e1519622bcacb74 +linux32_hash=75dd58c9abd8b9d78220373148355bc3119febcf27a2c781d64ad85e7232c4aa +linux64_hash=33c584e9a70a71afd0cb7dd8ba9996720b911b3b8ed0156aea298d4487ad22c3 +osarm64_hash=d927c5105ea7880f7596fe459183e35cc17c853ef5105678b2ad62a8d000a548 +osx64_hash=559b61ba7e7c5a5c23cef5370f1fab47ccdb939ac5d2b42b4bef091abe3f6964 +s390x_hash=209e57596381e13c9914d1332f359dc4b78de06576739747eb797bdbf85062b8 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.15-src b/plugins/python-build/share/python-build/pypy3.10-7.3.15-src new file mode 100644 index 0000000000..1cf78ac53e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.15-src @@ -0,0 +1,14 @@ +VERSION='7.3.15' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +hash=837622130b36603a1893899bd9f529961a8e4a56c9eb67268d72ddf8920c9579 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.15 b/plugins/python-build/share/python-build/pypy3.9-7.3.15 new file mode 100644 index 0000000000..2fbadb35f8 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.15 @@ -0,0 +1,81 @@ +VERSION='7.3.15' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=03e35fcba290454bb0ccf7ee57fb42d1e63108d10d593776a382c0a2fe355de0 +linux32_hash=c6209380977066c9e8b96e8258821c70f996004ce1bc8659ae83d4fd5a89ff5c +linux64_hash=f062be307200bde434817e1620cebc13f563d6ab25309442c5f4d0f0d68f0912 +osarm64_hash=300541c32125767a91b182b03d9cc4257f04971af32d747ecd4d62549d72acfd +osx64_hash=18ad7c9cb91c5e8ef9d40442b2fd1f6392ae113794c5b6b7d3a45e04f19edec6 +s390x_hash=deeb5e54c36a0fd9cfefd16e63a0d5bed4f4a43e6bbc01c23f0ed8f7f1c0aaf3 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.15-src b/plugins/python-build/share/python-build/pypy3.9-7.3.15-src new file mode 100644 index 0000000000..510cc52305 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.15-src @@ -0,0 +1,14 @@ +VERSION='7.3.15' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=6bb9537d85aa7ad13c0aad2e41ff7fd55080bc9b4d1361b8f502df51db816e18 + +### 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' From 9908daf81dd29bfd14deb2757e02083826f3e0f0 Mon Sep 17 00:00:00 2001 From: Ruben Laguna Date: Wed, 24 Jan 2024 22:22:54 +0100 Subject: [PATCH 0755/1324] Update pypy3.9-7.3.13 checksums Releases have been reuploaded upstream --- plugins/python-build/share/python-build/pypy3.9-7.3.13 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.13 b/plugins/python-build/share/python-build/pypy3.9-7.3.13 index 2161b5cef3..5614ebc158 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.13 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.13 @@ -5,8 +5,8 @@ PYVER='3.9' aarch64_hash=317d7876c5825a086f854253648b967a432b993ce87695d2895d3ad6ed0d2716 linux32_hash=ac695238b4a3635ac6b482e74e04e2ea78b31acca0decd5de601dfd2f4ebf35a linux64_hash=323b05a9f607e932cda1995cbe77a96e4ea35994631aa6d734c8035e8479b74e -osarm64_hash=333131d62c502aa5d5fb58a58cdf01de4bfb2c1db5a9bb4c04515258abe6bced -osx64_hash=fb1ff67340353e837498102fec2b0b45744bb189dced57ee2e00045785e69662 +osarm64_hash=a07b17a790a1952b551e69d47d77a5546ad5e666ed1bd90b9ad60baaca6aa51e +osx64_hash=180802aa0122d4a05ec480bf3130c78591ba88fdde25d8e65a92d4a798b318a3 s390x_hash=213c88f652a99c4dc4e8e00b4b5b58f381c7f7e9ea1a9b65801fc0eb1e50df0a ### end of manual settings - following lines same for every download From 443de6614bd12088e920b893064bd6802678fb3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sat, 10 Feb 2024 04:25:30 -0600 Subject: [PATCH 0756/1324] Add CPython 3.12.2 (#2899) --- plugins/python-build/share/python-build/3.12.2 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.2 diff --git a/plugins/python-build/share/python-build/3.12.2 b/plugins/python-build/share/python-build/3.12.2 new file mode 100644 index 0000000000..cee4c6068d --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.2 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.2" "https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tar.xz#be28112dac813d2053545c14bf13a16401a21877f1a69eb6ea5d84c4a0f3d870" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.2" "https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz#a7c4f6a9dc423d8c328003254ab0c9338b83037bd787d680826a5bf84308116e" standard verify_py312 copy_python_gdb ensurepip +fi From aca9af761e11b2db892acf09c57103cbd88ae9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sat, 10 Feb 2024 04:28:24 -0600 Subject: [PATCH 0757/1324] Add CPython 3.11.8 (#2898) --- plugins/python-build/share/python-build/3.11.8 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.8 diff --git a/plugins/python-build/share/python-build/3.11.8 b/plugins/python-build/share/python-build/3.11.8 new file mode 100644 index 0000000000..b8ce8de771 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.8 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.11.8" "https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tar.xz#9e06008c8901924395bc1da303eac567a729ae012baa182ab39269f650383bb3" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.8" "https://www.python.org/ftp/python/3.11.8/Python-3.11.8.tgz#d3019a613b9e8761d260d9ebe3bd4df63976de30464e5c0189566e1ae3f61889" standard verify_py311 copy_python_gdb ensurepip +fi From 5e4879a2bcb56b6a6842ca5a64656050af578ad0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 14 Feb 2024 00:58:44 +0300 Subject: [PATCH 0758/1324] v2.3.36 --- CHANGELOG.md | 15 +++++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 380cf08adc..a1ca960fa1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Version History +## Release v2.3.36 +* Add a Dependabot config to auto-update GitHub action versions by @kurtmckee in https://github.com/pyenv/pyenv/pull/2863 +* Bump the github-actions group with 1 update by @dependabot in https://github.com/pyenv/pyenv/pull/2864 +* Add installation prefix to `python-config --ldflags` output by @mhaeuser in https://github.com/pyenv/pyenv/pull/2865 +* Add support for miniconda3 23.11.0-1, 23.11.0-2 with py3.11, py3.10, py3.9, py3.8 by @binbjz in https://github.com/pyenv/pyenv/pull/2870 +* Add micropython 1.20.0 and 1.21.0 by @cpzt in https://github.com/pyenv/pyenv/pull/2869 +* Make "Automatic installer" command in the README a copy-able code block by @ryan-williams in https://github.com/pyenv/pyenv/pull/2874 +* Add PyPy 7.3.14 by @dand-oss in https://github.com/pyenv/pyenv/pull/2876 +* Add graalpy-23.1.2 by @msimacek in https://github.com/pyenv/pyenv/pull/2884 +* Add CPython 3.13.0a3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2885 +* Add PyPy v7.3.15 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2886 +* Update pypy3.9-7.3.13 checksums by @ecerulm in https://github.com/pyenv/pyenv/pull/2887 +* Add CPython 3.12.2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2899 +* Add CPython 3.11.8 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2898 + ## Release v2.3.35 * Add CPython 3.12.1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2861 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f157bf029e..39691f9484 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.35" +version="2.3.36" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 8f8a5e03b457830c70493fa84822272b381e6d35 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 15 Feb 2024 22:40:53 +0300 Subject: [PATCH 0759/1324] Better document installing the HEAD version with Homebrew --- README.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1513c83f97..89adb54899 100644 --- a/README.md +++ b/README.md @@ -209,10 +209,15 @@ As far as Pyenv is concerned, version names are simply directories under brew update brew install pyenv ``` - 2. Then follow the rest of the post-installation steps, starting with + If you want to install (and update to) the latest development head of Pyenv + rather than the latest release, instead run: + ```sh + brew install pyenv --head + ``` + 3. Then follow the rest of the post-installation steps, starting with [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv). - 3. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_ + 4. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_ If you're going to build Homebrew formulae from source that link against Python like Tkinter or NumPy @@ -504,7 +509,7 @@ If you've installed Pyenv using Homebrew, upgrade using: brew upgrade pyenv ``` -To switch from a release to the latest development version of Pyenv, use: +To switch from a release to the latest development head of Pyenv, use: ```sh brew uninstall pyenv From 932dc464f5550e3c6af7f705891c1797c4ab004d Mon Sep 17 00:00:00 2001 From: Saaket Prakash Date: Tue, 20 Feb 2024 22:47:32 +0530 Subject: [PATCH 0760/1324] Add CPython 3.13.0a4 (#2903) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Edgar Ramírez Mondragón <16805946+edgarrmondragon@users.noreply.github.com> --- plugins/python-build/share/python-build/3.13.0a3 | 9 --------- plugins/python-build/share/python-build/3.13.0a4 | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0a3 create mode 100644 plugins/python-build/share/python-build/3.13.0a4 diff --git a/plugins/python-build/share/python-build/3.13.0a3 b/plugins/python-build/share/python-build/3.13.0a3 deleted file mode 100644 index 4ca10241b8..0000000000 --- a/plugins/python-build/share/python-build/3.13.0a3 +++ /dev/null @@ -1,9 +0,0 @@ -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.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tar.xz#20784c8304eb1c69c80f966ebdf0775be2e37e23df3b62461eec12a85dcf7ead" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.13.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tgz#9c7c2b42a20127816f9403723bfc88d1566f47dac0c46f50492f7ff8db646d8f" standard verify_py313 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.13.0a4 b/plugins/python-build/share/python-build/3.13.0a4 new file mode 100644 index 0000000000..bceaeb5c7c --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0a4 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.0a4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a4.tar.xz#bcbd6daae3de381d64a84e9ac50889dce71c5fdff2b680b676537b09907425f6" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.0a4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a4.tgz#84c086d639f8ccf11aedf491c0dbc5cff8383641d0828cd8333ca491b16e42e2" standard verify_py313 copy_python_gdb ensurepip +fi From f9a2bb81b69bc2fc45753f7da5d246bc2706f01d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 20 Feb 2024 20:41:41 +0300 Subject: [PATCH 0761/1324] Revert "Add CPython 3.13.0a4 (#2903)" -- MacOS build is broken This reverts commit 932dc464f5550e3c6af7f705891c1797c4ab004d. --- plugins/python-build/share/python-build/3.13.0a3 | 9 +++++++++ plugins/python-build/share/python-build/3.13.0a4 | 9 --------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.13.0a3 delete mode 100644 plugins/python-build/share/python-build/3.13.0a4 diff --git a/plugins/python-build/share/python-build/3.13.0a3 b/plugins/python-build/share/python-build/3.13.0a3 new file mode 100644 index 0000000000..4ca10241b8 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0a3 @@ -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.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tar.xz#20784c8304eb1c69c80f966ebdf0775be2e37e23df3b62461eec12a85dcf7ead" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tgz#9c7c2b42a20127816f9403723bfc88d1566f47dac0c46f50492f7ff8db646d8f" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.0a4 b/plugins/python-build/share/python-build/3.13.0a4 deleted file mode 100644 index bceaeb5c7c..0000000000 --- a/plugins/python-build/share/python-build/3.13.0a4 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.0a4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a4.tar.xz#bcbd6daae3de381d64a84e9ac50889dce71c5fdff2b680b676537b09907425f6" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.13.0a4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a4.tgz#84c086d639f8ccf11aedf491c0dbc5cff8383641d0828cd8333ca491b16e42e2" standard verify_py313 copy_python_gdb ensurepip -fi From 02e1d4a293139ecf2c94206ee9c00b388550366e Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sun, 25 Feb 2024 16:07:52 -0500 Subject: [PATCH 0762/1324] Handle case where `pyenv-commands --sh` returns nothing (#2908) In exceptional cases (custom installation, malfunctions elsewhere), `pyenv-commands --sh` may return nothing. In non-Fish, this would cause "syntax error near unexpected token `)'" in `pyenv()`. Bash does not allow to specify a `case` option that would never match. This works around it by defaulting to `/`. Commands, being filenames, can never match it. In Fish, nothing needs to be done: it apparently does interpret a `case` without argument as one that never matches. --- libexec/pyenv-init | 2 +- test/init.bats | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index a875bb3106..492360e6a5 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -297,7 +297,7 @@ EOS fi case "\$command" in - ${commands[*]}) + ${commands[*]:-/}) eval "\$(pyenv "sh-\$command" "\$@")" ;; *) diff --git a/test/init.bats b/test/init.bats index 21109c9488..53d131ccfc 100755 --- a/test/init.bats +++ b/test/init.bats @@ -2,6 +2,18 @@ load test_helper +setup() { + export PATH="${PYENV_TEST_DIR}/bin:$PATH" +} + +create_executable() { + local name="$1" + local bin="${PYENV_TEST_DIR}/bin" + mkdir -p "$bin" + sed -Ee '1s/^ +//' > "${bin}/$name" + chmod +x "${bin}/$name" +} + @test "creates shims and versions directories" { assert [ ! -d "${PYENV_ROOT}/shims" ] assert [ ! -d "${PYENV_ROOT}/versions" ] @@ -167,6 +179,24 @@ echo "\$PATH" assert_line ' case "$command" in' } +@test "outputs sh-compatible case syntax" { + create_executable pyenv-commands < Date: Sat, 24 Feb 2024 21:03:27 -0500 Subject: [PATCH 0763/1324] Fix `KeyError` when running `add_miniforge.py` I was attempting to run the script to generate build files for new versions, but it failed because version `23.1.0-4`[^1] contained a malformed `.sha256` file.[^2] I looked at the miniforge repo's script `releases.py`[^3] and copied the logic about which release artifacts should be skipped when generating a list of downloads. [^1]: https://github.com/conda-forge/miniforge/releases/tag/23.1.0-4 [^2]: https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-uninstaller-patch-Windows-x86_64.exe.sha256 [^3]: https://github.com/conda-forge/miniforge/blob/a15762906ba6f339a95b218b784e91605a24a681/docs/releases.py#L35-L36 --- plugins/python-build/scripts/add_miniforge.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index e9701b8c57..1290b5cb20 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -71,8 +71,9 @@ def supported(filename): return ('pypy' not in filename) and ('Windows' not in filename) def add_version(release): + tag_name = release['tag_name'] download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] } - shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256')]) + shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and tag_name in name]) specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)] for distribution in DISTRIBUTIONS: From a43259a186822a6090063dd905cdfa192c2e9517 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sat, 24 Feb 2024 21:34:50 -0500 Subject: [PATCH 0764/1324] Fix overly broad check for existing miniforge build files The glob pattern we were using was too permissive and detecting miniconda build scripts as miniforge build scripts when they shared the same version. I have rewritten the pattern matching code to ensure we only look at files starting with `miniforge` and `mambaforge`. --- plugins/python-build/scripts/add_miniforge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 1290b5cb20..efa17a919c 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -100,6 +100,6 @@ def add_version(release): logger.info('Looking for %(version)s in %(out_dir)s', locals()) - if not list(out_dir.glob(f'*-{version}')): + if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS): logger.info('Downloading %(version)s', locals()) add_version(release) From dbbe2b63f49354482a5e3d0021ca2b8b541b5b4b Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sat, 24 Feb 2024 21:55:22 -0500 Subject: [PATCH 0765/1324] Skip check for miniforge version `4.13.0-0` We always detect missing build scripts for `4.13.0-0` because the release[^1] doesn't have any mambaforge artifacts. Given that we've already created the build files, we don't need to check the release again. [^1]: https://github.com/conda-forge/miniforge/releases/tag/4.13.0-0 --- plugins/python-build/scripts/add_miniforge.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index efa17a919c..741ead9022 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -100,6 +100,11 @@ def add_version(release): logger.info('Looking for %(version)s in %(out_dir)s', locals()) + # Release has no mambaforge artifacts, which causes the next check to always trigger + # Build scripts have already been generated, so safe to skip this version + if version == '4.13.0-0': + continue + if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS): logger.info('Downloading %(version)s', locals()) add_version(release) From 5d06a2711869175a9ab566397601112bef851ae1 Mon Sep 17 00:00:00 2001 From: Alex Hedges Date: Sat, 24 Feb 2024 21:16:51 -0500 Subject: [PATCH 0766/1324] Update miniforge and mambaforge with `add_miniforge.py` --- .../share/python-build/mambaforge-22.11.1-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-22.11.1-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-22.11.1-2 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-22.11.1-3 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-22.11.1-4 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.1.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.1.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.1.0-2 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.1.0-3 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.1.0-4 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.10.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.11.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.3.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.3.1-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-23.3.1-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.11.1-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.11.1-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.11.1-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-22.11.1-3 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.1.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.1.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.1.0-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.1.0-3 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.1.0-4 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.10.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.11.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.3.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-23.3.1-0 | 25 +++++++++++++++++++ 28 files changed, 700 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-2 create mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-3 create mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-4 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.1.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.1.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.1.0-2 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.1.0-3 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.1.0-4 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.10.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.11.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.3.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.3.1-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-23.3.1-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.1.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.1.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.1.0-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.1.0-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.1.0-4 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.10.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.11.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.3.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-23.3.1-0 diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-0 b/plugins/python-build/share/python-build/mambaforge-22.11.1-0 new file mode 100644 index 0000000000..a82ade5e95 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.11.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.11.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-Linux-aarch64.sh#d701d2d411fef9f7c7beddf388a9cefc354e354fa7d4c9e5663d6a7413d76aab" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.11.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-Linux-ppc64le.sh#614b8e33e9b8086c81ce45ac9763b57bc38f51e70184b15b54ef02e12a00b8c8" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.11.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-Linux-x86_64.sh#e79c9b9553ab05d3d2e5b026f38035dbc772d79a96aa883b836828a16fccf44d" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.11.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-MacOSX-arm64.sh#67e3cf19b0aa21c5a890dde5545265c51792c6c495939eb26dfccdc6d3677b36" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.11.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-MacOSX-x86_64.sh#3067c707b3f297445fc2c9b66752a6320244d8a5589488ece8f2265c45230318" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-1 b/plugins/python-build/share/python-build/mambaforge-22.11.1-1 new file mode 100644 index 0000000000..4a0c3fa70f --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.11.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.11.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-Linux-aarch64.sh#ae6d9c269bf49165a64dc0312e5ea7e5fe8b1e29ab7d70df778b0183ad83f026" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.11.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-Linux-ppc64le.sh#2b4ce0603ea3f5e6979e5b34415dab5c5b7f0e4bd4a34b57e6c9fa11eb6603b7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.11.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-Linux-x86_64.sh#28e88bbcc413a841d4046f24b621c710bd6075a7fe7a7ba406dc0681f9f833a0" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.11.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-MacOSX-arm64.sh#72f0467ddabfdfaf1fc9e52c93297691e74d4ee39c1647b2c4e9f1995f4978eb" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.11.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-MacOSX-x86_64.sh#badb485c59df134134135e431f017777bf0df89dc884df44045336d79df794b7" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-2 b/plugins/python-build/share/python-build/mambaforge-22.11.1-2 new file mode 100644 index 0000000000..01711f091b --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.11.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.11.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-Linux-aarch64.sh#90709f5246547f2b115c630738f2ad3cb8ee12d706e8d3a81efcc96112a4d138" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.11.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-Linux-ppc64le.sh#1821e4aa5cebb929796e911991a80b10beee062d4647931a88642f0089e215f2" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.11.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-Linux-x86_64.sh#a9f94a0d94934cb2dd42d79b9af843fdd2ced7d324722e9047340af2f9837416" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.11.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-MacOSX-arm64.sh#78039894a1785e6d532fbe4d09354afb9c5779c2e087aa64c0c525505afebff2" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.11.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-MacOSX-x86_64.sh#4ab9fcb934cfe7dfe7b7382d2ec2b31470fdd932d4f979d28d33670ae90c6e32" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-3 b/plugins/python-build/share/python-build/mambaforge-22.11.1-3 new file mode 100644 index 0000000000..a6d7290627 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.11.1-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.11.1-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Mambaforge-22.11.1-3-Linux-aarch64.sh#898134462553de6b16cdcf649b2fc5f46b7bff5ac92b12cae7f6a46eeb973c8d" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.11.1-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Mambaforge-22.11.1-3-Linux-ppc64le.sh#446b3c31293cfec57dc651fbd0aadb9b9663746863e7601b2aa25aa005907192" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.11.1-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Mambaforge-22.11.1-3-Linux-x86_64.sh#dc7b120aa6f12004e406498cb605c752bd6e4bfe18da169dfe119b91d0c8c8ce" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.11.1-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Mambaforge-22.11.1-3-MacOSX-arm64.sh#a85225bc54ba3c5caaf202817b4f49578d6134e6818c8fbc75173af69a80847d" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.11.1-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Mambaforge-22.11.1-3-MacOSX-x86_64.sh#0b17731c449ab96b3c5e39553fd68fbe1e4c68e9b016126ccf68a8f00a4a3a38" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-4 b/plugins/python-build/share/python-build/mambaforge-22.11.1-4 new file mode 100644 index 0000000000..82e3daf85f --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-22.11.1-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-22.11.1-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Mambaforge-22.11.1-4-Linux-aarch64.sh#96191001f27e0cc76612d4498d34f9f656d8a7dddee44617159e42558651479c" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-22.11.1-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Mambaforge-22.11.1-4-Linux-ppc64le.sh#9ad024c2ed11e1c75324515727c70384f073be1373111c34b14b7212944e7e0d" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-22.11.1-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Mambaforge-22.11.1-4-Linux-x86_64.sh#16c7d256de783ceeb39970e675efa4a8eb830dcbb83187f1197abfea0bf07d30" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-22.11.1-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Mambaforge-22.11.1-4-MacOSX-arm64.sh#a551be4b416a05f31ba3605f78694f1e21559533744c45ded0c4bfeb7666f317" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-22.11.1-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-4/Mambaforge-22.11.1-4-MacOSX-x86_64.sh#0f0f746330259c6f9c3678fdbdb6195dddad4b9bac921a6de07c62a60234ad8d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.1.0-0 b/plugins/python-build/share/python-build/mambaforge-23.1.0-0 new file mode 100644 index 0000000000..042fa4419a --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.1.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.1.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-Linux-aarch64.sh#01c29a399ad63c9aa28a69a622e9273e9bb8c5d504f1858ba789c5ca63ba1187" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.1.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-Linux-ppc64le.sh#ec0b8b10fbb9a7eb1b9c6ddf0487d0e8e0b16926791b84afc1623b43f45d1faf" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.1.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-Linux-x86_64.sh#0598ec82e02233e0e242b12129349416225dd07c2318f0ec1cfce4d7d9c397d8" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.1.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-MacOSX-arm64.sh#538ea7a9d24cad041a2b7fd71cf49f433137f9b4bc8e11408f2285e99cf79f96" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.1.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Mambaforge-23.1.0-0-MacOSX-x86_64.sh#61d95ff7a7bbe465a416f5ad43460fb1a50e621ed15233cc4e3441a03bb48cd4" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.1.0-1 b/plugins/python-build/share/python-build/mambaforge-23.1.0-1 new file mode 100644 index 0000000000..4ba8377b9b --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.1.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.1.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Mambaforge-23.1.0-1-Linux-aarch64.sh#d9d89c9e349369702171008d9ee7c5ce80ed420e5af60bd150a3db4bf674443a" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.1.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Mambaforge-23.1.0-1-Linux-ppc64le.sh#f7065963c9c7eba0ea80ad6431903ddb89fe1ec34c47967cbb8a5247c613b30b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.1.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Mambaforge-23.1.0-1-Linux-x86_64.sh#cfb16c47dc2d115c8b114280aa605e322173f029fdb847a45348bf4bd23c62ab" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.1.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Mambaforge-23.1.0-1-MacOSX-arm64.sh#e519a74734f963c2fe744557115f8862fa573dea0de581b0b4a22cbd31127448" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.1.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Mambaforge-23.1.0-1-MacOSX-x86_64.sh#e33f9d426d62759e7c4adf5431fdd91a23df71732b5e22b699cace52255e8196" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.1.0-2 b/plugins/python-build/share/python-build/mambaforge-23.1.0-2 new file mode 100644 index 0000000000..ef90d5cdc5 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.1.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.1.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Mambaforge-23.1.0-2-Linux-aarch64.sh#a1a3f7cd517e97ef9b0f8e4c1afeb659c7c69849e623904297984e79b1f29b37" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.1.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Mambaforge-23.1.0-2-Linux-ppc64le.sh#fa7e75949d227c12d152efce5ae494ad5725fb0f71151dfdbdddd60e3d265dde" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.1.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Mambaforge-23.1.0-2-Linux-x86_64.sh#8c9244094375379cfe1b6317afc9e693924d0f58ea5c68c64cde4463847c1e31" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.1.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Mambaforge-23.1.0-2-MacOSX-arm64.sh#a58be683b4c00c32591eedc7a6675c8a4d3c7cbf3ef3808f4513033de46be7c8" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.1.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Mambaforge-23.1.0-2-MacOSX-x86_64.sh#f7c53778a47579d886441747a7fe697d020da3b1726f3f7fe7d7e779c3d506e2" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.1.0-3 b/plugins/python-build/share/python-build/mambaforge-23.1.0-3 new file mode 100644 index 0000000000..ce40edb809 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.1.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.1.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Mambaforge-23.1.0-3-Linux-aarch64.sh#b7038f4f4d972fa2589dd9edd014940b94600589f924cc6d35a9b11d37506c25" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.1.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Mambaforge-23.1.0-3-Linux-ppc64le.sh#b89f25891ce072a0de5f6f1f5889609dc1eee71ac1301c8ddb7538bd608f273c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.1.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Mambaforge-23.1.0-3-Linux-x86_64.sh#7a6a07de6063245163a87972fb15be3a226045166eb7ee526344f82da1f3b694" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.1.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Mambaforge-23.1.0-3-MacOSX-arm64.sh#75368b03ac79b170537748a600ea847e35d83a4fef9ea438c34217b7e28b9330" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.1.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Mambaforge-23.1.0-3-MacOSX-x86_64.sh#7e4dd16067bbb4ab41616f3378d0c788302818c7fe13806fe8e97707471c9004" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.1.0-4 b/plugins/python-build/share/python-build/mambaforge-23.1.0-4 new file mode 100644 index 0000000000..d4432ab938 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.1.0-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.1.0-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Mambaforge-23.1.0-4-Linux-aarch64.sh#95c354268f62e32d57c84f2e1a0caf9b19f77c894ecc83008db0e5e666ce3d43" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.1.0-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Mambaforge-23.1.0-4-Linux-ppc64le.sh#70ed57b9d32457c172c208b16a839937e2dd77e3fa1bff5ef1cb2f1a7da102ba" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.1.0-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Mambaforge-23.1.0-4-Linux-x86_64.sh#6ca38e02be99c410644c283bac74601f296dd10995ce1c8d345af995a39b5916" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.1.0-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Mambaforge-23.1.0-4-MacOSX-arm64.sh#baa1ae638537766cac808efba09175ba21878b34288476dc7bbd01347145721f" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.1.0-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Mambaforge-23.1.0-4-MacOSX-x86_64.sh#26937ea98870531e51da942b7f6cc26cc9af49bb16390486ee6dde9e0dc2c597" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.10.0-0 b/plugins/python-build/share/python-build/mambaforge-23.10.0-0 new file mode 100644 index 0000000000..f48a4a901e --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.10.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.10.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Mambaforge-23.10.0-0-Linux-aarch64.sh#38d86db6ef78caa0ac001c48f454112df2a1e90cd6884dba03a3265393f762b2" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.10.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Mambaforge-23.10.0-0-Linux-ppc64le.sh#8f28c516ef441c0691d94a7cf3917b8c77eda4ac378c89bd491d4d8ff4f887c8" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.10.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Mambaforge-23.10.0-0-Linux-x86_64.sh#cf2782419e118db664653a6e63bbf212a24cbc3126c413aa5886fd0f7d20d3c0" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.10.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Mambaforge-23.10.0-0-MacOSX-arm64.sh#8b300c413195f33c3965445213de2b76bbf5fcbe9087aa80b8d6bf81a21b5764" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.10.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Mambaforge-23.10.0-0-MacOSX-x86_64.sh#8f1ddb27deffe5e631b3ce69fc3f880c7f3710ee08a42fee64e2b2e1a039683f" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.11.0-0 b/plugins/python-build/share/python-build/mambaforge-23.11.0-0 new file mode 100644 index 0000000000..e22937ed99 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.11.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-Linux-aarch64.sh#71320f28280b4e41f37469f6b0ae85e31ba9c26a87c7ee69cecaae3eaa5a4057" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-Linux-ppc64le.sh#148b18f94b5a0878d5fa1190b41cad5a803eca1cd15429e26571fef11422e2b2" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-Linux-x86_64.sh#3dfdcc162bf0df83b5025608dc2acdbbc575bd416b75701fb5863343c0517a78" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-MacOSX-arm64.sh#dd832d8a65a861b5592b2cf1d55f26031f7c1491b30321754443931e7b1e6832" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Mambaforge-23.11.0-0-MacOSX-x86_64.sh#c6ac073b80cedb313561bc11c2e61b0bd102b74df0363ed6c1e90303b322092a" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.3.0-0 b/plugins/python-build/share/python-build/mambaforge-23.3.0-0 new file mode 100644 index 0000000000..6a75d2bb2a --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.3.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Mambaforge-23.3.0-0-Linux-aarch64.sh#ae506f8013fc3f487dd3c9a4fde0b1a529b02bb5478921913c46a115dbcd7d1f" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.3.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Mambaforge-23.3.0-0-Linux-ppc64le.sh#f8c0e24abaedfcf611c70451d0bb771f453a0eb4cc0bbbb0670f9753817827a6" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.3.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Mambaforge-23.3.0-0-Linux-x86_64.sh#f8b12a9815575b0fec9c85100053ef24e59043194546826fb565288c51ba930d" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.3.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Mambaforge-23.3.0-0-MacOSX-arm64.sh#82ed548de9de74d2b6dda9830f581d897eb82694c1df79d957eaef9066dd7ef4" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.3.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Mambaforge-23.3.0-0-MacOSX-x86_64.sh#d4603c9b380d5daa923f8d0543de5df57ba971a1562a519c6e3fe1240963012a" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.3.1-0 b/plugins/python-build/share/python-build/mambaforge-23.3.1-0 new file mode 100644 index 0000000000..3a2c8f7b3c --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.3.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.3.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Mambaforge-23.3.1-0-Linux-aarch64.sh#6e4feeafeff69f35a7455a35f763eb6d5a1e946e7b9b321099640ac93e619a53" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.3.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Mambaforge-23.3.1-0-Linux-ppc64le.sh#6518bf3aa2499a4c76fee54d33450d386a1d4c1bf2e0b2ddaec03f8f7b4319d2" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.3.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Mambaforge-23.3.1-0-Linux-x86_64.sh#c425dcc3501692f23564d8b0a7b3ba69166c61424e9ce0d825f64f9479dcafa1" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.3.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Mambaforge-23.3.1-0-MacOSX-arm64.sh#71e7ea4295d22f0c7ab08b334c07d9540e10775c8abd456314e186625cfb3bf1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.3.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Mambaforge-23.3.1-0-MacOSX-x86_64.sh#b7b5fe0690528a4d449597e49edb2595625f2cf29e0473fd2a8d2dabc4d948f5" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-23.3.1-1 b/plugins/python-build/share/python-build/mambaforge-23.3.1-1 new file mode 100644 index 0000000000..1e579c4b0b --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-23.3.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-23.3.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Mambaforge-23.3.1-1-Linux-aarch64.sh#32dcc92b4f0b0108ac0734721fb65172395f6c39ecdcaf5bf63edc01f0932020" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-23.3.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Mambaforge-23.3.1-1-Linux-ppc64le.sh#93fa681cadda8b73bd93a1bf2f60aaa577fe02ef537ee5300eab33af2b45f6d0" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-23.3.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Mambaforge-23.3.1-1-Linux-x86_64.sh#dbe92c011a1315b9626e2f93a165892f4b89177145bc350b3859a483a3642a24" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-23.3.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Mambaforge-23.3.1-1-MacOSX-arm64.sh#1b07c1a231a18f21da6aac1abe87dd173ce141ce7612f06eab962eb9f8353a27" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-23.3.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Mambaforge-23.3.1-1-MacOSX-x86_64.sh#ee707e117c4eb54b7a02a0ba1b2fc2b60325ce6f767e76274e45dbe7743efa7d" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-0 b/plugins/python-build/share/python-build/miniforge3-22.11.1-0 new file mode 100644 index 0000000000..a9b8551b36 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.11.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.11.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-Linux-aarch64.sh#ebdb58e3f3c3372433ee7c5a72069aea97dbde3c0c5c3bf37f84f072479499fd" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.11.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-Linux-ppc64le.sh#831b26fa4d5aae8668327b75e1c7ade2d6c1614eb986c7d9221082ce8b511e74" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.11.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-Linux-x86_64.sh#2235f18922121544d2a8152ebda278d70525aa7909cd1ff3cb3ff41f0553ddd8" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.11.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-MacOSX-arm64.sh#aa19baf0ee1e50d308635835ef8b982679aaad13a48cbebf003d50eaadc947f5" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.11.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-MacOSX-x86_64.sh#330b78000c33603e2f87d1c2d693a4f7a76d46ae8cdb79293f934cc812037b4e" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-1 b/plugins/python-build/share/python-build/miniforge3-22.11.1-1 new file mode 100644 index 0000000000..adf5d55bc6 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.11.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.11.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-Linux-aarch64.sh#12177bf63a76067d83b974ed303c3ce70e33f62d0ee5efec1c8ac09503334904" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.11.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-Linux-ppc64le.sh#5a09b7b136787b4460edf3798e37676983b4233782a3ab9ddb6bade44f0e3ee3" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.11.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-Linux-x86_64.sh#5c8e437632c7ed52034f4cb766a3bc49cecda5fec824c7173a3ba1fc8dc9ee29" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.11.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-MacOSX-arm64.sh#611452c8acc69f6323ffbbb0bb1c4b2244006eb3a9d5214017059a85f3b8abda" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.11.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-MacOSX-x86_64.sh#9542378343fc2d009335cbca212ce5d413c4b3ee25afecba1683b5d2291d1aa3" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-2 b/plugins/python-build/share/python-build/miniforge3-22.11.1-2 new file mode 100644 index 0000000000..b8810e83b0 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.11.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.11.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-aarch64.sh#a56ca2e0fe901e809b3add4235e06221b94d207d6513019985bde8509062d7bc" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.11.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-ppc64le.sh#6bc85189bad2f1b45a36b0368b10ee0154268c38c7b0770d225158fc48e14f17" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.11.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-x86_64.sh#79f7de7a1a48f82b08b2d7f16503daf9de7de7423f4e70372a30919b9cbe35b6" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.11.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-MacOSX-arm64.sh#7e9d1848df1a049daeba8e1d8d0cb9fffdd511571df7cae075e7ee4f1efd2fc0" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.11.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-MacOSX-x86_64.sh#7c8e1a35ad9d41a1969d47cfe4dca44d9e422607ab704e5850b15a3bc1331cc5" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-3 b/plugins/python-build/share/python-build/miniforge3-22.11.1-3 new file mode 100644 index 0000000000..4d6a363975 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-22.11.1-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-22.11.1-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Miniforge3-22.11.1-3-Linux-aarch64.sh#6ee6fbbaaf900f090e9786b093ad829f0d3e6224d8c50ee37d5fc2c1317b2521" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-22.11.1-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Miniforge3-22.11.1-3-Linux-ppc64le.sh#bfccb07a65500c7ed2a7eb363c720caf69dc6baaa36ef52b1224df270c215c2c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-22.11.1-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Miniforge3-22.11.1-3-Linux-x86_64.sh#b96991615834e66a34f3653f12597b5938425bb00a0ce47dc493ea03ecf6f339" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-22.11.1-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Miniforge3-22.11.1-3-MacOSX-arm64.sh#f416cc5ceb8420d12d078254f161f7c59fd41ca4dfcd86ce6a67c9c34069a15e" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-22.11.1-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-3/Miniforge3-22.11.1-3-MacOSX-x86_64.sh#9e590b6635d97a81fcb8b5366384317db544629b290f34423f3710a6917d2d58" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.1.0-0 b/plugins/python-build/share/python-build/miniforge3-23.1.0-0 new file mode 100644 index 0000000000..a67b877283 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.1.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.1.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Miniforge3-23.1.0-0-Linux-aarch64.sh#4972174d7bc88c636f50257fd2dc718abfd648b227dacbde4c8db716d05bb08b" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.1.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Miniforge3-23.1.0-0-Linux-ppc64le.sh#21ccc195bdee24caf9eef5e8fdd250d3fba9147a68e1cd114c2375cb03ba6043" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.1.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Miniforge3-23.1.0-0-Linux-x86_64.sh#9bbcc29e8e43151bd4634fbe086e3d7914aba3963ac6b1e8d59c530435bd33d9" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.1.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Miniforge3-23.1.0-0-MacOSX-arm64.sh#0aece610f84e023d062e1c88bfc6033dd60101ec9b79819f87fc1b009263989b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.1.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-0/Miniforge3-23.1.0-0-MacOSX-x86_64.sh#a9665fec3c8c1abd572666d4c49d512b3c27082324a1713ca2fde6efb8ce7856" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.1.0-1 b/plugins/python-build/share/python-build/miniforge3-23.1.0-1 new file mode 100644 index 0000000000..83a0638a3a --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.1.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.1.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Miniforge3-23.1.0-1-Linux-aarch64.sh#9083f5aa0a125bfbc1a8e8d5eb57812a2761b884e0806a75ebc3c95be894791e" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.1.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Miniforge3-23.1.0-1-Linux-ppc64le.sh#6b9d4af128f6378ec688ce412fb1a4fe8ce298df9d05bb7092637c8047faeb26" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.1.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Miniforge3-23.1.0-1-Linux-x86_64.sh#7a5859e873ed36fc9a141fff0ac60e133b971b3413aed49a4c82693d4f4a2ad2" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.1.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Miniforge3-23.1.0-1-MacOSX-arm64.sh#147ee54acc6ebd5148d712945fed29c4e01a247528f28fd958615f63bfc75687" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.1.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-1/Miniforge3-23.1.0-1-MacOSX-x86_64.sh#7c737a78918164c5a07a6489b8429f9788aadb58536434c0d34316e7686dc424" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.1.0-2 b/plugins/python-build/share/python-build/miniforge3-23.1.0-2 new file mode 100644 index 0000000000..538280fd42 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.1.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.1.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Miniforge3-23.1.0-2-Linux-aarch64.sh#ca662b0c5620cc4f70afe75a674b212a424bb16da103251d07afe8cfa268983c" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.1.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Miniforge3-23.1.0-2-Linux-ppc64le.sh#34e7db7d071b15abb07603108d5a74c4878aa25be30005163ed9bdbafe8ecf79" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.1.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Miniforge3-23.1.0-2-Linux-x86_64.sh#ee75d00832ef4aeb1ae04ac62ffb1dc917409696cfbe50f5f93125ab9b165278" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.1.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Miniforge3-23.1.0-2-MacOSX-arm64.sh#05891e572dedd62c128c51ed7cdcceba191155779f5ea1abdf0e57e3fba8a982" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.1.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-2/Miniforge3-23.1.0-2-MacOSX-x86_64.sh#1d837379b50b57bf009b6a6956a7cff10dc25ca52a940a35b7090f2e9b6c5482" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.1.0-3 b/plugins/python-build/share/python-build/miniforge3-23.1.0-3 new file mode 100644 index 0000000000..dcfb05aca9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.1.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.1.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Miniforge3-23.1.0-3-Linux-aarch64.sh#2e180aa558ff38481ec5147b7f06060c3c8cfbd12894abe31b5f75fc23f7d09a" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.1.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Miniforge3-23.1.0-3-Linux-ppc64le.sh#00722f3dd257143816d94d8fc97a3c43ccc3046e31956240d14c210268ccc64e" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.1.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Miniforge3-23.1.0-3-Linux-x86_64.sh#d4e4750ac95508512c52ff33fa71834e7839e8c51224694a544aecdd655ce29c" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.1.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Miniforge3-23.1.0-3-MacOSX-arm64.sh#85f4f38d3502871c09d94ab2fd43fe221284eb33c361c486c2b420a726328a7e" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.1.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-3/Miniforge3-23.1.0-3-MacOSX-x86_64.sh#846df715e78ef3b875d1cbf17ed124e261f5ece2dd0e2556310cf4dfbc1238f6" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.1.0-4 b/plugins/python-build/share/python-build/miniforge3-23.1.0-4 new file mode 100644 index 0000000000..0aa8686e4b --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.1.0-4 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.1.0-4-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-23.1.0-4-Linux-aarch64.sh#bf6a4b9d3e0195b9c64b58f0e28738edc259a214f362edbc23884e82ad59cb8c" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.1.0-4-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-23.1.0-4-Linux-ppc64le.sh#0e49480e6a3429d9578bdbdc154d623375273b3e8c205353c1cc9d6e0cce1f59" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.1.0-4-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-23.1.0-4-Linux-x86_64.sh#35c531207d2a8d212215bdb7f998c926f24bc8686e1cf46a693a3ea375613a7f" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.1.0-4-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-23.1.0-4-MacOSX-arm64.sh#de48052b85900a3878cedbb25add7e17b14d5bdfba8ba523791851a10a6b84fe" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.1.0-4-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.1.0-4/Miniforge3-23.1.0-4-MacOSX-x86_64.sh#a43f4e34aa27b5cb849027b01b03931df52f768fc8b82b1f72f40ff064abb6f3" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.10.0-0 b/plugins/python-build/share/python-build/miniforge3-23.10.0-0 new file mode 100644 index 0000000000..ef4624c472 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.10.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.10.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Miniforge3-23.10.0-0-Linux-aarch64.sh#3760323416d2ce48ca8445386a8c12b453a92f111614dd1870f0ea684d6d32a8" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.10.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Miniforge3-23.10.0-0-Linux-ppc64le.sh#d1a5287138cc4bcc70dad3d1dcf770d8ec13f93c82aeea481bb727860b0f4b5c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.10.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Miniforge3-23.10.0-0-Linux-x86_64.sh#da66ba24d5ffdf4c339ec8923de9e207f682f2027f9f382103080dea4407ef33" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.10.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Miniforge3-23.10.0-0-MacOSX-arm64.sh#057b6ba35d5872b33b6342183546bd0d5e838460bb019a2fe4db2208eb042135" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.10.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.10.0-0/Miniforge3-23.10.0-0-MacOSX-x86_64.sh#a1785d943daba4f23dac64fc389b4e5929aee6d20eb8ba245671887249238df9" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.11.0-0 b/plugins/python-build/share/python-build/miniforge3-23.11.0-0 new file mode 100644 index 0000000000..3873f0f010 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.11.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Miniforge3-23.11.0-0-Linux-aarch64.sh#775968746d062a14bd84db3ae72f18f60f4acf229bd840625805e87668486bf4" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Miniforge3-23.11.0-0-Linux-ppc64le.sh#a77f1293dbc2a70c5b58f495f70dfc143f3455ca9da9edbc1afa66157c1c722a" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Miniforge3-23.11.0-0-Linux-x86_64.sh#73576b96409ed38a7ca596bece058e8c77c6ef3eab42af7cfdf2ae975e8f3928" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Miniforge3-23.11.0-0-MacOSX-arm64.sh#9382007611d4ad7201976a33cd65aaf2b3de582285b76c894d8c71eac544bfe1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.11.0-0/Miniforge3-23.11.0-0-MacOSX-x86_64.sh#6e586a93cc8c6d21deb543d46740806795eae4ff16a76bc5f8a57673e3044c73" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.3.0-0 b/plugins/python-build/share/python-build/miniforge3-23.3.0-0 new file mode 100644 index 0000000000..58204c9185 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.3.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Miniforge3-23.3.0-0-Linux-aarch64.sh#ca3ccf3006d7923b91157c434c4a9ba58b99812a00cf48aa83f2835ea3f7d167" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.3.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Miniforge3-23.3.0-0-Linux-ppc64le.sh#4b12965a0c0746110480c61440ba836022db72cdfed69616de3dfa66ba7c92df" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.3.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Miniforge3-23.3.0-0-Linux-x86_64.sh#17484f59cbe983abb953cc33e7a4c0ee0b33153de61d5465bb1aaf176e43d038" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.3.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Miniforge3-23.3.0-0-MacOSX-arm64.sh#37ca7c33fefcfb45deef58eaa690970c7392a87f01a076f932dd7f3f684888d7" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.3.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.0-0/Miniforge3-23.3.0-0-MacOSX-x86_64.sh#32f797ba073ae153bd1fd36a556833c0082c3cd44ac25f13fc5228258aadf7a5" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-23.3.1-0 b/plugins/python-build/share/python-build/miniforge3-23.3.1-0 new file mode 100644 index 0000000000..941d15e660 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-23.3.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-23.3.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Miniforge3-23.3.1-0-Linux-aarch64.sh#b71277b8b40a6817d923fde0b858f56a4504f4e9b659d343dd8eae9d9473ab7f" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-23.3.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Miniforge3-23.3.1-0-Linux-ppc64le.sh#434b461d309110bfeb72198541a541985aa197e3b605de27978c15f31d1520ef" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-23.3.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Miniforge3-23.3.1-0-Linux-x86_64.sh#9be723d231609919fa3e3bb06f899a9a9c22e92e570bada8129a1bf50fee8d73" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-23.3.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Miniforge3-23.3.1-0-MacOSX-arm64.sh#32632039d6f457e56589591bd893f62cba85e31379ec8b663f8b06f35b0860e7" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-23.3.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/23.3.1-0/Miniforge3-23.3.1-0-MacOSX-x86_64.sh#e9447f308499d99821c48293fe258bb47595f238140cd9c834f57321d3839cd0" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 2aa13dc4fe27b0784171dc016cfd44cc1f09bef1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 27 Feb 2024 18:35:43 +0300 Subject: [PATCH 0767/1324] Remove broken miniforge3 and mambaforge 22.11.1-0 to 22.11.1-2 Cause 403s on dependency packages --- .../share/python-build/mambaforge-22.11.1-0 | 25 ------------------- .../share/python-build/mambaforge-22.11.1-1 | 25 ------------------- .../share/python-build/mambaforge-22.11.1-2 | 25 ------------------- .../share/python-build/miniforge3-22.11.1-0 | 25 ------------------- .../share/python-build/miniforge3-22.11.1-1 | 25 ------------------- .../share/python-build/miniforge3-22.11.1-2 | 25 ------------------- 6 files changed, 150 deletions(-) delete mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-0 delete mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-1 delete mode 100644 plugins/python-build/share/python-build/mambaforge-22.11.1-2 delete mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-0 delete mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-1 delete mode 100644 plugins/python-build/share/python-build/miniforge3-22.11.1-2 diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-0 b/plugins/python-build/share/python-build/mambaforge-22.11.1-0 deleted file mode 100644 index a82ade5e95..0000000000 --- a/plugins/python-build/share/python-build/mambaforge-22.11.1-0 +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Mambaforge-22.11.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-Linux-aarch64.sh#d701d2d411fef9f7c7beddf388a9cefc354e354fa7d4c9e5663d6a7413d76aab" "miniconda" verify_py310 - ;; -"Linux-ppc64le" ) - install_script "Mambaforge-22.11.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-Linux-ppc64le.sh#614b8e33e9b8086c81ce45ac9763b57bc38f51e70184b15b54ef02e12a00b8c8" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Mambaforge-22.11.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-Linux-x86_64.sh#e79c9b9553ab05d3d2e5b026f38035dbc772d79a96aa883b836828a16fccf44d" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Mambaforge-22.11.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-MacOSX-arm64.sh#67e3cf19b0aa21c5a890dde5545265c51792c6c495939eb26dfccdc6d3677b36" "miniconda" verify_py310 - ;; -"MacOSX-x86_64" ) - install_script "Mambaforge-22.11.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Mambaforge-22.11.1-0-MacOSX-x86_64.sh#3067c707b3f297445fc2c9b66752a6320244d8a5589488ece8f2265c45230318" "miniconda" verify_py310 - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-1 b/plugins/python-build/share/python-build/mambaforge-22.11.1-1 deleted file mode 100644 index 4a0c3fa70f..0000000000 --- a/plugins/python-build/share/python-build/mambaforge-22.11.1-1 +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Mambaforge-22.11.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-Linux-aarch64.sh#ae6d9c269bf49165a64dc0312e5ea7e5fe8b1e29ab7d70df778b0183ad83f026" "miniconda" verify_py310 - ;; -"Linux-ppc64le" ) - install_script "Mambaforge-22.11.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-Linux-ppc64le.sh#2b4ce0603ea3f5e6979e5b34415dab5c5b7f0e4bd4a34b57e6c9fa11eb6603b7" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Mambaforge-22.11.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-Linux-x86_64.sh#28e88bbcc413a841d4046f24b621c710bd6075a7fe7a7ba406dc0681f9f833a0" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Mambaforge-22.11.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-MacOSX-arm64.sh#72f0467ddabfdfaf1fc9e52c93297691e74d4ee39c1647b2c4e9f1995f4978eb" "miniconda" verify_py310 - ;; -"MacOSX-x86_64" ) - install_script "Mambaforge-22.11.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Mambaforge-22.11.1-1-MacOSX-x86_64.sh#badb485c59df134134135e431f017777bf0df89dc884df44045336d79df794b7" "miniconda" verify_py310 - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/mambaforge-22.11.1-2 b/plugins/python-build/share/python-build/mambaforge-22.11.1-2 deleted file mode 100644 index 01711f091b..0000000000 --- a/plugins/python-build/share/python-build/mambaforge-22.11.1-2 +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Mambaforge-22.11.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-Linux-aarch64.sh#90709f5246547f2b115c630738f2ad3cb8ee12d706e8d3a81efcc96112a4d138" "miniconda" verify_py310 - ;; -"Linux-ppc64le" ) - install_script "Mambaforge-22.11.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-Linux-ppc64le.sh#1821e4aa5cebb929796e911991a80b10beee062d4647931a88642f0089e215f2" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Mambaforge-22.11.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-Linux-x86_64.sh#a9f94a0d94934cb2dd42d79b9af843fdd2ced7d324722e9047340af2f9837416" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Mambaforge-22.11.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-MacOSX-arm64.sh#78039894a1785e6d532fbe4d09354afb9c5779c2e087aa64c0c525505afebff2" "miniconda" verify_py310 - ;; -"MacOSX-x86_64" ) - install_script "Mambaforge-22.11.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Mambaforge-22.11.1-2-MacOSX-x86_64.sh#4ab9fcb934cfe7dfe7b7382d2ec2b31470fdd932d4f979d28d33670ae90c6e32" "miniconda" verify_py310 - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-0 b/plugins/python-build/share/python-build/miniforge3-22.11.1-0 deleted file mode 100644 index a9b8551b36..0000000000 --- a/plugins/python-build/share/python-build/miniforge3-22.11.1-0 +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniforge3-22.11.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-Linux-aarch64.sh#ebdb58e3f3c3372433ee7c5a72069aea97dbde3c0c5c3bf37f84f072479499fd" "miniconda" verify_py310 - ;; -"Linux-ppc64le" ) - install_script "Miniforge3-22.11.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-Linux-ppc64le.sh#831b26fa4d5aae8668327b75e1c7ade2d6c1614eb986c7d9221082ce8b511e74" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Miniforge3-22.11.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-Linux-x86_64.sh#2235f18922121544d2a8152ebda278d70525aa7909cd1ff3cb3ff41f0553ddd8" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Miniforge3-22.11.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-MacOSX-arm64.sh#aa19baf0ee1e50d308635835ef8b982679aaad13a48cbebf003d50eaadc947f5" "miniconda" verify_py310 - ;; -"MacOSX-x86_64" ) - install_script "Miniforge3-22.11.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-0/Miniforge3-22.11.1-0-MacOSX-x86_64.sh#330b78000c33603e2f87d1c2d693a4f7a76d46ae8cdb79293f934cc812037b4e" "miniconda" verify_py310 - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-1 b/plugins/python-build/share/python-build/miniforge3-22.11.1-1 deleted file mode 100644 index adf5d55bc6..0000000000 --- a/plugins/python-build/share/python-build/miniforge3-22.11.1-1 +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniforge3-22.11.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-Linux-aarch64.sh#12177bf63a76067d83b974ed303c3ce70e33f62d0ee5efec1c8ac09503334904" "miniconda" verify_py310 - ;; -"Linux-ppc64le" ) - install_script "Miniforge3-22.11.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-Linux-ppc64le.sh#5a09b7b136787b4460edf3798e37676983b4233782a3ab9ddb6bade44f0e3ee3" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Miniforge3-22.11.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-Linux-x86_64.sh#5c8e437632c7ed52034f4cb766a3bc49cecda5fec824c7173a3ba1fc8dc9ee29" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Miniforge3-22.11.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-MacOSX-arm64.sh#611452c8acc69f6323ffbbb0bb1c4b2244006eb3a9d5214017059a85f3b8abda" "miniconda" verify_py310 - ;; -"MacOSX-x86_64" ) - install_script "Miniforge3-22.11.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-1/Miniforge3-22.11.1-1-MacOSX-x86_64.sh#9542378343fc2d009335cbca212ce5d413c4b3ee25afecba1683b5d2291d1aa3" "miniconda" verify_py310 - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/miniforge3-22.11.1-2 b/plugins/python-build/share/python-build/miniforge3-22.11.1-2 deleted file mode 100644 index b8810e83b0..0000000000 --- a/plugins/python-build/share/python-build/miniforge3-22.11.1-2 +++ /dev/null @@ -1,25 +0,0 @@ -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniforge3-22.11.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-aarch64.sh#a56ca2e0fe901e809b3add4235e06221b94d207d6513019985bde8509062d7bc" "miniconda" verify_py310 - ;; -"Linux-ppc64le" ) - install_script "Miniforge3-22.11.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-ppc64le.sh#6bc85189bad2f1b45a36b0368b10ee0154268c38c7b0770d225158fc48e14f17" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Miniforge3-22.11.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-Linux-x86_64.sh#79f7de7a1a48f82b08b2d7f16503daf9de7de7423f4e70372a30919b9cbe35b6" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Miniforge3-22.11.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-MacOSX-arm64.sh#7e9d1848df1a049daeba8e1d8d0cb9fffdd511571df7cae075e7ee4f1efd2fc0" "miniconda" verify_py310 - ;; -"MacOSX-x86_64" ) - install_script "Miniforge3-22.11.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/22.11.1-2/Miniforge3-22.11.1-2-MacOSX-x86_64.sh#7c8e1a35ad9d41a1969d47cfe4dca44d9e422607ab704e5850b15a3bc1331cc5" "miniconda" verify_py310 - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - ;; -esac From 57594c0600655f5211bccefc53b1b916cb83555f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 27 Feb 2024 18:49:47 +0300 Subject: [PATCH 0768/1324] More detailed explanation of the band-aid code --- plugins/python-build/scripts/add_miniforge.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 741ead9022..bd2c91cfc9 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -100,8 +100,10 @@ def add_version(release): logger.info('Looking for %(version)s in %(out_dir)s', locals()) - # Release has no mambaforge artifacts, which causes the next check to always trigger - # Build scripts have already been generated, so safe to skip this version + # This release has no mambaforge artifacts which causes the next check to always trigger. + # Build scripts for miniforge3-4.13.0-0 have already been generated. + # Assuming this was a fluke, we don't yet need to implement proactively checking all releases for contents + # or ignoring a release if _any_ of the flavors is already present in Pyenv. if version == '4.13.0-0': continue From 9d8764f545facc43f82e212fd3c158ff4d5b6415 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 27 Feb 2024 19:10:39 +0300 Subject: [PATCH 0769/1324] Document default build configuration customizations (#2911) --- plugins/python-build/README.md | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 7b0601cd71..f0826fc854 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -98,6 +98,47 @@ custom definition files. [definitions]: https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build +### Default build configuration + +Without the user customizing the build with environment variables (see below), +`python-build` builds Python with mostly default Configure options +to maintain the principle of the least surprise. + +The exceptions -- non-default options that are set by default -- are listed below: + +| Option/Behavior | Rationale | +|-----------------|-----------| +| `--enable-shared` is on by default. Pass `--disable-shared` to Configure options to override | The official CPython Docker image uses it. It's required to embed CPython. | +| argument to `--enable-universalsdk` is ignored and set to `/` | +| `--with-universal-archs` defaults to `universal2` on ARM64 architecture | the only dual-architecture Macs in use today are Apple Silicon which can only build that one | +| argument to `--enable-framework` is ignored and set to a specific value | CPython's build logic requires a very specific argument to avoid installing the `Applications` part globally | +| argument to `--enable-unicode` in non-MacOS is overridden to `ucs4` for 2.x-3.3 | +| `MACOSX_DEPLOYMENT_TARGET` defaults to the running MacOS version | + + +#### Integration with 3rd-party package ecosystems + +##### Homebrew + +In MacOS, Homebrew is used to find dependency packages if `brew` is found on `PATH`. + +Set `PYTHON_BUILD_SKIP_HOMEBREW` to avoid using it. + +When Homebrew is used, its `include` and `lib` paths are added to compiler search path (the latter is also set as `rpath`), +and also Python dependencies that are typically keg-only are searched for in the Homebrew installation and added individually. + +**NOTE:** Homebrew is not used in Linux by default because it's rolling-release which causes a problem. +Upgrading a Python dependency in Homebrew to a new major version (that `brew` does without warning) +would break all Pyenv-managed installations that depend on it. +You can use a [community plugin `fix-version`](https://github.com/pyenv/pyenv/wiki/Plugins#community-plugins) +to fix installations in such a case. + +##### Portage + +In FreeBSD, if `pkg` is on PATH, Ports are searched for some dependencies that Configure is known to not search for via `pkg-config`. +(Later versions of CPython search for more packages via `pkg-config` so this may eventually become redundant.) + + ### Special environment variables You can set certain environment variables to control the build process. From 05bb4f9a8dc19ba902c53566845291d3ceff47c2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 19 Feb 2024 01:38:02 +0300 Subject: [PATCH 0770/1324] Use Homebrew in Linux if Pyenv is installed with Homebrew or PYTHON_BUILD_USE_HOMEBREW is set --- plugins/python-build/README.md | 9 ++- plugins/python-build/bin/python-build | 13 +++- plugins/python-build/test/build.bats | 104 +++++++++++++++++--------- 3 files changed, 86 insertions(+), 40 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index f0826fc854..7fd921658c 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -120,9 +120,11 @@ The exceptions -- non-default options that are set by default -- are listed belo ##### Homebrew -In MacOS, Homebrew is used to find dependency packages if `brew` is found on `PATH`. +Homebrew is used to find dependency packages if `brew` is found on `PATH`: +* In MacOS, or +* If the running Pyenv itself is installed with Homebrew -Set `PYTHON_BUILD_SKIP_HOMEBREW` to avoid using it. +Set `PYTHON_BUILD_USE_HOMEBREW` or `PYTHON_BUILD_SKIP_HOMEBREW` to override this default. When Homebrew is used, its `include` and `lib` paths are added to compiler search path (the latter is also set as `rpath`), and also Python dependencies that are typically keg-only are searched for in the Homebrew installation and added individually. @@ -155,7 +157,8 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from their original source URLs instead of using a mirror. * `PYTHON_BUILD_HTTP_CLIENT`, explicitly specify the HTTP client type to use. `aria2`, `curl` and `wget` are the supported values and by default, are searched in that order. -* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew in macOS. +* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will. +* `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions in `share/python-build/` are looked up. diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index ae4246f84f..044defde9c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -118,8 +118,17 @@ is_mac() { } can_use_homebrew() { - [ -z "$PYTHON_BUILD_SKIP_HOMEBREW" ] || return 1 - is_mac || return 1 + [[ -n "$PYTHON_BUILD_USE_HOMEBREW" && -n "$PYTHON_BUILD_SKIP_HOMEBREW" ]] && { + echo "error: mutually exclusive environment variables PYTHON_BUILD_USE_HOMEBREW and PYTHON_BUILD_SKIP_HOMEBREW are set" >&3 + exit 1 + } + [[ -n "$PYTHON_BUILD_USE_HOMEBREW" ]] && return 0 + [[ -n "$PYTHON_BUILD_SKIP_HOMEBREW" ]] && return 1 + is_mac && return 0 + # In Linux, if Pyenv itself is installed with Homebrew, + # we assume the user wants to take dependencies from there as well by default + command -v brew &>/dev/null && [[ $(abs_dirname "${BASH_SOURCE}") == "$(abs_dirname "$(brew --prefix 2>/dev/null ||true)")"/* ]] && return 0 + return 1 } # 9.1 -> 901 diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index f050e4b582..aacef79f32 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -201,34 +201,6 @@ make install OUT } -@test "yaml is not linked from Homebrew in non-MacOS" { - cached_tarball "yaml-0.1.6" - cached_tarball "Python-3.6.2" - - for i in {1..10}; do stub uname '-s : echo Linux'; done - stub brew true; brew - stub_make_install - stub_make_install - - install_fixture definitions/needs-yaml - assert_success - - unstub uname - unstub brew - unstub make - - assert_build_log < Date: Tue, 27 Feb 2024 17:52:26 +0300 Subject: [PATCH 0771/1324] Set useful PS4 in python-build --- plugins/python-build/bin/python-build | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 044defde9c..a30f66979e 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -19,7 +19,10 @@ PYTHON_BUILD_VERSION="20180424" OLDIFS="$IFS" set -E -[ -n "$PYENV_DEBUG" ] && set -x +[ -n "$PYENV_DEBUG" ] && { + export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + set -x +} exec 3<&2 # preserve original stderr at fd 3 From 21c2a3dd6944bf2f0cb4e3bb8f217e9138aaaf55 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Wed, 28 Feb 2024 23:58:25 +0800 Subject: [PATCH 0772/1324] =?UTF-8?q?Add=20miniconda3-24.1.2-0=20support?= =?UTF-8?q?=20for=20py312=E3=80=81py311=E3=80=81py310=E3=80=81py39=20(#291?= =?UTF-8?q?5)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-24.1.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.1.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.1.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.1.2-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.1.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.1.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.1.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.1.2-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.1.2-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.1.2-0 new file mode 100644 index 0000000000..1261a0bbe1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.1.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.1.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-aarch64.sh#e560e737ac0e625dcc19ca2927457c2944434a61280daae2594632aca76d1422" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.1.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-s390x.sh#014fd09da9f7ecae040d586a6ff4218e508bf0e5e0232be6383ff37973a337c7" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.1.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh#8eb5999c2f7ac6189690d95ae5ec911032fa6697ae4b34eb3235802086566d78" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.1.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-MacOSX-arm64.sh#01110da80119c11078d2b39a499b6dc086c5fd4b413f4b333d32feb3b03cbe7b" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.1.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-MacOSX-x86_64.sh#f078682fca26350717c1940650c227f9843fe9f3f0ecc87bf2665bccc5c64f9c" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.1.2-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.1.2-0 new file mode 100644 index 0000000000..e8322878ed --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.1.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.1.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.1.2-0-Linux-aarch64.sh#1e046ef2d9d47289db2491f103c81b0b4baf943a9234ac59bd5bca076c881d98" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.1.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.1.2-0-Linux-s390x.sh#0489909051fd9e2c9addfa5fbd531ccb7f8f2463ac47376b8854e5a09b1c4011" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.1.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.1.2-0-Linux-x86_64.sh#3f2e5498e550a6437f15d9cc8020d52742d0ba70976ee8fce4f0daefa3992d2e" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.1.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.1.2-0-MacOSX-arm64.sh#b5c4f646144fa4760bd5f6114ff2e6b49a3ef7c57b993f569adceea784f21a52" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.1.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.1.2-0-MacOSX-x86_64.sh#3b26c0867561d0988040193c8efd9f53ca922026f735367436aa05b467b1f187" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.1.2-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.1.2-0 new file mode 100644 index 0000000000..dab27cd084 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.1.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.1.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.1.2-0-Linux-aarch64.sh#942a057a52ec99f0fca4f413b87b332f6e61fad95c05fa7cabc003ae0b4471de" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.1.2-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.1.2-0-Linux-s390x.sh#7ee6a3c41a825eca3b1c9e3c7155c67f7c26e31a75d7dc4f78f75a4c438e3009" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.1.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.1.2-0-Linux-x86_64.sh#b978856ec3c826eb495b60e3fffe621f670c101150ebcbdeede4f961f22dc438" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.1.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.1.2-0-MacOSX-arm64.sh#1c277b1ec046fd1b628390994e3fa3dbac0e364f44cd98b915daaa67a326c66a" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.1.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.1.2-0-MacOSX-x86_64.sh#bc45a2ceea9341579532847cc9f29a9769d60f12e306bba7f0de6ad5acdd73e9" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.1.2-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.1.2-0 new file mode 100644 index 0000000000..3e03e031e2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.1.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.1.2-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.1.2-0-Linux-aarch64.sh#b3e7d8ad4a4c9106594b268ab1cd9494ce982eaf7734bb2cd13a47e14e92a43e" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.1.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.1.2-0-Linux-s390x.sh#c1e5b7cee62b465a919b88a9c5658c426c6633f1fbcb568d2cff36a13aef6b97" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.1.2-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.1.2-0-Linux-x86_64.sh#b978856ec3c826eb495b60e3fffe621f670c101150ebcbdeede4f961f22dc438" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.1.2-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.1.2-0-MacOSX-arm64.sh#2a7e44373bdf47caae991ff8d7d275a2ded51ed0e8e457c7edc9ecd45e48cda4" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.1.2-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.1.2-0-MacOSX-x86_64.sh#d4e81df5beaa73dbbb9e1e91065e8f8222e9a9d44a2e7271aedd6e4a5054c541" "miniconda" verify_py39 + ;; +* ) + { 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 From c5eae0f2636b4e4366343100f62ec4d4805d30b1 Mon Sep 17 00:00:00 2001 From: cuinix <65650185+cuinix@users.noreply.github.com> Date: Thu, 7 Mar 2024 05:15:41 +0800 Subject: [PATCH 0773/1324] minor grammar fix in libffi backport patch in 2.5.x (#2922) Signed-off-by: cuinix <915115094@qq.com> --- .../python-build/patches/2.5.0/Python-2.5/004_osx_libffi.patch | 2 +- .../patches/2.5.1/Python-2.5.1/004_osx_libffi.patch | 2 +- .../patches/2.5.2/Python-2.5.2/004_osx_libffi.patch | 2 +- .../patches/2.5.3/Python-2.5.3/004_osx_libffi.patch | 2 +- .../patches/2.5.4/Python-2.5.4/004_osx_libffi.patch | 2 +- .../patches/2.5.5/Python-2.5.5/004_osx_libffi.patch | 2 +- .../patches/2.5.6/Python-2.5.6/004_osx_libffi.patch | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/python-build/share/python-build/patches/2.5.0/Python-2.5/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.0/Python-2.5/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.0/Python-2.5/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.0/Python-2.5/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); diff --git a/plugins/python-build/share/python-build/patches/2.5.1/Python-2.5.1/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.1/Python-2.5.1/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.1/Python-2.5.1/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.1/Python-2.5.1/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); diff --git a/plugins/python-build/share/python-build/patches/2.5.2/Python-2.5.2/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.2/Python-2.5.2/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.2/Python-2.5.2/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.2/Python-2.5.2/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); diff --git a/plugins/python-build/share/python-build/patches/2.5.3/Python-2.5.3/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.3/Python-2.5.3/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.3/Python-2.5.3/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.3/Python-2.5.3/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); diff --git a/plugins/python-build/share/python-build/patches/2.5.4/Python-2.5.4/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.4/Python-2.5.4/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.4/Python-2.5.4/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.4/Python-2.5.4/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); diff --git a/plugins/python-build/share/python-build/patches/2.5.5/Python-2.5.5/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.5/Python-2.5.5/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.5/Python-2.5.5/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.5/Python-2.5.5/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); diff --git a/plugins/python-build/share/python-build/patches/2.5.6/Python-2.5.6/004_osx_libffi.patch b/plugins/python-build/share/python-build/patches/2.5.6/Python-2.5.6/004_osx_libffi.patch index 9c3ababcb9..83184323a8 100644 --- a/plugins/python-build/share/python-build/patches/2.5.6/Python-2.5.6/004_osx_libffi.patch +++ b/plugins/python-build/share/python-build/patches/2.5.6/Python-2.5.6/004_osx_libffi.patch @@ -197,7 +197,7 @@ index 0000000..1fc2747 +Before making the call, the VALUES vector should be initialized +with pointers to the appropriate argument values. + -+To call the the function using the initialized ffi_cif, use the ++To call the function using the initialized ffi_cif, use the +ffi_call function: + +void ffi_call(ffi_cif *cif, void *fn, void *rvalue, void **avalues); From 0167890c8c8e66bb1aaa579725a27279d31afb96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Fri, 15 Mar 2024 16:53:11 -0600 Subject: [PATCH 0774/1324] Add CPython 3.13.0a5 (#2924) --- plugins/python-build/share/python-build/3.13.0a3 | 9 --------- plugins/python-build/share/python-build/3.13.0a5 | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0a3 create mode 100644 plugins/python-build/share/python-build/3.13.0a5 diff --git a/plugins/python-build/share/python-build/3.13.0a3 b/plugins/python-build/share/python-build/3.13.0a3 deleted file mode 100644 index 4ca10241b8..0000000000 --- a/plugins/python-build/share/python-build/3.13.0a3 +++ /dev/null @@ -1,9 +0,0 @@ -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.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tar.xz#20784c8304eb1c69c80f966ebdf0775be2e37e23df3b62461eec12a85dcf7ead" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.13.0a3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a3.tgz#9c7c2b42a20127816f9403723bfc88d1566f47dac0c46f50492f7ff8db646d8f" standard verify_py313 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.13.0a5 b/plugins/python-build/share/python-build/3.13.0a5 new file mode 100644 index 0000000000..c6736dd436 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0a5 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.0a5" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a5.tar.xz#1e89b5355183e7c898a5a01b2f601728fe49fdb89d9c9781f13360847aaefa62" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.0a5" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a5.tgz#672dc36e775e0775a15042ce7f9959986745fa44be7519b8847b26da0022e3fa" standard verify_py313 copy_python_gdb ensurepip +fi From e41f7c9ee419aafcd1e84545aa57179cbe9b73d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Tue, 19 Mar 2024 14:41:58 -0600 Subject: [PATCH 0775/1324] Add CPython 3.8.19 and 3.9.19 (#2929) --- plugins/python-build/share/python-build/3.8.19 | 12 ++++++++++++ plugins/python-build/share/python-build/3.9.19 | 12 ++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.8.19 create mode 100644 plugins/python-build/share/python-build/3.9.19 diff --git a/plugins/python-build/share/python-build/3.8.19 b/plugins/python-build/share/python-build/3.8.19 new file mode 100644 index 0000000000..5e29edbc7c --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.19 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.19" "https://www.python.org/ftp/python/3.8.19/Python-3.8.19.tar.xz#d2807ac69f69b84fd46a0b93bbd02a4fa48d3e70f4b2835ff0f72a2885040076" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.19" "https://www.python.org/ftp/python/3.8.19/Python-3.8.19.tgz#c7fa55a36e5c7a19ec37d8f90f60a2197548908c9ac8b31e7c0dbffdd470eeac" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.19 b/plugins/python-build/share/python-build/3.9.19 new file mode 100644 index 0000000000..b6c1e5baf1 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.19 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.19" "https://www.python.org/ftp/python/3.9.19/Python-3.9.19.tar.xz#d4892cd1618f6458cb851208c030df1482779609d0f3939991bd38184f8c679e" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.19" "https://www.python.org/ftp/python/3.9.19/Python-3.9.19.tgz#f5f9ec8088abca9e399c3b62fd8ef31dbd2e1472c0ccb35070d4d136821aaf71" standard verify_py39 copy_python_gdb ensurepip +fi From 7deace666634bfd46e80742202852acb2ebecaea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 19 Mar 2024 21:43:01 +0100 Subject: [PATCH 0776/1324] Add GraalPy 24.0.0 (#2928) --- .../share/python-build/graalpy-24.0.0 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.0.0 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.0.0 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.0.0 diff --git a/plugins/python-build/share/python-build/graalpy-24.0.0 b/plugins/python-build/share/python-build/graalpy-24.0.0 new file mode 100644 index 0000000000..d71e70fc9e --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.0.0 @@ -0,0 +1,64 @@ +# Copyright (c) 2024, 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='24.0.0' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="f0d194dea76da26093b9b01b78c0fcabbd8714640b08fcd2a9b05b9ded3e2039" + ;; +"linux-aarch64" ) + checksum="5bf0fd9d115c3ecd6bfb89a2fac7b9ba9343841c3928d14eac471b9b1ad1266e" + ;; +"macos-amd64" ) + checksum="1e2e51ea618bd6f6fe9a0248486b5962f6258193249c0657dc0480fd2b92d772" + ;; +"macos-aarch64" ) + checksum="d5597711839a41506beb129f9d8015f8997a1db1e0c79972636834d955d4ef61" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.0.0 b/plugins/python-build/share/python-build/graalpy-community-24.0.0 new file mode 100644 index 0000000000..c2323169e2 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.0.0 @@ -0,0 +1,54 @@ +# Copyright (c) 2024, 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='24.0.0' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="a77892d8d6b897b70b4226aa1b6abc8c41e824ae98d727429542b0157ae6f8d9" + ;; +"linux-aarch64" ) + checksum="201e2bad0ed59efc89654a77ae1634302111b3ffb9af53f9ee63ab43b735e5c3" + ;; +"macos-amd64" ) + checksum="7c816beb8c8b46ee0de60861f739c274efbc744304aa9034bffbd0319f13701d" + ;; +"macos-aarch64" ) + checksum="7f5540a28cf5c2c628cd003c3eb86bfa0a07175dae7d9b6528b40c44c4927402" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 7e550e31f749ce3cda067644de44b18be761470b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Thu, 21 Mar 2024 13:26:57 -0600 Subject: [PATCH 0777/1324] Add CPython 3.10.14 (#2930) --- plugins/python-build/share/python-build/3.10.14 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.14 diff --git a/plugins/python-build/share/python-build/3.10.14 b/plugins/python-build/share/python-build/3.10.14 new file mode 100644 index 0000000000..0b062fec93 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.14 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.14" "https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tar.xz#9c50481faa8c2832329ba0fc8868d0a606a680fc4f60ec48d26ce8e076751fda" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.14" "https://www.python.org/ftp/python/3.10.14/Python-3.10.14.tgz#cefea32d3be89c02436711c95a45c7f8e880105514b78680c14fe76f5709a0f6" standard verify_py310 copy_python_gdb ensurepip +fi From 51a626c1eadf91d800ecfe393832cf861443b3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Rom=C3=A1n?= Date: Sat, 30 Mar 2024 02:57:02 -0700 Subject: [PATCH 0778/1324] Add Jython 2.7.3 (#2936) --- .../python-build/share/python-build/jython-2.7.3 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 plugins/python-build/share/python-build/jython-2.7.3 diff --git a/plugins/python-build/share/python-build/jython-2.7.3 b/plugins/python-build/share/python-build/jython-2.7.3 new file mode 100644 index 0000000000..8e5c7cd867 --- /dev/null +++ b/plugins/python-build/share/python-build/jython-2.7.3 @@ -0,0 +1,14 @@ +require_java +unrequire_python27 +install_jar "jython-2.7.3" "https://repo1.maven.org/maven2/org/python/jython-installer/2.7.3/jython-installer-2.7.3.jar#3ffc25c5257d2028b176912a4091fe048c45c7d98218e52d7ce3160a62fdc9fc" jython + +case "$(pypy_architecture 2>/dev/null || true)" in +"osx64"|"win32" ) + # Jython does not seem to work properly on OSX/windows unless JAVA_HOME is set + if [ -z "${JAVA_HOME+defined}" ]; then + colorize 1 "WARNING: " + echo "Please ensure that your JAVA_HOME environment variable is set correctly!" + echo "See http://bugs.jython.org/issue2346 for details." + fi + ;; +esac From 465b8ee74a59766fde08867ba5686c4f41660589 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Tue, 2 Apr 2024 08:49:31 -0600 Subject: [PATCH 0779/1324] Add CPython 3.11.9 (#2938) --- plugins/python-build/share/python-build/3.11.9 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.11.9 diff --git a/plugins/python-build/share/python-build/3.11.9 b/plugins/python-build/share/python-build/3.11.9 new file mode 100644 index 0000000000..96f734c8a9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.9 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.11.9" "https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tar.xz#9b1e896523fc510691126c864406d9360a3d1e986acbda59cda57b5abda45b87" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.9" "https://www.python.org/ftp/python/3.11.9/Python-3.11.9.tgz#e7de3240a8bc2b1e1ba5c81bf943f06861ff494b69fda990ce2722a504c6153d" standard verify_py311 copy_python_gdb ensurepip +fi From 5b4d5a32d343dcae5e7b3f1a09850312f89ba868 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 3 Apr 2024 18:28:21 +0300 Subject: [PATCH 0780/1324] remove duplication --- plugins/python-build/test/stubs/stub | 4 ---- 1 file changed, 4 deletions(-) diff --git a/plugins/python-build/test/stubs/stub b/plugins/python-build/test/stubs/stub index b940bedbb8..a3b0f33ea1 100755 --- a/plugins/python-build/test/stubs/stub +++ b/plugins/python-build/test/stubs/stub @@ -100,10 +100,6 @@ if [ -n "${!_STUB_END}" ]; then rm -f "${!_STUB_RUN}" rm -f "${!_STUB_LOG}" - # Clean up the run file. - rm -f "${!_STUB_RUN}" - rm -f "${!_STUB_LOG}" - # Return the result. exit "${!_STUB_RESULT}" From b80d5fd28d7477c0b27725544d46b79b14f11357 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 7 Apr 2024 20:48:40 +0300 Subject: [PATCH 0781/1324] 2.3.37 --- CHANGELOG.md | 15 +++++++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1ca960fa1..9046c7ec01 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,20 @@ # Version History +## Release v2.3.37 +* Add CPython 3.13.0a4 by @saaketp in https://github.com/pyenv/pyenv/pull/2903 +* Handle the case where `pyenv-commands --sh` returns nothing by @aphedges in https://github.com/pyenv/pyenv/pull/2908 +* Document default build configuration customizations by @native-api in https://github.com/pyenv/pyenv/pull/2911 +* Use Homebrew in Linux if Pyenv is installled with Homebrew by @native-api in https://github.com/pyenv/pyenv/pull/2906 +* Add miniforge and mambaforge 22.11.1-3, 22.11.1-4, 23.1.0-0 to 23.11.0-0 by @aphedges in https://github.com/pyenv/pyenv/pull/2909 +* Add miniconda3-24.1.2 by @binbjz in https://github.com/pyenv/pyenv/pull/2915 +* Minor grammar fix in libffi backport patch in 2.5.x by @cuinix in https://github.com/pyenv/pyenv/pull/2922 +* Add CPython 3.13.0a5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2924 +* Add CPython 3.8.19 and 3.9.19 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2929 +* Add GraalPy 24.0.0 by @msimacek in https://github.com/pyenv/pyenv/pull/2928 +* Add CPython 3.10.14 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2930 +* Add Jython 2.7.3 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/2936 +* Add CPython 3.11.9 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2938 + ## Release v2.3.36 * Add a Dependabot config to auto-update GitHub action versions by @kurtmckee in https://github.com/pyenv/pyenv/pull/2863 * Bump the github-actions group with 1 update by @dependabot in https://github.com/pyenv/pyenv/pull/2864 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 39691f9484..cd3a8f2605 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.36" +version="2.3.37" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 961882403a0b2f1e0d673b88f893d021f1882ea6 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 7 Apr 2024 21:22:53 +0300 Subject: [PATCH 0782/1324] Add anaconda 2024.02 (#2939) --- .../share/python-build/anaconda3-2024.02-1 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2024.02-1 diff --git a/plugins/python-build/share/python-build/anaconda3-2024.02-1 b/plugins/python-build/share/python-build/anaconda3-2024.02-1 new file mode 100644 index 0000000000..498c79ed13 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2024.02-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2024.02-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-aarch64.sh#28c5bed6fba84f418516e41640c7937514aabd55e929a8f66937c737303c7bba" "anaconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2024.02-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-s390x.sh#3e2e8b17ea9a5caafd448f52e01435998b2e1ce102040a924d5bd6e05a1d735b" "anaconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2024.02-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2024.02-1-Linux-x86_64.sh#c536ddb7b4ba738bddbd4e581b29308cb332fa12ae3fa2cd66814bd735dff231" "anaconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2024.02-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2024.02-1-MacOSX-arm64.sh#14a1c80af18c2c2e743e63cdb41228cd554a3fdb250563b6978348c80b6860f6" "anaconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2024.02-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2024.02-1-MacOSX-x86_64.sh#944aee9b90f7d8a2a997d0337cb37219757f22e76c10de38c7c68191c6b5b226" "anaconda" verify_py311 + ;; +* ) + { 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 From 21eef94ea0963e408c5926fdbaf2867ffe21807e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 7 Apr 2024 21:28:30 +0300 Subject: [PATCH 0783/1324] 2.4.0 --- CHANGELOG.md | 3 ++- libexec/pyenv---version | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9046c7ec01..ecf49821b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Version History -## Release v2.3.37 +## Release v2.4.0 * Add CPython 3.13.0a4 by @saaketp in https://github.com/pyenv/pyenv/pull/2903 * Handle the case where `pyenv-commands --sh` returns nothing by @aphedges in https://github.com/pyenv/pyenv/pull/2908 * Document default build configuration customizations by @native-api in https://github.com/pyenv/pyenv/pull/2911 @@ -14,6 +14,7 @@ * Add CPython 3.10.14 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2930 * Add Jython 2.7.3 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/2936 * Add CPython 3.11.9 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2938 +* Add anaconda 2024.02 by @native-api in https://github.com/pyenv/pyenv/pull/2939 ## Release v2.3.36 * Add a Dependabot config to auto-update GitHub action versions by @kurtmckee in https://github.com/pyenv/pyenv/pull/2863 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index cd3a8f2605..e077693f0c 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.3.37" +version="2.4.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From e5997ef66b730bbcb281dcfcf873b0162c405256 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Tue, 9 Apr 2024 13:28:42 -0600 Subject: [PATCH 0784/1324] Add CPython 3.12.3 (#2941) --- plugins/python-build/share/python-build/3.12.3 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.3 diff --git a/plugins/python-build/share/python-build/3.12.3 b/plugins/python-build/share/python-build/3.12.3 new file mode 100644 index 0000000000..2228238db4 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.3 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.3" "https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tar.xz#56bfef1fdfc1221ce6720e43a661e3eb41785dd914ce99698d8c7896af4bdaa1" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.3" "https://www.python.org/ftp/python/3.12.3/Python-3.12.3.tgz#a6b9459f45a6ebbbc1af44f5762623fa355a0c87208ed417628b379d762dddb0" standard verify_py312 copy_python_gdb ensurepip +fi From e1f07da73ae09d6fc0b0322e4f577679dc7c7ce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Tue, 9 Apr 2024 14:38:07 -0600 Subject: [PATCH 0785/1324] Add CPython 3.13.0a6 (#2942) --- .../python-build/share/python-build/{3.13.0a5 => 3.13.0a6} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.13.0a5 => 3.13.0a6} (57%) diff --git a/plugins/python-build/share/python-build/3.13.0a5 b/plugins/python-build/share/python-build/3.13.0a6 similarity index 57% rename from plugins/python-build/share/python-build/3.13.0a5 rename to plugins/python-build/share/python-build/3.13.0a6 index c6736dd436..ffb90a0682 100644 --- a/plugins/python-build/share/python-build/3.13.0a5 +++ b/plugins/python-build/share/python-build/3.13.0a6 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.0a5" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a5.tar.xz#1e89b5355183e7c898a5a01b2f601728fe49fdb89d9c9781f13360847aaefa62" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0a6" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a6.tar.xz#4bef393d72b281acf81d39d7455f00036e866193dfa21a4ed3970fd0f4cba048" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0a5" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a5.tgz#672dc36e775e0775a15042ce7f9959986745fa44be7519b8847b26da0022e3fa" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0a6" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a6.tgz#e24608288f4ff84d042efba1f3aff38e3940b0091d677056e245822ef878c83c" standard verify_py313 copy_python_gdb ensurepip fi From 3ff54e89bc82687ff880d1e2d5a37f101cbfa63e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Thu, 25 Apr 2024 12:51:58 -0600 Subject: [PATCH 0786/1324] Add PyPy v7.3.16 (#2948) --- .../share/python-build/pypy2.7-7.3.16 | 81 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.16-src | 14 ++++ .../share/python-build/pypy3.10-7.3.16 | 81 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.16-src | 14 ++++ .../share/python-build/pypy3.9-7.3.16 | 81 +++++++++++++++++++ .../share/python-build/pypy3.9-7.3.16-src | 14 ++++ 6 files changed, 285 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.16 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.16-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.16 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.16-src create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.16 create mode 100644 plugins/python-build/share/python-build/pypy3.9-7.3.16-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.16 b/plugins/python-build/share/python-build/pypy2.7-7.3.16 new file mode 100644 index 0000000000..b77482f2e7 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.16 @@ -0,0 +1,81 @@ +VERSION='7.3.16' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=be44e65dd8c00d2388b2580dbe2af6a5179f951a8f4979efc74360f92f3c7e96 +linux32_hash=a19712d7a6bd4f6d113e352c5271803c583b5129b76a357d387b1fa85204f8e5 +linux64_hash=04b2fceb712d6f811274825b8a471ee392d3d1b53afc83eb3f42439ce00d8e07 +osarm64_hash=9cc13f4d6c4096820e1e0ddabb3959f853e45150ce0166a39aa23867e99f0145 +osx64_hash=e8744c1cef8b9e4eb2d2b6b368ed19a1c5cde482c7ef750f2d9f0807bb77fd1c +s390x_hash=09eb70b932e6aac484cf4b5f2de5845f71589f2cbb53e5ed37a497613b43cd53 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.16-src b/plugins/python-build/share/python-build/pypy2.7-7.3.16-src new file mode 100644 index 0000000000..fdf2005a4c --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.16-src @@ -0,0 +1,14 @@ +VERSION='7.3.16' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=43721cc0c397f0f3560b325c20c70b11f7c76c27910d3df09f8418cec4f9c2ad + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.16 b/plugins/python-build/share/python-build/pypy3.10-7.3.16 new file mode 100644 index 0000000000..4f7085e38c --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.16 @@ -0,0 +1,81 @@ +VERSION='7.3.16' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +aarch64_hash=fc720999bc5050e1d3706b3b6445e695cf42bfc71ebc7c88ed6bb88828b1d385 +linux32_hash=0df48aa780159e879ac89a805d143e4a6cd1b842f98046f5a3f865814bfaa2a4 +linux64_hash=404e6180d6caf9258eaab0c02c72018e9aa8eb03ab9094a0ff17ee5e3b265ac1 +osarm64_hash=6c003376667a95c7a228544649677b9927b8210d6444b901817aad24b8719b93 +osx64_hash=490f2c6ba2489f405444f3b4ad42166da6e2eb73489a9535b206067eaaf21737 +s390x_hash=af97efe498a209ba18c7bc7d084164a9907fb3736588b6864955177e19d5216a + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.16-src b/plugins/python-build/share/python-build/pypy3.10-7.3.16-src new file mode 100644 index 0000000000..fede58269b --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.16-src @@ -0,0 +1,14 @@ +VERSION='7.3.16' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +hash=4a3a3177d0a1f51d59982bb981d1d485403bda3419d5437b9e077f55f59424ff + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.16 b/plugins/python-build/share/python-build/pypy3.9-7.3.16 new file mode 100644 index 0000000000..afa539fd42 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.16 @@ -0,0 +1,81 @@ +VERSION='7.3.16' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +aarch64_hash=de3f2ed3581b30555ac0dd3e4df78a262ec736a36fb2e8f28259f8539b278ef4 +linux32_hash=583b6d6dd4e8c07cbc04da04a7ec2bdfa6674825289c2378c5e018d5abe779ea +linux64_hash=16f9c5b808c848516e742986e826b833cdbeda09ad8764e8704595adbe791b23 +osarm64_hash=88f824e7a2d676440d09bc90fc959ae0fd3557d7e2f14bfbbe53d41d159a47fe +osx64_hash=fda015431621e7e5aa16359d114f2c45a77ed936992c1efff86302e768a6b21c +s390x_hash=7a56ebb27dba3110dc1ff52d8e0449cdb37fe5c2275f7faf11432e4e164833ba + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.16-src b/plugins/python-build/share/python-build/pypy3.9-7.3.16-src new file mode 100644 index 0000000000..b8c0cc6312 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.16-src @@ -0,0 +1,14 @@ +VERSION='7.3.16' +PYVER='3.9' + +# https://www.pypy.org/checksums.html +hash=5b75af3f8e76041e79c1ef5ce22ce63f8bd131733e9302081897d8f650e81843 + +### 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' From 8c7fc98c4f025e005713a285c4bc43ab8d6c9d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Thu, 9 May 2024 03:58:17 -0600 Subject: [PATCH 0787/1324] Add CPython 3.14-dev, update 3.13-dev (#2960) * Add CPython 3.14-dev * Update 3.13-dev branch to 3.13 * Use OpenSSL 3.3.0 --- plugins/python-build/bin/python-build | 5 +++++ plugins/python-build/share/python-build/3.13-dev | 4 ++-- plugins/python-build/share/python-build/3.14-dev | 7 +++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.14-dev diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a30f66979e..c55648bba0 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2021,6 +2021,11 @@ build_package_verify_py313() { build_package_verify_py312 "$1" "${2:-3.13}" } +# Post-install check for Python 3.14.x +build_package_verify_py314() { + build_package_verify_py313 "$1" "${2:-3.13}" +} + # Post-install check for Python 3.x rolling release scripts # XXX: Will need splitting into project-specific ones if there emerge # multiple rolling-release scripts with different checks needed diff --git a/plugins/python-build/share/python-build/3.13-dev b/plugins/python-build/share/python-build/3.13-dev index 8c4740e473..088f8927f9 100644 --- a/plugins/python-build/share/python-build/3.13-dev +++ b/plugins/python-build/share/python-build/3.13-dev @@ -2,6 +2,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=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 "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" 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 "Python-3.13-dev" "https://github.com/python/cpython" main standard verify_py313 copy_python_gdb ensurepip +install_git "Python-3.13-dev" "https://github.com/python/cpython" 3.13 standard verify_py313 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.14-dev b/plugins/python-build/share/python-build/3.14-dev new file mode 100644 index 0000000000..9ce786be74 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14-dev @@ -0,0 +1,7 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 +install_package "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" 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 "Python-3.14-dev" "https://github.com/python/cpython" main standard verify_py314 copy_python_gdb ensurepip From ef8daeaea714880b15303629bf89db154e71c644 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Thu, 9 May 2024 05:13:45 -0600 Subject: [PATCH 0788/1324] Add CPython 3.13.0b1 (#2959) * Add CPython 3.13.0b1 * Use OpenSSL 3.3.0 --------- Co-authored-by: Ivan Pozdeev --- plugins/python-build/share/python-build/3.13.0a6 | 9 --------- plugins/python-build/share/python-build/3.13.0b1 | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0a6 create mode 100644 plugins/python-build/share/python-build/3.13.0b1 diff --git a/plugins/python-build/share/python-build/3.13.0a6 b/plugins/python-build/share/python-build/3.13.0a6 deleted file mode 100644 index ffb90a0682..0000000000 --- a/plugins/python-build/share/python-build/3.13.0a6 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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.0a6" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a6.tar.xz#4bef393d72b281acf81d39d7455f00036e866193dfa21a4ed3970fd0f4cba048" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.13.0a6" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0a6.tgz#e24608288f4ff84d042efba1f3aff38e3940b0091d677056e245822ef878c83c" standard verify_py313 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.13.0b1 b/plugins/python-build/share/python-build/3.13.0b1 new file mode 100644 index 0000000000..15e59218e4 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0b1 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" 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.0b1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b1.tar.xz#ba716ac56b039b545ad4a90ce586a57aa97869364553746ef2445728ceec198e" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.0b1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b1.tgz#3ff81ce29574296976dc42edfed52d39faf7ae583721a428cfc537a70bbaae16" standard verify_py313 copy_python_gdb ensurepip +fi From aabaa892438d05d96775042a129b1580fcd60105 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 9 May 2024 14:31:11 +0300 Subject: [PATCH 0789/1324] 2.4.1 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ecf49821b5..92d45eccc8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.4.1 +* Add CPython 3.12.3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2941 +* Add CPython 3.13.0a6 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2942 +* Add PyPy v7.3.16 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2948 +* Add CPython 3.14-dev, update 3.13-dev by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2960 +* Add CPython 3.13.0b1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2959 + ## Release v2.4.0 * Add CPython 3.13.0a4 by @saaketp in https://github.com/pyenv/pyenv/pull/2903 * Handle the case where `pyenv-commands --sh` returns nothing by @aphedges in https://github.com/pyenv/pyenv/pull/2908 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e077693f0c..ec33fe1145 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.0" +version="2.4.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 037ba4516bd68b9a3add01ce84e42b0614ecfb0e Mon Sep 17 00:00:00 2001 From: Tim Felgentreff Date: Thu, 23 May 2024 14:45:40 +0200 Subject: [PATCH 0790/1324] add script to install graalpy ea builds --- .../share/python-build/graalpy-dev | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-dev diff --git a/plugins/python-build/share/python-build/graalpy-dev b/plugins/python-build/share/python-build/graalpy-dev new file mode 100644 index 0000000000..3c5aeebd3a --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-dev @@ -0,0 +1,54 @@ +# Copyright (c) 2024, 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. + +JSON_URL=https://raw.githubusercontent.com/graalvm/graal-languages-ea-builds/main/graalpy/versions/latest-ea.json + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "Release builds of the GraalVM Community Edition variant of GraalPy are available, with names starting with graalpy-community-" && echo + +json=`http get "$JSON_URL"` +version=`expr "$json" : '{.*"version":[^"]*"\([^"]*\)'` +base_url=`expr "$json" : '{.*"download_base_url":[^"]*"\([^"]*\)'` + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + ;; +"linux-aarch64" ) + ;; +"macos-amd64" ) + ;; +"macos-aarch64" ) + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +url="${base_url}/graalpy-${version}-${graalpy_arch}.tar.gz" + +install_package "graalpy-${version}" "${url}" "copy" ensurepip From 948f53f6d838eb4ebe2770d19a43e2eb76e425ed Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 24 May 2024 20:34:25 +0300 Subject: [PATCH 0791/1324] CI: run builds in debug mode since we're only interested in the output when something goes wrong --- .github/workflows/macos_build.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 3f299f8029..6622b6a347 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -32,7 +32,7 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install -v ${{ matrix.python-version }} + bin/pyenv --debug install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash - run: python --version diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index e3951d3ccb..dd38921962 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -34,7 +34,7 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv install -v ${{ matrix.python-version }} + bin/pyenv --debug install ${{ matrix.python-version }} bin/pyenv global ${{ matrix.python-version }} bin/pyenv rehash - run: python --version From 0e0ca0966bf61dc89de376537a2fcc8492d70347 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 24 May 2024 20:36:43 +0300 Subject: [PATCH 0792/1324] CI: Run changed scripts in debug mode also --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 0beef58e94..79dbdb895b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -49,7 +49,7 @@ jobs: fi - run: | #build - pyenv install -v ${{ matrix.python-version }} + pyenv --debug install ${{ matrix.python-version }} pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: | From 98c5b711dc0ada63ab7d47f98144a3cddda0b997 Mon Sep 17 00:00:00 2001 From: Tim Felgentreff Date: Mon, 27 May 2024 10:50:03 +0200 Subject: [PATCH 0793/1324] fix http_get_aria to cat the correct file --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c55648bba0..923fcc62b8 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -397,7 +397,7 @@ http_get_aria2c() { fi if aria2c --allow-overwrite=true --no-conf=true -d "${dir_out}" -o "${out}" ${ARIA2_OPTS} "$1" >&4; then - [ -n "$2" ] || cat "${out}" + [ -n "$2" ] || cat "${dir_out:-.}/${out}" else false fi From 8a464cfed10ffe1f67e71c32929c82fb2b2a0f1a Mon Sep 17 00:00:00 2001 From: Younes Askour Date: Sat, 1 Jun 2024 20:13:57 +0100 Subject: [PATCH 0794/1324] Correct the Explanation of PATH Variable Lookup (#2975) This PR corrects a small but important detail in the documentation regarding how the system searches for executable files. The original text incorrectly stated that the operating system performs this search. The corrected text clarifies that it is actually the shell that performs the search. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 89adb54899..279cf8a5ac 100644 --- a/README.md +++ b/README.md @@ -86,7 +86,7 @@ to the correct Python installation. ### Understanding PATH -When you run a command like `python` or `pip`, your operating system +When you run a command like `python` or `pip`, your shell (bash / zshrc / ...) searches through a list of directories to find an executable file with that name. This list of directories lives in an environment variable called `PATH`, with each directory in the list separated by a colon: From 4ab9b3710bea9d114e3e3742ee8cd3259de9dcf8 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 2 Jun 2024 15:24:00 +0300 Subject: [PATCH 0795/1324] Document PYTHON_BUILD_CURL_OPTS, PYTHON_BUILD_WGET_OPTS, PYTHON_BUILD_ARIA2_OPTS (#2976) [no ci] --- README.md | 1 - plugins/python-build/README.md | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 279cf8a5ac..78b13516c4 100644 --- a/README.md +++ b/README.md @@ -675,7 +675,6 @@ name | default | description `PYENV_DEBUG` | | Outputs debug information.
Also as: `pyenv --debug ` `PYENV_HOOK_PATH` | [_see wiki_][hooks] | Colon-separated list of paths searched for pyenv hooks. `PYENV_DIR` | `$PWD` | Directory to start searching for `.python-version` files. -`PYTHON_BUILD_ARIA2_OPTS` | | Used to pass additional parameters to [`aria2`](https://aria2.github.io/).
If the `aria2c` binary is available on `PATH`, pyenv uses `aria2c` instead of `curl` or `wget` to download the Python Source code. If you have an unstable internet connection, you can use this variable to instruct `aria2` to accelerate the download.
In most cases, you will only need to use `-x 10 -k 1M` as value to `PYTHON_BUILD_ARIA2_OPTS` environment variable See also [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables) for environment variables that can be used to customize the build. diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 7fd921658c..83f488824e 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -157,6 +157,7 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_SKIP_MIRROR`, if set, forces python-build to download packages from their original source URLs instead of using a mirror. * `PYTHON_BUILD_HTTP_CLIENT`, explicitly specify the HTTP client type to use. `aria2`, `curl` and `wget` are the supported values and by default, are searched in that order. +* `PYTHON_BUILD_CURL_OPTS`, `PYTHON_BUILD_WGET_OPTS`, `PYTHON_BUILD_ARIA2_OPTS` pass additional parameters to the corresponding HTTP client. * `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will. * `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. From b0cd5bf8837242dc06dd5e4242e379b4e235df96 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 4 Jun 2024 01:06:33 +0300 Subject: [PATCH 0796/1324] Add sed and greadlink to exceptions (#2977) Anaconda has packages that override at least sed Greadlink is also a critical executable if present --- pyenv.d/rehash/conda.d/default.list | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pyenv.d/rehash/conda.d/default.list b/pyenv.d/rehash/conda.d/default.list index 867de1cc8b..f70b953b9d 100644 --- a/pyenv.d/rehash/conda.d/default.list +++ b/pyenv.d/rehash/conda.d/default.list @@ -64,6 +64,8 @@ redis-check-aof redis-check-dump redis-cli redis-server +# sed +sed # sqlite3 sqlite3 # xslt-config @@ -189,4 +191,5 @@ wc who whoami yes -# --- end exclusions from coreutils \ No newline at end of file +# --- end exclusions from coreutils +greadlink \ No newline at end of file From 2e0bb023e1486ccb71cdfc049c436655ec3088f6 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Thu, 6 Jun 2024 11:09:33 -0700 Subject: [PATCH 0797/1324] Add CPython 3.13.0b2 (#2978) --- plugins/python-build/share/python-build/3.13.0b1 | 9 --------- plugins/python-build/share/python-build/3.13.0b2 | 9 +++++++++ 2 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0b1 create mode 100644 plugins/python-build/share/python-build/3.13.0b2 diff --git a/plugins/python-build/share/python-build/3.13.0b1 b/plugins/python-build/share/python-build/3.13.0b1 deleted file mode 100644 index 15e59218e4..0000000000 --- a/plugins/python-build/share/python-build/3.13.0b1 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" 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.0b1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b1.tar.xz#ba716ac56b039b545ad4a90ce586a57aa97869364553746ef2445728ceec198e" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.13.0b1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b1.tgz#3ff81ce29574296976dc42edfed52d39faf7ae583721a428cfc537a70bbaae16" standard verify_py313 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.13.0b2 b/plugins/python-build/share/python-build/3.13.0b2 new file mode 100644 index 0000000000..88c2fc5578 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0b2 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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.0b2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b2.tar.xz#bf11be01b42a07a3659e4e233591e03da631b7112aa61ee1e030eeb8c5dfd869" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.0b2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b2.tgz#c87c42aa8137230a15a02ed90a6600610ba680cb5b54c0fbc57581a0d032e0c4" standard verify_py313 copy_python_gdb ensurepip +fi From 79951112ccf660783783591845d41d8d1fe4a87e Mon Sep 17 00:00:00 2001 From: Taras I Date: Sat, 8 Jun 2024 22:32:07 +0200 Subject: [PATCH 0798/1324] Add CPython 3.12.4 (#2981) Also bump up openssl version --- plugins/python-build/share/python-build/3.12.4 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.4 diff --git a/plugins/python-build/share/python-build/3.12.4 b/plugins/python-build/share/python-build/3.12.4 new file mode 100644 index 0000000000..b401637298 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.4 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.2" "https://www.openssl.org/source/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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.4" "https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tar.xz#f6d419a6d8743ab26700801b4908d26d97e8b986e14f95de31b32de2b0e79554" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.4" "https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tgz#01b3c1c082196f3b33168d344a9c85fb07bfe0e7ecfe77fee4443420d1ce2ad9" standard verify_py312 copy_python_gdb ensurepip +fi From 0963c8ac02bca616b8f91ab8b1902f48502cd813 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 8 Jun 2024 23:49:46 +0300 Subject: [PATCH 0799/1324] 2.4.2 --- CHANGELOG.md | 8 ++++++++ libexec/pyenv---version | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92d45eccc8..474fd0a673 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release v2.4.2 +* Add script to install graalpy development builds by @timfel in https://github.com/pyenv/pyenv/pull/2969 +* Correct the Explanation of PATH Variable Lookup by @Y-askour in https://github.com/pyenv/pyenv/pull/2975 +* Document PYTHON_BUILD_CURL_OPTS, PYTHON_BUILD_WGET_OPTS, PYTHON_BUILD_ARIA2_OPTS by @native-api in https://github.com/pyenv/pyenv/pull/2976 +* Add sed and greadlink to shim exceptions by @native-api in https://github.com/pyenv/pyenv/pull/2977 +* Add CPython 3.13.0b2 by @jsirois in https://github.com/pyenv/pyenv/pull/2978 +* Add CPython 3.12.4 by @xxzgc in https://github.com/pyenv/pyenv/pull/2981 + ## Release v2.4.1 * Add CPython 3.12.3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2941 * Add CPython 3.13.0a6 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2942 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ec33fe1145..a3ec9e2e1d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.1" +version="2.4.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From cb99cbcc8ebb221d02e0860fa48127b887701472 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 9 Jun 2024 00:01:04 +0300 Subject: [PATCH 0800/1324] README: Emphasize the main design idea of the plugins --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 78b13516c4..ff9682a939 100644 --- a/README.md +++ b/README.md @@ -580,10 +580,13 @@ uninstall from the system. ## Pyenv plugins -Pyenv provides a simple, flexible and maintainable way to extend and customize its functionality with plugins -- +Pyenv provides a simple way to extend and customize its functionality with plugins -- as simple as creating a plugin directory and dropping a shell script on a certain subpath of it with whatever extra logic you need to be run at certain moments. +The main idea is that most things that you can put under `$PYENV_ROOT/` you can also put +under `$PYENV_ROOT/plugins/your_plugin_name/`. + See [_Plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Plugins) on how to install and use plugins as well as a catalog of some useful existing plugins for common needs. From a86ca7ac2ec996766baa1f7e635a4d6a387fd9a2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 9 Jun 2024 00:19:03 +0300 Subject: [PATCH 0801/1324] Document adding defnitions with a plugin --- plugins/python-build/README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 83f488824e..147e6ccf96 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -96,7 +96,10 @@ versions of Python that are not yet supported by python-build. See the [python-build built-in definitions](https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build) as a starting point for custom definition files. -[definitions]: https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build +#### Adding definitions with a Pyenv plugin + +You can add your own definitions with a [Pyenv plugin](https://github.com/pyenv/pyenv?tab=readme-ov-file#pyenv-plugins) by placing them under +`$PYENV_ROOT/plugins/your_plugin_name/share/python-build`. ### Default build configuration From 7a91070c023e1ecb9b2f29c66d3980ad043c344b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 9 Jun 2024 00:19:44 +0300 Subject: [PATCH 0802/1324] Removed obsoltete section about --enable-shared --- plugins/python-build/README.md | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 147e6ccf96..214e78ad4c 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -200,20 +200,6 @@ $ cat fix1.patch fix2.patch | pyenv install --patch 2.7.10 ``` -### Building with `--enable-shared` - -You can build CPython with `--enable-shared` to install a version with -shared object. - -If `--enable-shared` was found in `PYTHON_CONFIGURE_OPTS` or `CONFIGURE_OPTS`, -`python-build` will automatically set `RPATH` to the pyenv's prefix directory. -This means you don't have to set `LD_LIBRARY_PATH` or `DYLD_LIBRARY_PATH` for -the version(s) installed with `--enable-shared`. - -```sh -$ env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 2.7.9 -``` - ### Building for maximum performance Building CPython with `--enable-optimizations` will result in a faster From 4b60ddd06d8aa1ee1319214347e2d9a43b66ccc7 Mon Sep 17 00:00:00 2001 From: zhaobin Date: Mon, 10 Jun 2024 15:36:21 +0800 Subject: [PATCH 0803/1324] Add support for miniconda3 24.4.0-0 with py3.12, py3.11, py3.10, py3.9 --- .../python-build/miniconda3-3.10-24.4.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.4.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.4.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.4.0-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 new file mode 100644 index 0000000000..ecf8834377 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-aarch64.sh#68f3a537bf2ba8031961c8be6b52236c75478c797e0333e055539f02147676b8" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-s390x.sh#d5d06f9aa66d9cc9a23d6278826cb09f44f8e005b8b8fcf2664bef02e61ca751" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-x86_64.sh#fdaa5afdea8c07b6f2203b8f95abe0e4e8c4d3fd3c10d19fe590311446591ffa" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-MacOSX-arm64.sh#21f0b7c653518a6eb6135593c509cefc78fdff839bb2e887d36bc03eda607faf" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-MacOSX-x86_64.sh#c2eed72ff97b4eb81bc1171616b0ff48a440a2e1ad5638e1899b80286767c568" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 new file mode 100644 index 0000000000..22c577e407 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-aarch64.sh#d3ed9ff565c7341a4e4c957443ccb4f12f3dd5a087549099e7f199c36469e55c" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-s390x.sh#f2bea598cb72ed838a6e62b7dd8fbf1c3941a92783ba686822f70108c8c2e543" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-x86_64.sh#7cb030a12d1da35e1c548344a895b108e0d2fbdc4f6b67d5180b2ac8539cc473" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-MacOSX-arm64.sh#a396cf4ca0088cf2d78517b28732b61697cdcb698528300946ef6409353eca86" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-MacOSX-x86_64.sh#b7f3adebd2b25dbefdc85e16f5ee130ac0d1167f416078f961e90f277476b115" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 new file mode 100644 index 0000000000..20c8dfb473 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-aarch64.sh#832d48e11e444c1a25f320fccdd0f0fabefec63c1cd801e606836e1c9c76ad51" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-s390x.sh#e973f1b6352d58b1ab35f30424f1565d7ffa469dcde2d52c86ec1c117db11aad" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-x86_64.sh#b6597785e6b071f1ca69cf7be6d0161015b96340b9a9e132215d5713408c3a7c" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-MacOSX-arm64.sh#f4925c0150d232d95de798a64c696f4b2df2745bb997b793506bdfd27bf91e11" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-MacOSX-x86_64.sh#1413369470adb7cf52f8b961e81b3ceeb92f5931a451bef9cb0c42be0ce17ef3" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 new file mode 100644 index 0000000000..7b60311a6c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-aarch64.sh#6f09fd08165a9fdccb2a2c64e9bbcf68ce58a9bfb571600306eb44d29718b13f" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-s390x.sh#8766e30b038087e7da2bb9a8bca4ca3f2ed621659f0ea8954ffab789f4a8f192" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-x86_64.sh#edd7610f2e2b25d15f6ffa81ca94de0748dd107096871459a7966dcf9a564ea9" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-MacOSX-arm64.sh#74f3de552d93712cc7c531f690b78d6acad8e3812da43fc3a1acbc5c39243480" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-MacOSX-x86_64.sh#d3ad5e0bf74aa1cb838df2f73e4be4e5d9a0f259a05b5223199ea1f6f6edf9f3" "miniconda" verify_py39 + ;; +* ) + { 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 From 613e5142b3520a8c3e51d1083eabb87de0a0d0e3 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Tue, 11 Jun 2024 00:38:04 +0800 Subject: [PATCH 0804/1324] Add support for miniconda3 24.4.0-0 with py3.12, py3.11, py3.10, py3.9 (#2982) Co-authored-by: zhaobin --- .../python-build/miniconda3-3.10-24.4.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.4.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.4.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.4.0-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 new file mode 100644 index 0000000000..ecf8834377 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-aarch64.sh#68f3a537bf2ba8031961c8be6b52236c75478c797e0333e055539f02147676b8" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-s390x.sh#d5d06f9aa66d9cc9a23d6278826cb09f44f8e005b8b8fcf2664bef02e61ca751" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-Linux-x86_64.sh#fdaa5afdea8c07b6f2203b8f95abe0e4e8c4d3fd3c10d19fe590311446591ffa" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-MacOSX-arm64.sh#21f0b7c653518a6eb6135593c509cefc78fdff839bb2e887d36bc03eda607faf" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.4.0-0-MacOSX-x86_64.sh#c2eed72ff97b4eb81bc1171616b0ff48a440a2e1ad5638e1899b80286767c568" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 new file mode 100644 index 0000000000..22c577e407 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-aarch64.sh#d3ed9ff565c7341a4e4c957443ccb4f12f3dd5a087549099e7f199c36469e55c" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-s390x.sh#f2bea598cb72ed838a6e62b7dd8fbf1c3941a92783ba686822f70108c8c2e543" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-Linux-x86_64.sh#7cb030a12d1da35e1c548344a895b108e0d2fbdc4f6b67d5180b2ac8539cc473" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-MacOSX-arm64.sh#a396cf4ca0088cf2d78517b28732b61697cdcb698528300946ef6409353eca86" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.4.0-0-MacOSX-x86_64.sh#b7f3adebd2b25dbefdc85e16f5ee130ac0d1167f416078f961e90f277476b115" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 new file mode 100644 index 0000000000..20c8dfb473 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-aarch64.sh#832d48e11e444c1a25f320fccdd0f0fabefec63c1cd801e606836e1c9c76ad51" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-s390x.sh#e973f1b6352d58b1ab35f30424f1565d7ffa469dcde2d52c86ec1c117db11aad" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-Linux-x86_64.sh#b6597785e6b071f1ca69cf7be6d0161015b96340b9a9e132215d5713408c3a7c" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-MacOSX-arm64.sh#f4925c0150d232d95de798a64c696f4b2df2745bb997b793506bdfd27bf91e11" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.4.0-0-MacOSX-x86_64.sh#1413369470adb7cf52f8b961e81b3ceeb92f5931a451bef9cb0c42be0ce17ef3" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 new file mode 100644 index 0000000000..7b60311a6c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.4.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.4.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-aarch64.sh#6f09fd08165a9fdccb2a2c64e9bbcf68ce58a9bfb571600306eb44d29718b13f" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.4.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-s390x.sh#8766e30b038087e7da2bb9a8bca4ca3f2ed621659f0ea8954ffab789f4a8f192" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.4.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-Linux-x86_64.sh#edd7610f2e2b25d15f6ffa81ca94de0748dd107096871459a7966dcf9a564ea9" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.4.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-MacOSX-arm64.sh#74f3de552d93712cc7c531f690b78d6acad8e3812da43fc3a1acbc5c39243480" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.4.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.4.0-0-MacOSX-x86_64.sh#d3ad5e0bf74aa1cb838df2f73e4be4e5d9a0f259a05b5223199ea1f6f6edf9f3" "miniconda" verify_py39 + ;; +* ) + { 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 From 42c66c92d8dd5f55fed530a21e5d838bcfc870b0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 10 Jun 2024 23:20:20 +0300 Subject: [PATCH 0805/1324] Document mirror structure and download cache in more details --- plugins/python-build/README.md | 40 ++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 214e78ad4c..2c02e76c74 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -227,14 +227,30 @@ definition. (All bundled definitions include checksums.) ### Package download mirrors python-build will first attempt to download package files from a mirror hosted on -GitHub Pages. If a package is not available on the mirror, if the mirror -is down, or if the download is corrupt, python-build will fall back to the +GitHub Pages. If this fails, it will fall back to the official URL specified in the definition file. You can point python-build to another mirror by specifying the -`PYTHON_BUILD_MIRROR_URL` environment variable--useful if you'd like to run your -own local mirror, for example. Package mirror URLs are constructed by joining -this variable with the SHA2 checksum of the package file. +`PYTHON_BUILD_MIRROR_URL` environment variable. + +Package mirror URLs are constructed by joining +`$PYTHON_BUILD_MIRROR_URL` with the SHA2 checksum of the package file as specified in the URL +in the installation script (the part after the hash sign). E.g.: + +``` +https://mycache.example.com/0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3 +``` + +If you have replicated the directory structure of an official site, the easiest way to adapt +would be to make symlinks at the mirror's root: + +``` +0419e9085bf51b7a672009b3f50dbf1859acdf18ba725d0ec19aa5c8503f0ea3 -> 3.10.10/Python-3.10.10.tar.xz +``` + +The rationale is to abstract away difference between directory structures of sites +of various Python flavors and their occasional changes as well as to accomodate +people who only wish to cache some select downloads. This also allows to mirror multiple sites at once. If the mirror being used does not have the same checksum (*e.g.* with a pull-through cache like Artifactory), you can set the @@ -247,15 +263,15 @@ mirror by setting the `PYTHON_BUILD_SKIP_MIRROR` environment variable. The official python-build download mirror is provided by [GitHub Pages](http://yyuu.github.io/pythons/). -### Package download caching +### Package download cache -You can instruct python-build to keep a local cache of downloaded package files -by setting the `PYTHON_BUILD_CACHE_PATH` environment variable. When set, package -files will be kept in this directory after the first successful download and -reused by subsequent invocations of `python-build` and `pyenv install`. +Python-build will keep a cache of downloaded package files +at the location specified by the `PYTHON_BUILD_CACHE_PATH` environment variable +if it exists. The default is `~/.pyenv/cache`, so you can +enable caching by just creating that directory. -The `pyenv install` command defaults this path to `~/.pyenv/cache`, so in most -cases you can enable download caching simply by creating that directory. +The name of the would-be cached file is reported by Pyenv in the "Downloading <filename>..." message. +It's possible to warm up the cache by manually putting the file there under an appropriate name. ### Keeping the build directory after installation From 756aad26135ca23e11e86fc40aac1dd415e980d8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 Jun 2024 22:48:15 +0300 Subject: [PATCH 0806/1324] 2.4.3 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 474fd0a673..e2b18f76d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.4.3 +* Add miniconda3 24.4.0-0 by @binbjz in https://github.com/pyenv/pyenv/pull/2982 + ## Release v2.4.2 * Add script to install graalpy development builds by @timfel in https://github.com/pyenv/pyenv/pull/2969 * Correct the Explanation of PATH Variable Lookup by @Y-askour in https://github.com/pyenv/pyenv/pull/2975 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a3ec9e2e1d..73758005c9 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.2" +version="2.4.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 7947efc130cadf6b9e3743dc4edc5b9a341b8995 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Fri, 28 Jun 2024 01:18:34 +0800 Subject: [PATCH 0807/1324] Add support for miniconda3 24.5.0-0 with py3.12, py3.11, py3.10, py3.9 (#2994) --- .../python-build/miniconda3-3.10-24.5.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.5.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.5.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.5.0-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 new file mode 100644 index 0000000000..c759e635e6 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.5.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Linux-aarch64.sh#edcf076c80846beded0b72e98811cf7b93d0abc2ae93c060efc76f8da1e6fc45" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Linux-s390x.sh#e00f3d03d13fc4fa394a5d20a5476087237ee6cb029eba3b02322acc104b530b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-Linux-x86_64.sh#b3d73db6a05069fbdf20dc33fc9b6a29fa7198578f0d090c639f5ca0e84102bd" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-MacOSX-arm64.sh#e422602aa19140c600b5889e5b41a0d7187640107ea82fcb5da857dd25330148" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.5.0-0-MacOSX-x86_64.sh#6d7c1cc138adfc4bb2ccbb8a22eb8e9eb13a366b6af0d63245b643e6c3a3c708" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 new file mode 100644 index 0000000000..ca06844b3a --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.5.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-Linux-aarch64.sh#94a742af7bf5c7bae3dba6bd07d84d94b858b839e15af2ea0cd10fdf2bde8a73" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-Linux-s390x.sh#002963f32aebe1091d5da9a82416831f3c11217e6b4ea164c655f0d11f0cff80" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-Linux-x86_64.sh#38b203bb1f2be78b735ebc00162f29e8e73fcd9a619ed5980490a72193ee1f58" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-MacOSX-arm64.sh#a3d62f20f09e8079db76379090f21b7ae34832dadeb5a250e4fab324c8328727" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.5.0-0-MacOSX-x86_64.sh#9e7dc7e0fbf0e9b2ff6bafdae9bf6ef122ae92d53533c2bbeb73433c0c6a4bd9" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 new file mode 100644 index 0000000000..d9c91fddd0 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.5.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-Linux-aarch64.sh#70afe954cc8ee91f605f9aa48985bfe01ecfc10751339e8245eac7262b01298d" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-Linux-s390x.sh#bd2a0a8ea34c84c860868d5b8efde07afc51cdede76b64dd94e9c3fd2d65257e" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-Linux-x86_64.sh#4b3b3b1b99215e85fd73fb2c2d7ebf318ac942a457072de62d885056556eb83e" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-MacOSX-arm64.sh#12e678b8156aea69a132568b6176a019c7a1ba753ddf5caedf086d3c5460fe92" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.5.0-0-MacOSX-x86_64.sh#b1c87c8334ea878d30a9976c1860b1004e6d55bdec5228089fec40be81156363" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 new file mode 100644 index 0000000000..827ad869db --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.5.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.5.0-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-aarch64.sh#b716e3bc556e9ab7a4f206b04b53bd57c24e94956598d89fc78863b115cce9e8" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.5.0-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-s390x.sh#c2d6bec964a96130eb5f1c4ea46993cf10f7957d45ac31d9aa94c34b5ebfed32" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.5.0-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-Linux-x86_64.sh#07a2435123fd8f41e6528baa5f272ce754fd8acaef08ce7081afb00227b8754a" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.5.0-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-MacOSX-arm64.sh#f5f63a0de44b7b0872f3c00dca71b896933ccc844a93bf120aad6df66b6475b3" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.5.0-0-MacOSX-x86_64.sh#b65d7f01820bdfe1abb6b4dd84d48e6c62a6d72ee0cc400a4e8bb4ea89ff1c84" "miniconda" verify_py39 + ;; +* ) + { 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 From d660c5a84f6b03a94961eb0e49adb2b25cd091b1 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Thu, 27 Jun 2024 16:18:14 -0400 Subject: [PATCH 0808/1324] Add support for free-threaded Python (#2995) --- plugins/python-build/bin/python-build | 7 +++++++ plugins/python-build/share/python-build/3.13t-dev | 2 ++ plugins/python-build/share/python-build/3.14t-dev | 2 ++ 3 files changed, 11 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13t-dev create mode 100644 plugins/python-build/share/python-build/3.14t-dev diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 923fcc62b8..a0be4fbf55 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -822,6 +822,7 @@ build_package_standard_build() { use_homebrew_zlib || true fi use_dsymutil || true + use_free_threading || true fi ( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then @@ -1761,6 +1762,12 @@ use_dsymutil() { fi } +use_free_threading() { + if [[ -n "$PYTHON_BUILD_FREE_THREADING" ]]; then + package_option python configure --disable-gil + fi +} + build_package_enable_shared() { package_option python configure --enable-shared } diff --git a/plugins/python-build/share/python-build/3.13t-dev b/plugins/python-build/share/python-build/3.13t-dev new file mode 100644 index 0000000000..cd9d2f0970 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13t-dev @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13-dev diff --git a/plugins/python-build/share/python-build/3.14t-dev b/plugins/python-build/share/python-build/3.14t-dev new file mode 100644 index 0000000000..7c6180f070 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14t-dev @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14-dev From 9546f729f775342f7ed5dc83c36531043d4f7fa3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 27 Jun 2024 23:21:27 +0300 Subject: [PATCH 0809/1324] 2.4.4 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e2b18f76d0..4295c45cd4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.4 +* Add support for miniconda3 24.5.0-0 with py3.12, py3.11, py3.10, py3.9 by @binbjz in https://github.com/pyenv/pyenv/pull/2994 +* Add support for free-threaded Python by @colesbury in https://github.com/pyenv/pyenv/pull/2995 + ## Release v2.4.3 * Add miniconda3 24.4.0-0 by @binbjz in https://github.com/pyenv/pyenv/pull/2982 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 73758005c9..c6046b55a7 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.3" +version="2.4.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From e8e8cfddcd72df55e01db7c2eec6c21bc1f35ee1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sun, 30 Jun 2024 11:55:53 -0600 Subject: [PATCH 0810/1324] Add CPython 3.13.0b3 (#2996) --- .../python-build/share/python-build/{3.13.0b2 => 3.13.0b3} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.13.0b2 => 3.13.0b3} (57%) diff --git a/plugins/python-build/share/python-build/3.13.0b2 b/plugins/python-build/share/python-build/3.13.0b3 similarity index 57% rename from plugins/python-build/share/python-build/3.13.0b2 rename to plugins/python-build/share/python-build/3.13.0b3 index 88c2fc5578..f286f05b40 100644 --- a/plugins/python-build/share/python-build/3.13.0b2 +++ b/plugins/python-build/share/python-build/3.13.0b3 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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.0b2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b2.tar.xz#bf11be01b42a07a3659e4e233591e03da631b7112aa61ee1e030eeb8c5dfd869" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0b3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b3.tar.xz#3be094ad08b11dc2a065463524239c78dc9f2b342b01dcd4e1e606dbbc5c78a5" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0b2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b2.tgz#c87c42aa8137230a15a02ed90a6600610ba680cb5b54c0fbc57581a0d032e0c4" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0b3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b3.tgz#5e9c01cdb3e2fb1f5732a55e9522cb6a011693e795ec347b3f69ff5e217175e4" standard verify_py313 copy_python_gdb ensurepip fi From 2c2c7616e2c3a8ab7623bea3c353ff520750b812 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 30 Jun 2024 20:58:02 +0300 Subject: [PATCH 0811/1324] 2.4.5 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4295c45cd4..3ed452e151 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.4.5 +* Add CPython 3.13.0b3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2996 + ## Release v2.4.4 * Add support for miniconda3 24.5.0-0 with py3.12, py3.11, py3.10, py3.9 by @binbjz in https://github.com/pyenv/pyenv/pull/2994 * Add support for free-threaded Python by @colesbury in https://github.com/pyenv/pyenv/pull/2995 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index c6046b55a7..79b0d34796 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.4" +version="2.4.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 1bcaab05b71601269b91185a4cbeb3aa037a00a8 Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 1 Jul 2024 22:38:06 +0300 Subject: [PATCH 0812/1324] CI: push MacOS jobs to MacOS 13 and 14 (#3002) Github has finally released those as free and retired macos-11 --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 2 +- .github/workflows/pyenv_tests.yml | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 6622b6a347..6459fabc22 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -15,7 +15,7 @@ jobs: - "3.10" - "3.11" - "3.12" - runs-on: macos-11 + runs-on: macos-14 steps: - uses: actions/checkout@v4 # Normally, we would use the superbly maintained... diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 79dbdb895b..1f5cf7f48b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -30,7 +30,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["macos-11", "macos-12"] + os: ["macos-13", "macos-14"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index f05430cd9f..aa8f495925 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -12,8 +12,8 @@ jobs: os: - ubuntu-22.04 - ubuntu-20.04 - - macos-12 - - macos-11 + - macos-14 + - macos-13 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 From 384361167a372068e3bb2f0f5627519ec8f90774 Mon Sep 17 00:00:00 2001 From: Sam Gross Date: Mon, 1 Jul 2024 15:50:03 -0400 Subject: [PATCH 0813/1324] Add 3.13.0b3t and exclude it from `pyenv latest` (#3001) This adds the free-threaded (without GIL) version of 3.13.0b3. Co-authored-by: Ivan Pozdeev --- libexec/pyenv-latest | 2 +- plugins/python-build/share/python-build/3.13.0b3t | 2 ++ pyenv.d/install/latest.bash | 2 +- test/latest.bats | 3 +++ 4 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.13.0b3t diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index d5e95e956c..6f2d9e97e4 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -50,7 +50,7 @@ IFS=$'\n' DEFINITION_CANDIDATES=(\ $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ - sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d')); + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' -e '/[0-9]+t$/d')); # Compose a sorting key, followed by | and original value DEFINITION_CANDIDATES=(\ diff --git a/plugins/python-build/share/python-build/3.13.0b3t b/plugins/python-build/share/python-build/3.13.0b3t new file mode 100644 index 0000000000..31f54da01a --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0b3t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0b3 diff --git a/pyenv.d/install/latest.bash b/pyenv.d/install/latest.bash index 790b2dd10f..c99162b3c9 100644 --- a/pyenv.d/install/latest.bash +++ b/pyenv.d/install/latest.bash @@ -10,7 +10,7 @@ pyenv_install_resolve_latest() { $(python-build --definitions | \ grep -F "${DEFINITION_PREFIX}" | \ grep "^${DEFINITION_TYPE}" | \ - sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' | \ + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/(b|rc)[0-9]+$/d' -e '/[0-9]+t$/d' | \ sort -t. -k1,1r -k 2,2nr -k 3,3nr \ || true)) DEFINITION="${DEFINITION_CANDIDATES}" diff --git a/test/latest.bats b/test/latest.bats index c145eff7f5..d382a926f9 100644 --- a/test/latest.bats +++ b/test/latest.bats @@ -103,6 +103,9 @@ echo 3.8.5-latest echo 3.8.5a2 echo 3.8.5b3 echo 3.8.5rc2 +echo 3.8.5t +echo 3.8.5b3t +echo 3.8.5rc2t echo 3.8.1 echo 3.8.1/envs/foo ! From 672eef15618072112ae157f1b023cee0b5b01da4 Mon Sep 17 00:00:00 2001 From: Jon Crall Date: Wed, 3 Jul 2024 20:49:12 -0400 Subject: [PATCH 0814/1324] Speed up pyenv prefix by not constructing advice text when it would be discarded (#3005) by adding an internal flag --- libexec/pyenv-prefix | 6 ++--- libexec/pyenv-versions | 6 ++--- libexec/pyenv-which | 54 +++++++++++++++++++++++++++--------------- test/which.bats | 12 ++++++++++ 4 files changed, 53 insertions(+), 25 deletions(-) diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index 38b8f823a4..261b865f10 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -30,9 +30,9 @@ OLDIFS="$IFS" { IFS=: for version in ${PYENV_VERSION}; do if [ "$version" = "system" ]; then - if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python 2>/dev/null)" || \ - PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 2>/dev/null)" || \ - PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python2 2>/dev/null)"; then + if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python --skip-advice 2>/dev/null)" || \ + PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 --skip-advice 2>/dev/null)" || \ + PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python2 --skip-advice 2>/dev/null)"; then shopt -s extglob # In some distros (Arch), Python can be found in sbin as well as bin PYENV_PREFIX_PATH="${PYTHON_PATH%/?(s)bin/*}" diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 0dd57dec75..dbccaa32c0 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -128,9 +128,9 @@ print_version() { # Include "system" in the non-bare output, if it exists if [ -n "$include_system" ] && \ - (PYENV_VERSION=system pyenv-which python >/dev/null 2>&1 || \ - PYENV_VERSION=system pyenv-which python3 >/dev/null 2>&1 || \ - PYENV_VERSION=system pyenv-which python2 >/dev/null 2>&1) ; then + (PYENV_VERSION=system pyenv-which python --skip-advice >/dev/null 2>&1 || \ + PYENV_VERSION=system pyenv-which python3 --skip-advice >/dev/null 2>&1 || \ + PYENV_VERSION=system pyenv-which python2 --skip-advice >/dev/null 2>&1) ; then print_version system "/" fi diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 29b4431804..6f12761e25 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -2,13 +2,14 @@ # # Summary: Display the full path to an executable # -# Usage: pyenv which [--nosystem] +# Usage: pyenv which [--nosystem] [--skip-advice] # # Displays the full path to the executable that pyenv will invoke when # you run the given command. # Use --nosystem argument in case when you don't need to search command in the # system environment. -# +# Internal switch --skip-advice used to skip printing an error message on a +# failed search. set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -18,11 +19,27 @@ if [ "$1" = "--complete" ]; then exec pyenv-shims --short fi -if [ "$2" = "--nosystem" ]; then - system="" -else - system="system" -fi +system="system" +SKIP_ADVICE="" +PYENV_COMMAND="$1" + +while [[ $# -gt 0 ]] +do + case "$1" in + --skip-advice) + SKIP_ADVICE=1 + shift + ;; + --nosystem) + system="" + shift + ;; + *) + shift + ;; + esac +done + remove_from_path() { local path_to_remove="$1" @@ -36,8 +53,6 @@ remove_from_path() { echo "${result#:}" } -PYENV_COMMAND="$1" - if [ -z "$PYENV_COMMAND" ]; then pyenv-help --usage which >&2 exit 1 @@ -85,16 +100,17 @@ else fi echo "pyenv: $PYENV_COMMAND: command not found" >&2 - - versions="$(pyenv-whence "$PYENV_COMMAND" || true)" - if [ -n "$versions" ]; then - { echo - echo "The \`$1' command exists in these Python versions:" - echo "$versions" | sed 's/^/ /g' - echo - echo "Note: See 'pyenv help global' for tips on allowing both" - echo " python2 and python3 to be found." - } >&2 + if [ -z "$SKIP_ADVICE" ]; then + versions="$(pyenv-whence "$PYENV_COMMAND" || true)" + if [ -n "$versions" ]; then + { echo + echo "The \`$PYENV_COMMAND' command exists in these Python versions:" + echo "$versions" | sed 's/^/ /g' + echo + echo "Note: See 'pyenv help global' for tips on allowing both" + echo " python2 and python3 to be found." + } >&2 + fi fi exit 127 diff --git a/test/which.bats b/test/which.bats index 193b95a443..e6c4ee69d3 100644 --- a/test/which.bats +++ b/test/which.bats @@ -155,3 +155,15 @@ exit PYENV_VERSION=3.4 run pyenv-which python assert_success "version=3.4.2" } + +@test "skip advice supresses error messages" { + create_executable "2.7" "python" + create_executable "3.3" "py.test" + create_executable "3.4" "py.test" + + PYENV_VERSION=2.7 run pyenv-which py.test --skip-advice + assert_failure + assert_output < Date: Fri, 5 Jul 2024 06:56:36 +0300 Subject: [PATCH 0815/1324] 2.4.6 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ed452e151..dfba5607c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.4.6 +* CI: push MacOS jobs to MacOS 13 and 14 by @native-api in https://github.com/pyenv/pyenv/pull/3002 +* Add 3.13.0b3t and exclude it from `pyenv latest` by @colesbury in https://github.com/pyenv/pyenv/pull/3001 +* Speed up `pyenv prefix` by not constructing advice text when it would be discarded by @Erotemic in https://github.com/pyenv/pyenv/pull/3005 + ## Release v2.4.5 * Add CPython 3.13.0b3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/2996 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 79b0d34796..ec87819dc8 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.5" +version="2.4.6" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d81eebf8d1f75cc8dbb4f36c404dc34d5ff8cd8c Mon Sep 17 00:00:00 2001 From: binbjz Date: Fri, 5 Jul 2024 19:37:22 +0800 Subject: [PATCH 0816/1324] Add support for anaconda3-2024.06-1 --- .../share/python-build/anaconda3-2024.06-1 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2024.06-1 diff --git a/plugins/python-build/share/python-build/anaconda3-2024.06-1 b/plugins/python-build/share/python-build/anaconda3-2024.06-1 new file mode 100644 index 0000000000..2b85196d4c --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2024.06-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2024.06-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-aarch64.sh#b4be0ad2052236882402902a31d32cd37635d3db194a42f977be0d68a8ff1a31" "anaconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2024.06-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-s390x.sh#1b3f4ef4147137fb1861f8251679ea96e651a7c405993c61e39441e43ee2dd11" "anaconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2024.06-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh#539bb43d9a52d758d0fdfa1b1b049920ec6f8c6d15ee9fe4a423355fe551a8f7" "anaconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2024.06-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2024.06-1-MacOSX-arm64.sh#f9e0795431910ee4ac341c0cc2a0b62e6c497440789b4117c20736db45b34204" "anaconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2024.06-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2024.06-1-MacOSX-x86_64.sh#9b2aa48bfc58e337176d8b5f3776692815807e1346ec12ebcc46a01801bb4ee0" "anaconda" verify_py312 + ;; +* ) + { 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 From 50e726ac413c3915db0eadcbf39aeaf2c90eefc4 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 6 Jul 2024 04:04:46 +0300 Subject: [PATCH 0817/1324] Fix debug build for X.Yy-dev (#3011) also just use extglob everywhere --- plugins/python-build/bin/python-build | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a0be4fbf55..9aed095716 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -19,6 +19,7 @@ PYTHON_BUILD_VERSION="20180424" OLDIFS="$IFS" set -E +shopt -s extglob [ -n "$PYENV_DEBUG" ] && { export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' set -x @@ -1784,20 +1785,14 @@ build_package_auto_tcltk() { fi } -# extglob must be set at both parse time and runtime -# https://stackoverflow.com/questions/49283740/bash-script-throws-syntax-errors-when-the-extglob-option-is-set-inside-a-subsh -shopt -s extglob package_is_python() { - shopt -s extglob case "$1" in Python-* | jython-* | pypy-* | pypy[0-9].+([0-9])-* | stackless-* ) return 0 ;; esac return 1 - shopt -u extglob } -shopt -u extglob apply_patch() { local package_name="$1" @@ -2308,7 +2303,6 @@ if [[ "$PYPY_OPTS" == *"--shared"* ]]; then fi # Add support for framework installation (`--enable-framework`) of CPython (#55, #99) -shopt -s extglob if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; then if ! is_mac; then echo "python-build: framework installation is not supported outside of MacOS." >&2 @@ -2334,10 +2328,8 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-framework"* ]]; the PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS//--enable-framework?(=*([^ ]))?( )/}"; PYTHON_CONFIGURE_OPTS="${PYTHON_CONFIGURE_OPTS% }" fi -shopt -u extglob # Build against universal SDK -shopt -s extglob if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; then if ! is_mac; then echo "python-build: universal installation is not supported outside of MacOS." >&2 @@ -2359,7 +2351,6 @@ if [[ "$CONFIGURE_OPTS $PYTHON_CONFIGURE_OPTS" == *"--enable-universalsdk"* ]]; fi fi fi -shopt -u extglob # Compile with `--enable-unicode=ucs4` by default (#257) if [[ "$PYTHON_CONFIGURE_OPTS" != *"--enable-unicode="* ]]; then @@ -2454,6 +2445,7 @@ python_bin_suffix() { version_name="${version_name%-dev}" version_name="${version_name%-rc*}" version_name="${version_name%rc*}" + version_name="${version_name%%*([^0-9])}" version_info=(${version_name//./ }) echo "${version_info[0]}.${version_info[1]}" ;; From adf3c2bccf09cdb81febcfd15b186711a33ac7a8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 6 Jul 2024 04:44:35 +0300 Subject: [PATCH 0818/1324] 2.4.7 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfba5607c0..3a7088980b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.7 +* Add support for anaconda3-2024.06-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3009 +* Fix debug build for X.Yt-dev by @native-api in https://github.com/pyenv/pyenv/pull/ + ## Release v2.4.6 * CI: push MacOS jobs to MacOS 13 and 14 by @native-api in https://github.com/pyenv/pyenv/pull/3002 * Add 3.13.0b3t and exclude it from `pyenv latest` by @colesbury in https://github.com/pyenv/pyenv/pull/3001 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ec87819dc8..5fc62f4639 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.6" +version="2.4.7" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From cdd97d8c300b4fddb31577d58ac2523b4f6c5046 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 20 Jul 2024 21:22:50 +0300 Subject: [PATCH 0819/1324] Fix pyenv-uninstall not having the debug tracing invocation (#3020) --- plugins/python-build/bin/pyenv-uninstall | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/bin/pyenv-uninstall b/plugins/python-build/bin/pyenv-uninstall index 3bf6d98edc..f6b6fcdfcc 100755 --- a/plugins/python-build/bin/pyenv-uninstall +++ b/plugins/python-build/bin/pyenv-uninstall @@ -11,6 +11,7 @@ # See `pyenv versions` for a complete list of installed versions. # set -e +[ -n "$PYENV_DEBUG" ] && set -x # Provide pyenv completions if [ "$1" = "--complete" ]; then From e396561661c65c1213bb69c73c01a459e3e4b6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sat, 20 Jul 2024 12:29:18 -0600 Subject: [PATCH 0820/1324] Add CPython 3.13.0b4 and 3.13.0b4t (#3019) --- plugins/python-build/share/python-build/3.13.0b3t | 2 -- .../python-build/share/python-build/{3.13.0b3 => 3.13.0b4} | 4 ++-- plugins/python-build/share/python-build/3.13.0b4t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0b3t rename plugins/python-build/share/python-build/{3.13.0b3 => 3.13.0b4} (57%) create mode 100644 plugins/python-build/share/python-build/3.13.0b4t diff --git a/plugins/python-build/share/python-build/3.13.0b3t b/plugins/python-build/share/python-build/3.13.0b3t deleted file mode 100644 index 31f54da01a..0000000000 --- a/plugins/python-build/share/python-build/3.13.0b3t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0b3 diff --git a/plugins/python-build/share/python-build/3.13.0b3 b/plugins/python-build/share/python-build/3.13.0b4 similarity index 57% rename from plugins/python-build/share/python-build/3.13.0b3 rename to plugins/python-build/share/python-build/3.13.0b4 index f286f05b40..4f3e28e7a1 100644 --- a/plugins/python-build/share/python-build/3.13.0b3 +++ b/plugins/python-build/share/python-build/3.13.0b4 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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.0b3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b3.tar.xz#3be094ad08b11dc2a065463524239c78dc9f2b342b01dcd4e1e606dbbc5c78a5" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0b4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b4.tar.xz#b2aa557c3c875233abdaf1b124284e5d50f6bb238d62a8b55f12dc92cea1953f" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0b3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b3.tgz#5e9c01cdb3e2fb1f5732a55e9522cb6a011693e795ec347b3f69ff5e217175e4" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0b4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b4.tgz#6f387984d028686c008a822cf6887e47d8dbc460ebc022358082ecacac5113e6" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.13.0b4t b/plugins/python-build/share/python-build/3.13.0b4t new file mode 100644 index 0000000000..4bc524013f --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0b4t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0b4 From 88f76ee787dcd2eec3a7d0443faf9eb5482f6c6c Mon Sep 17 00:00:00 2001 From: ThomasHaz Date: Sat, 20 Jul 2024 19:32:57 +0100 Subject: [PATCH 0821/1324] README: Remove reference to Fig [https://fig.io] (#3018) [Fig](https://fig.io) has been sunlit for new users, with access being removed in September --- README.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/README.md b/README.md index ff9682a939..32a0cdb2cd 100644 --- a/README.md +++ b/README.md @@ -367,12 +367,6 @@ See [Advanced configuration](#advanced-configuration) for details and more confi **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. - In MacOS, you might also want to install [Fig](https://fig.io/) which -provides alternative shell completions for many command line tools with an -IDE-like popup interface in the terminal window. -(Note that their completions are independent from Pyenv's codebase -so they might be slightly out of sync for bleeding-edge interface changes.) - ### Restart your shell for the `PATH` changes to take effect. From 9373970678f48dd7e86348e428269930d0645cb0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 20 Jul 2024 22:06:13 +0300 Subject: [PATCH 0822/1324] pyenv-latest: replace -q with -b and -f, document as internal More tailored for the emergent internal use cases --- libexec/pyenv-latest | 23 +++++++++++++++++------ libexec/pyenv-prefix | 2 +- libexec/pyenv-version-name | 2 +- plugins/python-build/bin/pyenv-install | 2 +- plugins/python-build/test/hooks.bats | 3 ++- plugins/python-build/test/pyenv.bats | 8 ++++---- test/latest.bats | 22 ++++++++++++++++++++++ 7 files changed, 48 insertions(+), 14 deletions(-) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 6f2d9e97e4..330e1e296f 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -1,9 +1,11 @@ #!/usr/bin/env bash # Summary: Print the latest installed or known version with the given prefix -# Usage: pyenv latest [-k|--known] [-q|--quiet] +# Usage: pyenv latest [-k|--known] # # -k/--known Select from all known versions instead of installed -# -q/--quiet Do not print an error message on resolution failure +# -b/--bypass (internal) On a resolution failure, do not print an error message +# but rather print the argument unchanged +# -f/--force (internal) Same as -b but also do not return a failure exit code set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -15,8 +17,13 @@ do FROM_KNOWN=1 shift ;; - -q|--quiet) - QUIET=1 + -b|--bypass) + BYPASS=1 + shift + ;; + -f|--force) + FORCE=1 + BYPASS=1 shift ;; *) @@ -71,10 +78,14 @@ IFS=$'\n' if [[ -n "$DEFINITION" ]]; then echo "$DEFINITION" else - if [[ -z $QUIET ]]; then + if [[ -z $BYPASS ]]; then echo "pyenv: no $([[ -z $FROM_KNOWN ]] && echo installed || echo known) versions match the prefix \`$prefix'" >&2 + else + echo "$prefix" + fi + if [[ -z $FORCE ]]; then + exitcode=1 fi - exitcode=1 fi exit $exitcode diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index 261b865f10..65bc542580 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -42,7 +42,7 @@ OLDIFS="$IFS" exit 1 fi else - version="$(pyenv-latest -q "$version" || echo "$version")" + version="$(pyenv-latest -f "$version")" PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}" fi if [ -d "$PYENV_PREFIX_PATH" ]; then diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index d06357cbf4..52d7f8d728 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -34,7 +34,7 @@ OLDIFS="$IFS" versions=("${versions[@]}" "${version}") elif version_exists "${version#python-}"; then versions=("${versions[@]}" "${version#python-}") - elif resolved_version="$(pyenv-latest -q "$version")"; then + elif resolved_version="$(pyenv-latest -b "$version")"; then versions=("${versions[@]}" "${resolved_version}") else echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 2d5c356b25..778489b7ed 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -158,7 +158,7 @@ for DEFINITION in "${DEFINITIONS[@]}"; do # Try to resolve a prefix if user indeed gave a prefix. # We install the version under the resolved name # and hooks also see the resolved name - DEFINITION="$(pyenv-latest -q -k "$DEFINITION" || echo "$DEFINITION")" + DEFINITION="$(pyenv-latest -f -k "$DEFINITION")" # Set VERSION_NAME from $DEFINITION. Then compute the installation prefix. VERSION_NAME="${DEFINITION##*/}" diff --git a/plugins/python-build/test/hooks.bats b/plugins/python-build/test/hooks.bats index 032895244d..1c3ec3438e 100644 --- a/plugins/python-build/test/hooks.bats +++ b/plugins/python-build/test/hooks.bats @@ -15,9 +15,10 @@ after_install 'echo after: \$STATUS' OUT stub pyenv-hooks "install : echo '$HOOK_PATH'/install.bash" stub pyenv-rehash "echo rehashed" - stub pyenv-latest false definition="${TMP}/3.6.2" + stub pyenv-latest "echo $definition" + cat > "$definition" <<<"echo python-build" run pyenv-install "$definition" diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 1ca8270636..e521201c68 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -18,7 +18,7 @@ stub_python_build_no_latest() { stub_python_build() { stub_python_build_no_latest "$@" - stub pyenv-latest false + stub pyenv-latest '-f -k * : shift 2; echo "$@"' } @test "install a single version" { @@ -65,9 +65,9 @@ OUT stub_python_build_lib for i in {1..3}; do stub_python_build_no_latest; done stub pyenv-latest \ - '-q -k 3.4 : echo 3.4.2' \ - '-q -k 3.5.1 : false' \ - '-q -k 3.5 : echo 3.5.2' + '-r -k 3.4 : echo 3.4.2' \ + '-r -k 3.5.1 : false' \ + '-r -k 3.5 : echo 3.5.2' run pyenv-install 3.4 3.5.1 3.5 assert_success < Date: Sun, 21 Jul 2024 06:30:27 +0300 Subject: [PATCH 0823/1324] Remove nop tests Easy syncing with Rbenv is not as important now --- plugins/python-build/test/build.bats | 48 ---------------------------- 1 file changed, 48 deletions(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index aacef79f32..3a1e4e6f18 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -888,54 +888,6 @@ OUT assert_success "hello world" } -@test "mruby strategy overwrites non-writable files" { - # nop -} - -@test "mruby strategy fetches rake if missing" { - # nop -} - -@test "rbx uses bundle then rake" { - # nop -} - -@test "fixes rbx binstubs" { - # nop -} - -@test "JRuby build" { - # nop -} - -@test "JRuby+Graal does not install launchers" { - # nop -} - -@test "JRuby Java 7 missing" { - # nop -} - -@test "JRuby Java is outdated" { - # nop -} - -@test "JRuby Java 7 up-to-date" { - # nop -} - -@test "Java version string not on first line" { - # nop -} - -@test "Java version string on OpenJDK" { - # nop -} - -@test "JRuby Java 9 version string" { - # nop -} - @test "non-writable TMPDIR aborts build" { export TMPDIR="${TMP}/build" mkdir -p "$TMPDIR" From e9611beffe499f6e97afeb6b4851dc00a5e644e2 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 21 Jul 2024 06:57:39 +0300 Subject: [PATCH 0824/1324] Fix tests failing if plugins are installed (#3022) Drop the failing test in favor of a better-written test that also tests the same --- test/pyenv.bats | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/test/pyenv.bats b/test/pyenv.bats index e7e8b419f6..ce22a4477b 100644 --- a/test/pyenv.bats +++ b/test/pyenv.bats @@ -46,12 +46,7 @@ load test_helper assert_output "pyenv: cannot change working directory to \`$dir'" } -@test "adds its own libexec to PATH" { - run pyenv echo "PATH" - assert_success "${BATS_TEST_DIRNAME%/*}/libexec:${BATS_TEST_DIRNAME%/*}/plugins/python-build/bin:$PATH" -} - -@test "adds plugin bin dirs to PATH" { +@test "adds its own libexec and plugin bin dirs to PATH" { mkdir -p "$PYENV_ROOT"/plugins/python-build/bin mkdir -p "$PYENV_ROOT"/plugins/pyenv-each/bin run pyenv echo -F: "PATH" From f17809c4b9db8d5c8108eae6b1890870fac481cf Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 21 Jul 2024 07:02:45 +0300 Subject: [PATCH 0825/1324] 2.4.8 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a7088980b..82725ee4c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.4.8 +* Fix pyenv-uninstall not having the debug tracing invocation by @native-api in https://github.com/pyenv/pyenv/pull/3020 +* Add CPython 3.13.0b4 and 3.13.0b4t by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3019 +* README: Remove reference to Fig by @ThomasHaz in https://github.com/pyenv/pyenv/pull/3018 +* Fix tests failing if plugins are installed by @native-api in https://github.com/pyenv/pyenv/pull/3022 +* pyenv-latest: replace -q with -b and -f, document as internal by @native-api in https://github.com/pyenv/pyenv/pull/3021 + ## Release v2.4.7 * Add support for anaconda3-2024.06-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3009 * Fix debug build for X.Yt-dev by @native-api in https://github.com/pyenv/pyenv/pull/ diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5fc62f4639..13e651c67d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.7" +version="2.4.8" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 9b09a7efc9f763c721f4264e62e12e75568c647d Mon Sep 17 00:00:00 2001 From: Michael Goerz Date: Wed, 31 Jul 2024 05:41:59 -0400 Subject: [PATCH 0826/1324] Add miniforge3-24.3.0-0 (#3028) --- .../share/python-build/miniforge3-24.3.0-0 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-24.3.0-0 diff --git a/plugins/python-build/share/python-build/miniforge3-24.3.0-0 b/plugins/python-build/share/python-build/miniforge3-24.3.0-0 new file mode 100644 index 0000000000..981e85dff3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.3.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-Linux-aarch64.sh#6c879fe354d3e26b8d960cff6b1f3cb9d2e58c79c5c07f23fff62469dc5c1480" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.3.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-Linux-ppc64le.sh#b7710f5dbab9a49995e027cc72cc729ad54506fbba7b936b56737d1437aa6504" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.3.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-Linux-x86_64.sh#23367676b610de826f50f7ddc91139a816d4b59bd4c69cc9b6082d9b2e7fe8a3" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.3.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-MacOSX-arm64.sh#9b3c3d9fa30437592e680390f2b27d45c5d5cfcbfad9a1af233f70a6d8be71a1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.3.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Miniforge3-24.3.0-0-MacOSX-x86_64.sh#26a80621b146d60e5ae0d896b83ec138416653b951286361b1f93a804cb6a8d9" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 6511ce26cd52c1a604f79516f2d02a96e7b986a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sat, 3 Aug 2024 05:11:56 -0600 Subject: [PATCH 0827/1324] Add CPython 3.13.0rc1 (#3029) --- plugins/python-build/share/python-build/3.13.0b4t | 2 -- .../python-build/share/python-build/{3.13.0b4 => 3.13.0rc1} | 4 ++-- plugins/python-build/share/python-build/3.13.0rc1t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0b4t rename plugins/python-build/share/python-build/{3.13.0b4 => 3.13.0rc1} (52%) create mode 100644 plugins/python-build/share/python-build/3.13.0rc1t diff --git a/plugins/python-build/share/python-build/3.13.0b4t b/plugins/python-build/share/python-build/3.13.0b4t deleted file mode 100644 index 4bc524013f..0000000000 --- a/plugins/python-build/share/python-build/3.13.0b4t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0b4 diff --git a/plugins/python-build/share/python-build/3.13.0b4 b/plugins/python-build/share/python-build/3.13.0rc1 similarity index 52% rename from plugins/python-build/share/python-build/3.13.0b4 rename to plugins/python-build/share/python-build/3.13.0rc1 index 4f3e28e7a1..429864174d 100644 --- a/plugins/python-build/share/python-build/3.13.0b4 +++ b/plugins/python-build/share/python-build/3.13.0rc1 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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.0b4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b4.tar.xz#b2aa557c3c875233abdaf1b124284e5d50f6bb238d62a8b55f12dc92cea1953f" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0rc1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc1.tar.xz#678b884775eec0224d5159fa900879020baca2a36ce942fd95febfa1adb4a6bd" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0b4" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0b4.tgz#6f387984d028686c008a822cf6887e47d8dbc460ebc022358082ecacac5113e6" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0rc1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc1.tgz#53f1ed4920b82fa65cd32a56fa80fd18b475bf1b757597a5a104d2a4dfa5ffff" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.13.0rc1t b/plugins/python-build/share/python-build/3.13.0rc1t new file mode 100644 index 0000000000..f2c937cf90 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0rc1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0rc1 From 9e7010b72f43cf4ea6c4a8798bb94efca0a9f8b7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 5 Aug 2024 01:54:31 +0300 Subject: [PATCH 0828/1324] 2.4.9 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 82725ee4c4..9aa2b8869b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.9 +* Add miniforge3-24.3.0-0 by @goerz in https://github.com/pyenv/pyenv/pull/3028 +* Add CPython 3.13.0rc1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3029 + ## Release v2.4.8 * Fix pyenv-uninstall not having the debug tracing invocation by @native-api in https://github.com/pyenv/pyenv/pull/3020 * Add CPython 3.13.0b4 and 3.13.0b4t by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3019 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 13e651c67d..dee0b27275 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.8" +version="2.4.9" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 11efbdce46e05a01d6a8d038b514e81cedf2b3d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Wed, 7 Aug 2024 10:40:19 -0600 Subject: [PATCH 0829/1324] Add CPython 3.12.5 (#3030) --- plugins/python-build/share/python-build/3.12.5 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.5 diff --git a/plugins/python-build/share/python-build/3.12.5 b/plugins/python-build/share/python-build/3.12.5 new file mode 100644 index 0000000000..d067a27e1a --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.5 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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.5" "https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tar.xz#fa8a2e12c5e620b09f53e65bcd87550d2e5a1e2e04bf8ba991dcc55113876397" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.5" "https://www.python.org/ftp/python/3.12.5/Python-3.12.5.tgz#38dc4e2c261d49c661196066edbfb70fdb16be4a79cc8220c224dfeb5636d405" standard verify_py312 copy_python_gdb ensurepip +fi From 9ecd803bffaffb949fbdd8c70cb086227f6a3202 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 7 Aug 2024 20:16:29 +0300 Subject: [PATCH 0830/1324] 2.4.10 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9aa2b8869b..515f965d90 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.4.10 +* Add CPython 3.12.5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3030 + ## Release v2.4.9 * Add miniforge3-24.3.0-0 by @goerz in https://github.com/pyenv/pyenv/pull/3028 * Add CPython 3.13.0rc1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3029 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index dee0b27275..a29a138e2b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.9" +version="2.4.10" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 57a67724518c659f4bc46e2c5aa5fb56621acd43 Mon Sep 17 00:00:00 2001 From: Tom Schraitle Date: Sat, 24 Aug 2024 11:38:54 +0200 Subject: [PATCH 0831/1324] Add /usr/etc/pyenv.d to hooks path (#3039) The directory /usr/etc is an optional directory and used by Fedora, RHEL 9, and openSUSE. The purpose of /usr/etc is to store distribution-provided configuration files that can be overridden by user-modified files in /etc. /usr/etc is not in FHS. However, as Torsten stated in his comment (https://github.com/thkukuk/atomic-updates_and_etc/issues/2#issuecomment-524848666) "[FHS] is currently nearly as dead as LSB, we can only ignore it if we don't want to stop and kill all innovation." --- libexec/pyenv | 2 +- test/pyenv.bats | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index fdea4911fb..a4b0c3aed4 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -94,7 +94,7 @@ if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then # Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${bin_path%/*}/pyenv.d" fi -PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" +PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:/usr/etc/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${plugin_hook}" done diff --git a/test/pyenv.bats b/test/pyenv.bats index ce22a4477b..8b6dae91e5 100644 --- a/test/pyenv.bats +++ b/test/pyenv.bats @@ -68,5 +68,5 @@ load test_helper @test "PYENV_HOOK_PATH includes pyenv built-in plugins" { unset PYENV_HOOK_PATH run pyenv echo "PYENV_HOOK_PATH" - assert_success "${PYENV_ROOT}/pyenv.d:${BATS_TEST_DIRNAME%/*}/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" + assert_success "${PYENV_ROOT}/pyenv.d:${BATS_TEST_DIRNAME%/*}/pyenv.d:/usr/etc/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" } From 669d1f1038fe0e794b5868310ce9eaac2566d111 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Sat, 24 Aug 2024 17:42:23 +0800 Subject: [PATCH 0832/1324] Add miniconda3-24.7.1-0 support (#3040) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-24.7.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.7.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.7.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.7.1-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.7.1-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.7.1-0 new file mode 100644 index 0000000000..8db8d33574 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.7.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.7.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.7.1-0-Linux-aarch64.sh#8a5f3510b91f9641c72046f82974a2b95f0b7fee7ed3a9f8223fd5e447c13a2e" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.7.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.7.1-0-Linux-s390x.sh#f0fa28fb5ee38ac1950fdb22cbef435f08dbe1846690a7757298e5021152ad38" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.7.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.7.1-0-Linux-x86_64.sh#684cda724bc37e3bbbb342e440fc4cac515c92e91a489eb4359feca35382894b" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.7.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.7.1-0-MacOSX-arm64.sh#0205a5fca4648832f1a0a3862149722dded533cabbb1d274609f883690e7ee72" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.7.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.7.1-0-MacOSX-x86_64.sh#fb3406a97b59c665640ab427694844676c9c4d3ab7ca551866381b4e547b4dcf" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.7.1-0 new file mode 100644 index 0000000000..305c4a397c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.7.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.7.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.7.1-0-Linux-aarch64.sh#f0ade904394ac5058dc293dd242a8af5c2005d28e020185691df32a5cc7ce0a0" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.7.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.7.1-0-Linux-s390x.sh#124b8f0df8c23e673409a68320f594a32e4e9e9608a3a6be1fddc0d597410e01" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.7.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.7.1-0-Linux-x86_64.sh#a098a5b1581d8fd078c430b82e27106602223e335efef708a124e723814d120c" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.7.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.7.1-0-MacOSX-arm64.sh#9e7a3e0b835c0b18d561041a49311280ed58a7424a3324da370e69d4350eabcd" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.7.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.7.1-0-MacOSX-x86_64.sh#e459d9478ece4415e1a2e9b127da7240823e7d1bf6207a4d92779081b351f773" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.7.1-0 new file mode 100644 index 0000000000..78f0af477c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.7.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.7.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-Linux-aarch64.sh#bdace1e233cda30ce37105de627e646ae8e04b036373eacfcd7fa8e35949f1b7" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.7.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-Linux-s390x.sh#5a454c59314f63a0b860e2ed27d68f4a2516c77a7beda919fc11d3cd03c6b2d2" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.7.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-Linux-x86_64.sh#33442cd3813df33dcbb4a932b938ee95398be98344dff4c30f7e757cd2110e4f" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.7.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-MacOSX-arm64.sh#e7ef5a899f9383d14d5b15aef61d54a8cd9bf3c4de18a372af0455d8f5f78cd2" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.7.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.7.1-0-MacOSX-x86_64.sh#5cfb85d81d94dfe3ef3265f2247aef32a35aeb450ea71c3a204cefed384fb87d" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.7.1-0 new file mode 100644 index 0000000000..ddffbad368 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.7.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.7.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.7.1-0-Linux-aarch64.sh#dc6d508f463b19def014d34b61297df30cc15eeac9cf47eb372634812b6721e6" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.7.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.7.1-0-Linux-s390x.sh#31553ed04ff777deefbb76bb194a2212ccf1168f2757f36794a567f58bb94ae1" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.7.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.7.1-0-Linux-x86_64.sh#2006a61abc8b4fd04de5eb92620e1f72bada713cc84b5b4899463095e1210556" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.7.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.7.1-0-MacOSX-arm64.sh#f50fceaf2d42c898559adae1ee17c22c452824a909370fdec8d4fcf844696f06" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.7.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.7.1-0-MacOSX-x86_64.sh#f5035c0595f791a822fbf3bf5b555e8e68fe33437affa3811b125ebd39efbe81" "miniconda" verify_py39 + ;; +* ) + { 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 From 5fcd9d7a4f09563da7f1e929d6af0e12c39d6c0c Mon Sep 17 00:00:00 2001 From: John Sirois Date: Wed, 4 Sep 2024 12:15:59 -0700 Subject: [PATCH 0833/1324] Add PyPy v7.3.17. (#3045) N.B.: 7.3.17 frops Python 3.9 support as well as s390x platform releases. See: https://pypy.org/posts/2024/08/pypy-v7317-release.html --- .../share/python-build/pypy2.7-7.3.17 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.17-src | 14 ++++ .../share/python-build/pypy3.10-7.3.17 | 77 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.17-src | 14 ++++ 4 files changed, 182 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.17 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.17-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.17 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.17-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.17 b/plugins/python-build/share/python-build/pypy2.7-7.3.17 new file mode 100644 index 0000000000..54138c49b5 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.17 @@ -0,0 +1,77 @@ +VERSION='7.3.17' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=a8df5ce1650f4756933f8780870c91a0a40e7c9870d74629bf241392bcb5c2e3 +linux32_hash=a3aa0867cc837a34941047ece0fbb6ca190410fae6ad35fae4999d03bf178750 +linux64_hash=9f3497f87b3372d17e447369e0016a4bec99a6b4d2a59aba774a25bfe4353474 +osarm64_hash=8573172db377ee0831bf20492cdee9bac4e0b194e3dfe8bf7c44ee257a824766 +osx64_hash=e3e1af1d6ad15e51d8d19ea36e1ac65c4c792314cc8b8dc5cf771ec4353b50f8 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.17-src b/plugins/python-build/share/python-build/pypy2.7-7.3.17-src new file mode 100644 index 0000000000..28c84dc1c1 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.17-src @@ -0,0 +1,14 @@ +VERSION='7.3.17' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=50e06840f4bbde91448080a4118068a89b8fbcae25ff8da1e2bb1402dc9a0346 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.17 b/plugins/python-build/share/python-build/pypy3.10-7.3.17 new file mode 100644 index 0000000000..44cdf64d13 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.17 @@ -0,0 +1,77 @@ +VERSION='7.3.17' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +aarch64_hash=53b6e5907df869c49e4eae7aca09fba16d150741097efb245892c1477d2395f2 +linux32_hash=e534110e1047da37c1d586c392f74de3424f871d906a2083de6d41f2a8cc9164 +linux64_hash=fdcdb9b24f1a7726003586503fdeb264fd68fc37fbfcea022dcfe825a7fee18b +osarm64_hash=a050e25e8d686853dd5afc363e55625165825dacfb55f8753d8225ebe417cfd2 +osx64_hash=6c2c5f2300d7564e711421b4968abd63243cb96f76e363975dd648ebf4a362ee + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.17-src b/plugins/python-build/share/python-build/pypy3.10-7.3.17-src new file mode 100644 index 0000000000..e94a3a85c0 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.17-src @@ -0,0 +1,14 @@ +VERSION='7.3.17' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +hash=6ad74bc578e9c6d3a8a1c51503313058e3c58c35df86f7485453c4be6ab24bf7 + +### 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' From b123520826ad9daa141980d459ef0977b581f918 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 Sep 2024 22:52:25 +0300 Subject: [PATCH 0834/1324] 2.4.11 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 515f965d90..df8607cf46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.4.11 +* Add /usr/etc/pyenv.d to hooks path by @tomschr in https://github.com/pyenv/pyenv/pull/3039 +* Add miniconda3-24.7.1-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3040 +* Add PyPy v7.3.17 by @jsirois in https://github.com/pyenv/pyenv/pull/3045 + ## Release v2.4.10 * Add CPython 3.12.5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3030 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a29a138e2b..f61ada2e73 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.10" +version="2.4.11" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From ac5c87e044c72062da16b28602a853ee505673b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sat, 7 Sep 2024 09:46:46 -0600 Subject: [PATCH 0835/1324] Add CPython 3.13.0rc2 (#3049) --- plugins/python-build/share/python-build/3.13.0rc1 | 9 --------- plugins/python-build/share/python-build/3.13.0rc1t | 2 -- plugins/python-build/share/python-build/3.13.0rc2 | 9 +++++++++ plugins/python-build/share/python-build/3.13.0rc2t | 2 ++ 4 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0rc1 delete mode 100644 plugins/python-build/share/python-build/3.13.0rc1t create mode 100644 plugins/python-build/share/python-build/3.13.0rc2 create mode 100644 plugins/python-build/share/python-build/3.13.0rc2t diff --git a/plugins/python-build/share/python-build/3.13.0rc1 b/plugins/python-build/share/python-build/3.13.0rc1 deleted file mode 100644 index 429864174d..0000000000 --- a/plugins/python-build/share/python-build/3.13.0rc1 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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.0rc1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc1.tar.xz#678b884775eec0224d5159fa900879020baca2a36ce942fd95febfa1adb4a6bd" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.13.0rc1" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc1.tgz#53f1ed4920b82fa65cd32a56fa80fd18b475bf1b757597a5a104d2a4dfa5ffff" standard verify_py313 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.13.0rc1t b/plugins/python-build/share/python-build/3.13.0rc1t deleted file mode 100644 index f2c937cf90..0000000000 --- a/plugins/python-build/share/python-build/3.13.0rc1t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0rc1 diff --git a/plugins/python-build/share/python-build/3.13.0rc2 b/plugins/python-build/share/python-build/3.13.0rc2 new file mode 100644 index 0000000000..ff72cd5416 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0rc2 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.2" "https://www.openssl.org/source/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.0rc2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc2.tar.xz#d60e8b7c10de4f71d2dffaf7c7be8efa54dc1e532fe931dbb84e5f625709e237" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.0rc2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc2.tgz#d08965c543f21d9949b2715b50d7e4619a5c13984a2ba6d2efcabf413d41479a" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.0rc2t b/plugins/python-build/share/python-build/3.13.0rc2t new file mode 100644 index 0000000000..bc4ce0e5bc --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0rc2t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0rc2 From d8c8338cd881b7621fc4dfd931ee3b005604fe1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Sat, 7 Sep 2024 09:47:51 -0600 Subject: [PATCH 0836/1324] Add CPython 3.8.20, 3.9.20, 3.10.15, 3.11.10 and 3.12.6 (#3050) --- plugins/python-build/share/python-build/3.10.15 | 9 +++++++++ plugins/python-build/share/python-build/3.11.10 | 10 ++++++++++ plugins/python-build/share/python-build/3.12.6 | 9 +++++++++ plugins/python-build/share/python-build/3.8.20 | 12 ++++++++++++ plugins/python-build/share/python-build/3.9.20 | 12 ++++++++++++ 5 files changed, 52 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.15 create mode 100644 plugins/python-build/share/python-build/3.11.10 create mode 100644 plugins/python-build/share/python-build/3.12.6 create mode 100644 plugins/python-build/share/python-build/3.8.20 create mode 100644 plugins/python-build/share/python-build/3.9.20 diff --git a/plugins/python-build/share/python-build/3.10.15 b/plugins/python-build/share/python-build/3.10.15 new file mode 100644 index 0000000000..a42cd11853 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.15 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.15" "https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tar.xz#aab0950817735172601879872d937c1e4928a57c409ae02369ec3d91dccebe79" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.15" "https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz#a27864e5ba2a4474f8f6c58ab92ff52767ac8b66f1646923355a53fe3ef15074" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.10 b/plugins/python-build/share/python-build/3.11.10 new file mode 100644 index 0000000000..79b49098a0 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.10 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.2" "https://www.openssl.org/source/openssl-3.2.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.11.10" "https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tar.xz#07a4356e912900e61a15cb0949a06c4a05012e213ecd6b4e84d0f67aabbee372" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.10" "https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tgz#92f2faf242681bfa406d53a51e17d42c5373affe23a130cd9697e132ef574706" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.12.6 b/plugins/python-build/share/python-build/3.12.6 new file mode 100644 index 0000000000..712ccf0e42 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.6 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.2" "https://www.openssl.org/source/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.6" "https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tar.xz#1999658298cf2fb837dffed8ff3c033ef0c98ef20cf73c5d5f66bed5ab89697c" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.6" "https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tgz#85a4c1be906d20e5c5a69f2466b00da769c221d6a684acfd3a514dbf5bf10a66" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.8.20 b/plugins/python-build/share/python-build/3.8.20 new file mode 100644 index 0000000000..a01e7b5a38 --- /dev/null +++ b/plugins/python-build/share/python-build/3.8.20 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.8.20" "https://www.python.org/ftp/python/3.8.20/Python-3.8.20.tar.xz#6fb89a7124201c61125c0ab4cf7f6894df339a40c02833bfd28ab4d7691fafb4" standard verify_py38 copy_python_gdb ensurepip +else + install_package "Python-3.8.20" "https://www.python.org/ftp/python/3.8.20/Python-3.8.20.tgz#9f2d5962c2583e67ef75924cd56d0c1af78bf45ec57035cf8a2cc09f74f4bf78" standard verify_py38 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.20 b/plugins/python-build/share/python-build/3.9.20 new file mode 100644 index 0000000000..9a888d12ec --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.20 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.20" "https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tar.xz#6b281279efd85294d2d6993e173983a57464c0133956fbbb5536ec9646beaf0c" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.20" "https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgz#9f2d5962c2583e67ef75924cd56d0c1af78bf45ec57035cf8a2cc09f74f4bf78" standard verify_py39 copy_python_gdb ensurepip +fi From 2e658d3e3574074ba24ffd10ad67b1c8e2ff717d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 7 Sep 2024 18:50:46 +0300 Subject: [PATCH 0837/1324] 2.4.12 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index df8607cf46..9d73f904b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.12 +* Add CPython 3.13.0rc2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3049 +* Add CPython 3.8.20, 3.9.20, 3.10.15, 3.11.10 and 3.12.6 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3050 + ## Release v2.4.11 * Add /usr/etc/pyenv.d to hooks path by @tomschr in https://github.com/pyenv/pyenv/pull/3039 * Add miniconda3-24.7.1-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3040 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f61ada2e73..39561bbb63 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.11" +version="2.4.12" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 1cabb6e02b1408b783038627a4ad1d30eabb7f10 Mon Sep 17 00:00:00 2001 From: Andrew Linzie Date: Sun, 8 Sep 2024 15:13:47 -0400 Subject: [PATCH 0838/1324] docs: Use `--verbose` with performance CPython build instructions (#3053) --- plugins/python-build/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 2c02e76c74..b717512f2f 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -208,7 +208,7 @@ enables PGO (profile guided optimization). While your mileage may vary, it is common for performance improvement from this to be in the ballpark of 30%. ```sh -env PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto' PYTHON_CFLAGS='-march=native -mtune=native' pyenv install 3.6.0 +env PYTHON_CONFIGURE_OPTS='--enable-optimizations --with-lto' PYTHON_CFLAGS='-march=native -mtune=native' pyenv install --verbose 3.6.0 ``` You can also customize the task used for profile guided optimization by setting From d60d1c5cdc04cfd6f2ddf5ff222216b6cd8d3ac7 Mon Sep 17 00:00:00 2001 From: Ed Morley <501702+edmorley@users.noreply.github.com> Date: Tue, 10 Sep 2024 15:51:55 +0000 Subject: [PATCH 0839/1324] Fix latest version resolution when using `python-` prefix (#3056) Fixes use of version specifiers like `python-3.12`, which: - have an explicit `python-` prefix - are using a major version alias that has to be resolved to an exact version. Also simplified the conditional for the already working case, since it had two branches that were virtually identical. --- libexec/pyenv-version-name | 10 +++++----- test/version-name.bats | 7 +++++++ 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index 52d7f8d728..73093b31ee 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -30,11 +30,11 @@ OLDIFS="$IFS" { IFS=: any_not_installed=0 for version in ${PYENV_VERSION}; do - if version_exists "$version" || [ "$version" = "system" ]; then - versions=("${versions[@]}" "${version}") - elif version_exists "${version#python-}"; then - versions=("${versions[@]}" "${version#python-}") - elif resolved_version="$(pyenv-latest -b "$version")"; then + # Remove the explicit 'python-' prefix from versions like 'python-3.12'. + normalised_version="${version#python-}" + if version_exists "${normalised_version}" || [ "$version" = "system" ]; then + versions=("${versions[@]}" "${normalised_version}") + elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then versions=("${versions[@]}" "${resolved_version}") else echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 diff --git a/test/version-name.bats b/test/version-name.bats index 20e2de3b12..e3c9a6a43c 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -120,3 +120,10 @@ OUT assert_success assert_output "2.7.11" } + +@test "pyenv-latest fallback with prefix in name" { + create_version "3.12.6" + PYENV_VERSION="python-3.12" run pyenv-version-name + assert_success + assert_output "3.12.6" +} From 9c40f0b67e668d85944cf7c1af2a58a1a54f550c Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 12 Sep 2024 01:44:05 +0300 Subject: [PATCH 0840/1324] Fix tgz checksum for 3.9.20; fallback OpenSSL URLs checksums for 3.11.10, 3.12.6, 3.13.0rc2 (#3060) changed OpenSSL URLs to permalinks so that they keep working --- plugins/python-build/share/python-build/3.11.10 | 2 +- plugins/python-build/share/python-build/3.12.6 | 2 +- plugins/python-build/share/python-build/3.13.0rc2 | 2 +- plugins/python-build/share/python-build/3.9.20 | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/3.11.10 b/plugins/python-build/share/python-build/3.11.10 index 79b49098a0..ae40b14f93 100644 --- a/plugins/python-build/share/python-build/3.11.10 +++ b/plugins/python-build/share/python-build/3.11.10 @@ -1,7 +1,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-3.2.2" "https://www.openssl.org/source/openssl-3.2.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.2.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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.11.10" "https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tar.xz#07a4356e912900e61a15cb0949a06c4a05012e213ecd6b4e84d0f67aabbee372" standard verify_py311 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.12.6 b/plugins/python-build/share/python-build/3.12.6 index 712ccf0e42..8323869a00 100644 --- a/plugins/python-build/share/python-build/3.12.6 +++ b/plugins/python-build/share/python-build/3.12.6 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.2" "https://www.openssl.org/source/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.3.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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.6" "https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tar.xz#1999658298cf2fb837dffed8ff3c033ef0c98ef20cf73c5d5f66bed5ab89697c" standard verify_py312 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.13.0rc2 b/plugins/python-build/share/python-build/3.13.0rc2 index ff72cd5416..aebf7c497a 100644 --- a/plugins/python-build/share/python-build/3.13.0rc2 +++ b/plugins/python-build/share/python-build/3.13.0rc2 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.2" "https://www.openssl.org/source/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.3.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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.0rc2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc2.tar.xz#d60e8b7c10de4f71d2dffaf7c7be8efa54dc1e532fe931dbb84e5f625709e237" standard verify_py313 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.9.20 b/plugins/python-build/share/python-build/3.9.20 index 9a888d12ec..a3af19d8a9 100644 --- a/plugins/python-build/share/python-build/3.9.20 +++ b/plugins/python-build/share/python-build/3.9.20 @@ -8,5 +8,5 @@ install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1. if has_tar_xz_support; then install_package "Python-3.9.20" "https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tar.xz#6b281279efd85294d2d6993e173983a57464c0133956fbbb5536ec9646beaf0c" standard verify_py39 copy_python_gdb ensurepip else - install_package "Python-3.9.20" "https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgz#9f2d5962c2583e67ef75924cd56d0c1af78bf45ec57035cf8a2cc09f74f4bf78" standard verify_py39 copy_python_gdb ensurepip + install_package "Python-3.9.20" "https://www.python.org/ftp/python/3.9.20/Python-3.9.20.tgz#1e71f006222666e0a39f5a47be8221415c22c4dd8f25334cc41aee260b3d379e" standard verify_py39 copy_python_gdb ensurepip fi From 6517caf5836978d3cef831c9c24038be0c4d741f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Wed, 11 Sep 2024 22:43:03 -0600 Subject: [PATCH 0841/1324] Fix OpenSSL 3.3.2 download URLs (#3059) --- plugins/python-build/share/python-build/3.12.6 | 2 +- plugins/python-build/share/python-build/3.13.0rc2 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.12.6 b/plugins/python-build/share/python-build/3.12.6 index 8323869a00..73e2f6ebac 100644 --- a/plugins/python-build/share/python-build/3.12.6 +++ b/plugins/python-build/share/python-build/3.12.6 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.6" "https://www.python.org/ftp/python/3.12.6/Python-3.12.6.tar.xz#1999658298cf2fb837dffed8ff3c033ef0c98ef20cf73c5d5f66bed5ab89697c" standard verify_py312 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.13.0rc2 b/plugins/python-build/share/python-build/3.13.0rc2 index aebf7c497a..3d168da28a 100644 --- a/plugins/python-build/share/python-build/3.13.0rc2 +++ b/plugins/python-build/share/python-build/3.13.0rc2 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.0rc2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc2.tar.xz#d60e8b7c10de4f71d2dffaf7c7be8efa54dc1e532fe931dbb84e5f625709e237" standard verify_py313 copy_python_gdb ensurepip From d8f5b583bd3971ce0f85821fc1721d21283d14a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 18 Sep 2024 06:33:27 +0200 Subject: [PATCH 0842/1324] Add GraalPy 24.1.0 (#3066) --- .../share/python-build/graalpy-24.1.0 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.1.0 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.1.0 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.1.0 diff --git a/plugins/python-build/share/python-build/graalpy-24.1.0 b/plugins/python-build/share/python-build/graalpy-24.1.0 new file mode 100644 index 0000000000..2af5024dd0 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.1.0 @@ -0,0 +1,64 @@ +# Copyright (c) 2024, 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='24.1.0' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="95819091eee7c21566601c22536768204b7c75e9b59e522a10961612a1dd6298" + ;; +"linux-aarch64" ) + checksum="838662e07ce745708d58a50e5e030f9af608306c4595adb3a8e7ac1f6e7d8b6a" + ;; +"macos-amd64" ) + checksum="4bee92fdf97ef9e2f9a8dfc56030b9f40860019bf57c9cd097a4b86baaf31d94" + ;; +"macos-aarch64" ) + checksum="520888b407e47c8bbc91b0830d540a1eb1a6919ad0ce5be3e657e54f77ee0fba" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.1.0 b/plugins/python-build/share/python-build/graalpy-community-24.1.0 new file mode 100644 index 0000000000..b2b48ec8ee --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.1.0 @@ -0,0 +1,54 @@ +# Copyright (c) 2024, 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='24.1.0' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="89c7f8bd8f91639adc815949458d56ea9bffaa286249360d244fc6a6885c220a" + ;; +"linux-aarch64" ) + checksum="8f52958486606328a9692a0c0553f2cd3afd1c86c9df97ae47a703afc2e804a8" + ;; +"macos-amd64" ) + checksum="1b01102ca9cbfe8164e935ca834226db76e8ca9359a5585ba686430593cbc02d" + ;; +"macos-aarch64" ) + checksum="cd0d6064bbb4f92d50d2b85ed46f6a9c22a5ae775f15cc264508da8f026eecaa" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 62fc392515d98067fcdd355eb6a3bc0bd08c2bc0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 18 Sep 2024 07:38:48 +0300 Subject: [PATCH 0843/1324] 2.4.13 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d73f904b4..36dbda1e6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.4.13 +* docs: Use `--verbose` with performance CPython build instructions by @caerulescens in https://github.com/pyenv/pyenv/pull/3053 +* Fix latest version resolution when using `python-` prefix by @edmorley in https://github.com/pyenv/pyenv/pull/3056 +* Fix tgz checksum for 3.9.20; fallback OpenSSL URLs and checksums by @native-api in https://github.com/pyenv/pyenv/pull/3060 +* Fix OpenSSL 3.3.2 download URLs by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3059 +* Add GraalPy 24.1.0 by @msimacek in https://github.com/pyenv/pyenv/pull/3066 + ## Release v2.4.12 * Add CPython 3.13.0rc2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3049 * Add CPython 3.8.20, 3.9.20, 3.10.15, 3.11.10 and 3.12.6 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3050 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 39561bbb63..974787c619 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.12" +version="2.4.13" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 3f2ef9e00afcdca2aadd07a4294269291dd8cc62 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 28 Sep 2024 21:04:59 +0300 Subject: [PATCH 0844/1324] README: Clarify Zsh configuration Closes #3069 --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 32a0cdb2cd..a801abfcc2 100644 --- a/README.md +++ b/README.md @@ -329,6 +329,8 @@ See [Advanced configuration](#advanced-configuration) for details and more confi ~~~ - For **Zsh**: + + Run the following to add the commands to `~/.zshrc`: ~~~ zsh echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc From 55134ea1a1c00abd214e5d71ac76df7cac545b73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Wed, 2 Oct 2024 05:50:30 -0600 Subject: [PATCH 0845/1324] Add CPython 3.12.7 (#3078) --- plugins/python-build/share/python-build/3.12.7 | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.7 diff --git a/plugins/python-build/share/python-build/3.12.7 b/plugins/python-build/share/python-build/3.12.7 new file mode 100644 index 0000000000..00a357780e --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.7 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.7" "https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tar.xz#24887b92e2afd4a2ac602419ad4b596372f67ac9b077190f459aba390faf5550" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.7" "https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz#73ac8fe780227bf371add8373c3079f42a0dc62deff8d612cd15a618082ab623" standard verify_py312 copy_python_gdb ensurepip +fi From 95917cb753638cd1b9acc1d2b2c4686d8a934d10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Wed, 2 Oct 2024 05:50:59 -0600 Subject: [PATCH 0846/1324] Add CPython 3.13.0rc3 (#3077) --- plugins/python-build/share/python-build/3.13.0rc2t | 2 -- .../python-build/share/python-build/{3.13.0rc2 => 3.13.0rc3} | 4 ++-- plugins/python-build/share/python-build/3.13.0rc3t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.13.0rc2t rename plugins/python-build/share/python-build/{3.13.0rc2 => 3.13.0rc3} (59%) create mode 100644 plugins/python-build/share/python-build/3.13.0rc3t diff --git a/plugins/python-build/share/python-build/3.13.0rc2t b/plugins/python-build/share/python-build/3.13.0rc2t deleted file mode 100644 index bc4ce0e5bc..0000000000 --- a/plugins/python-build/share/python-build/3.13.0rc2t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0rc2 diff --git a/plugins/python-build/share/python-build/3.13.0rc2 b/plugins/python-build/share/python-build/3.13.0rc3 similarity index 59% rename from plugins/python-build/share/python-build/3.13.0rc2 rename to plugins/python-build/share/python-build/3.13.0rc3 index 3d168da28a..e51efc86a2 100644 --- a/plugins/python-build/share/python-build/3.13.0rc2 +++ b/plugins/python-build/share/python-build/3.13.0rc3 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.0rc2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc2.tar.xz#d60e8b7c10de4f71d2dffaf7c7be8efa54dc1e532fe931dbb84e5f625709e237" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0rc3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc3.tar.xz#c8bc790185af1cb77b75c01cbc1aa642dfdcf97a370d2d10090bc7baa70da57e" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0rc2" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc2.tgz#d08965c543f21d9949b2715b50d7e4619a5c13984a2ba6d2efcabf413d41479a" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0rc3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc3.tgz#e5e8611d1bfbfda4accf8fab868712252a9c5f6aa5f13f6a5093878a9ef38412" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.13.0rc3t b/plugins/python-build/share/python-build/3.13.0rc3t new file mode 100644 index 0000000000..c814c506b1 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0rc3t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0rc3 From 5180c3cfb506006e16982602d0d82fa64e285a5b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 2 Oct 2024 15:13:21 +0300 Subject: [PATCH 0847/1324] 2.4.14 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 36dbda1e6f..9e7c45500c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.14 +* Add CPython 3.12.7 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3078 +* Add CPython 3.13.0rc3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3077 + ## Release v2.4.13 * docs: Use `--verbose` with performance CPython build instructions by @caerulescens in https://github.com/pyenv/pyenv/pull/3053 * Fix latest version resolution when using `python-` prefix by @edmorley in https://github.com/pyenv/pyenv/pull/3056 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 974787c619..aa3c259a6a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.13" +version="2.4.14" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 468dc81107f33b0285718cb48aca53316de205a2 Mon Sep 17 00:00:00 2001 From: tuzi3040 <28290621+tuzi3040@users.noreply.github.com> Date: Wed, 2 Oct 2024 21:37:31 +0800 Subject: [PATCH 0848/1324] CI: replace set-output with GITHUB_OUTPUT (#3079) `::set-output` is deprecated as per https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ --- .github/workflows/modified_scripts_build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 1f5cf7f48b..1771727459 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -21,8 +21,7 @@ jobs: echo "$EOF" >> $GITHUB_ENV; - id: modified-versions run: | - echo -n "::set-output name=versions::" - echo "${{ env.versions }}" | jq -R . | jq -sc . + echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT macos_build: needs: discover_modified_scripts if: needs.discover_modified_scripts.outputs.versions != '[""]' From d201daeb3366cae98cca88654b4c52018175ded5 Mon Sep 17 00:00:00 2001 From: David Poznik Date: Fri, 4 Oct 2024 16:17:45 -0700 Subject: [PATCH 0849/1324] Make "y/N" prompt consistent with others (#3080) --- plugins/python-build/bin/pyenv-uninstall | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/pyenv-uninstall b/plugins/python-build/bin/pyenv-uninstall index f6b6fcdfcc..f95cd36548 100755 --- a/plugins/python-build/bin/pyenv-uninstall +++ b/plugins/python-build/bin/pyenv-uninstall @@ -75,7 +75,7 @@ uninstall-python() { exit 1 fi - read -p "pyenv: remove $PREFIX? [y|N] " + read -p "pyenv: remove $PREFIX? (y/N) " case "$REPLY" in y | Y | yes | YES ) ;; * ) exit 1 ;; From 6a7ecfe4092f523217e9b4a5c0026e51f8dba810 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Mon, 7 Oct 2024 16:16:53 -0600 Subject: [PATCH 0850/1324] Add CPython 3.13.0 (#3081) --- plugins/python-build/share/python-build/{3.13.0rc3 => 3.13.0} | 4 ++-- plugins/python-build/share/python-build/3.13.0rc3t | 2 -- plugins/python-build/share/python-build/3.13.0t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) rename plugins/python-build/share/python-build/{3.13.0rc3 => 3.13.0} (54%) delete mode 100644 plugins/python-build/share/python-build/3.13.0rc3t create mode 100644 plugins/python-build/share/python-build/3.13.0t diff --git a/plugins/python-build/share/python-build/3.13.0rc3 b/plugins/python-build/share/python-build/3.13.0 similarity index 54% rename from plugins/python-build/share/python-build/3.13.0rc3 rename to plugins/python-build/share/python-build/3.13.0 index e51efc86a2..4f73ad83b5 100644 --- a/plugins/python-build/share/python-build/3.13.0rc3 +++ b/plugins/python-build/share/python-build/3.13.0 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.0rc3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc3.tar.xz#c8bc790185af1cb77b75c01cbc1aa642dfdcf97a370d2d10090bc7baa70da57e" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tar.xz#086de5882e3cb310d4dca48457522e2e48018ecd43da9cdf827f6a0759efb07d" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.13.0rc3" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0rc3.tgz#e5e8611d1bfbfda4accf8fab868712252a9c5f6aa5f13f6a5093878a9ef38412" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.13.0" "https://www.python.org/ftp/python/3.13.0/Python-3.13.0.tgz#12445c7b3db3126c41190bfdc1c8239c39c719404e844babbd015a1bc3fafcd4" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.13.0rc3t b/plugins/python-build/share/python-build/3.13.0rc3t deleted file mode 100644 index c814c506b1..0000000000 --- a/plugins/python-build/share/python-build/3.13.0rc3t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0rc3 diff --git a/plugins/python-build/share/python-build/3.13.0t b/plugins/python-build/share/python-build/3.13.0t new file mode 100644 index 0000000000..ecb9485254 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.0t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.0 From 03b60aafecc7ce872b492a4878fe9a072cc5aa6e Mon Sep 17 00:00:00 2001 From: Antoine Arbouin Date: Thu, 10 Oct 2024 19:43:13 +0200 Subject: [PATCH 0851/1324] Support virtualenvs with names starting with "python-" (#3086) --- libexec/pyenv-version-name | 6 +++++- test/version-name.bats | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index 73093b31ee..b3866dbd10 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -32,8 +32,12 @@ OLDIFS="$IFS" for version in ${PYENV_VERSION}; do # Remove the explicit 'python-' prefix from versions like 'python-3.12'. normalised_version="${version#python-}" - if version_exists "${normalised_version}" || [ "$version" = "system" ]; then + if version_exists "${version}" || [ "$version" = "system" ]; then + versions=("${versions[@]}" "${version}") + elif version_exists "${normalised_version}"; then versions=("${versions[@]}" "${normalised_version}") + elif resolved_version="$(pyenv-latest -b "${version}")"; then + versions=("${versions[@]}" "${resolved_version}") elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then versions=("${versions[@]}" "${resolved_version}") else diff --git a/test/version-name.bats b/test/version-name.bats index e3c9a6a43c..720f6c8634 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -127,3 +127,10 @@ OUT assert_success assert_output "3.12.6" } + +@test "pyenv version started by python-" { + create_version "python-3.12.6" + PYENV_VERSION="python-3.12.6" run pyenv-version-name + assert_success + assert_output "python-3.12.6" +} From 3ced1c475150e00dfcda4e8cca71a5670d5087b8 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 11 Oct 2024 16:28:10 +0300 Subject: [PATCH 0852/1324] Support free-threaded CPython flavor in prefix resolution (#3090) Since 3.13, CPython is provided in 2 flavors: regular and free-threaded, with the 't' suffix. An incomplete prefix ending with '[0-9]t' resolves only among versions that also end with '[0-9]t' --- libexec/pyenv-latest | 13 +++++++++++-- test/latest.bats | 17 ++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 330e1e296f..7d85e3026f 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -48,16 +48,25 @@ IFS=$'\n' exit $exitcode; fi + suffix="" + if [[ $prefix =~ ^(.*[0-9])t$ ]]; then + suffix="t" + prefix="${BASH_REMATCH[1]}" + fi + # https://stackoverflow.com/questions/11856054/is-there-an-easy-way-to-pass-a-raw-string-to-grep/63483807#63483807 prefix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$prefix")" + suffix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$suffix")" # FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash DEFINITION_CANDIDATES=(\ $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ - grep -Ee "^$prefix_re[-.]" || true)) + grep -Ee "^$prefix_re[-.].*$suffix_re\$" || true)) DEFINITION_CANDIDATES=(\ $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ - sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' -e '/[0-9]+t$/d')); + sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' \ + $(if [[ -z $suffix ]]; then echo "-e /[0-9]t\$/d"; fi) + )); # Compose a sorting key, followed by | and original value DEFINITION_CANDIDATES=(\ diff --git a/test/latest.bats b/test/latest.bats index 8881c9f518..4acfa89fd4 100644 --- a/test/latest.bats +++ b/test/latest.bats @@ -94,7 +94,7 @@ echo 3.10.6 ! } -@test "ignores rolling releases, branch tips, alternative srcs, prereleases and virtualenvs" { +@test "ignores rolling releases, branch tips, alternative srcs, prereleases, virtualenvs; 't' versions if prefix without 't'" { create_executable pyenv-versions < Date: Fri, 11 Oct 2024 16:31:00 +0300 Subject: [PATCH 0853/1324] 2.4.15 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e7c45500c..b6c8e1af9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.4.15 +* CI: replace set-output with GITHUB_OUTPUT by @tuzi3040 in https://github.com/pyenv/pyenv/pull/3079 +* Make uninstall yes/no prompt consistent with others by @dpoznik in https://github.com/pyenv/pyenv/pull/3080 +* Add CPython 3.13.0 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3081 +* Avoid shadowing of virtualenvs with the name starting with "python-" by @aarbouin in https://github.com/pyenv/pyenv/pull/3086 +* Support free-threaded CPython flavor in prefix resolution by @native-api in https://github.com/pyenv/pyenv/pull/3090 + ## Release v2.4.14 * Add CPython 3.12.7 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3078 * Add CPython 3.13.0rc3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3077 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index aa3c259a6a..3a2431c1c6 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.14" +version="2.4.15" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From fb9880e460ddd4317c9db573ac6d32ada8122b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 16 Oct 2024 19:14:36 +0200 Subject: [PATCH 0854/1324] Add GraalPy 24.1.1 (#3092) --- .../share/python-build/graalpy-24.1.1 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.1.1 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.1.1 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.1.1 diff --git a/plugins/python-build/share/python-build/graalpy-24.1.1 b/plugins/python-build/share/python-build/graalpy-24.1.1 new file mode 100644 index 0000000000..332b7f3eb2 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.1.1 @@ -0,0 +1,64 @@ +# Copyright (c) 2024, 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='24.1.1' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="b7ec8b6ead8f0ad19d212617f75c305b38d419bfd3ac6c9e82e9339282699ab9" + ;; +"linux-aarch64" ) + checksum="cb97bbef83372f00c7ea5f351bcb3c1ad36255ebd7d3cff9267d604ad183c28a" + ;; +"macos-amd64" ) + checksum="3f4583cf8438237a2061460d4df9025d04eaaae0beadb3626ccdcebf9cfe725a" + ;; +"macos-aarch64" ) + checksum="23d2397d90ebbd51747541f029ed80b7740fe36b23a45d4616ddad9b60f2c6cb" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.1.1 b/plugins/python-build/share/python-build/graalpy-community-24.1.1 new file mode 100644 index 0000000000..1fbbd4f3f6 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.1.1 @@ -0,0 +1,54 @@ +# Copyright (c) 2024, 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='24.1.1' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="42a6b563271174161a1abca4b045b0602d8e27c12204f3cadd31265fd3ff6d19" + ;; +"linux-aarch64" ) + checksum="a513ea3036a48a6cee8cfa666bff7b5e6b1a1b6cf623400109fbf856476e9bd3" + ;; +"macos-amd64" ) + checksum="7f5591074dbd701faa6dec6ea10391bc2d8af736fe8370c5675a11842959edd7" + ;; +"macos-aarch64" ) + checksum="53f6161d0f9871efaf1f62f2c1894152da0bb2b504a95ebad6f35b19de994f77" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 630b3700ad25836d46fe711ccd14b2376615f3ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= <16805946+edgarrmondragon@users.noreply.github.com> Date: Thu, 17 Oct 2024 09:45:38 -0600 Subject: [PATCH 0855/1324] Add CPython 3.14.0a1 (#3093) --- plugins/python-build/share/python-build/3.14.0a1 | 9 +++++++++ plugins/python-build/share/python-build/3.14.0a1t | 2 ++ 2 files changed, 11 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.0a1 create mode 100644 plugins/python-build/share/python-build/3.14.0a1t diff --git a/plugins/python-build/share/python-build/3.14.0a1 b/plugins/python-build/share/python-build/3.14.0a1 new file mode 100644 index 0000000000..0bbdf5ae04 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a1 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.14.0a1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a1.tar.xz#3e464b0cbb7535e2db34262fd19a0a393d0e62be0f43b1513ed98379b054ead4" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.14.0a1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a1.tgz#6edf6c54c118daff03de81d60b227545de89732c2d131ed243ce5593fa9682b7" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.0a1t b/plugins/python-build/share/python-build/3.14.0a1t new file mode 100644 index 0000000000..d7c6c4d692 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a1 From 770eb66ec886bb79669dae89dacf740d17fd6ed5 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 17 Oct 2024 18:47:39 +0300 Subject: [PATCH 0856/1324] 2.4.16 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b6c8e1af9d..261a710408 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.16 +* Add GraalPy 24.1.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3092 +* Add CPython 3.14.0a1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3093 + ## Release v2.4.15 * CI: replace set-output with GITHUB_OUTPUT by @tuzi3040 in https://github.com/pyenv/pyenv/pull/3079 * Make uninstall yes/no prompt consistent with others by @dpoznik in https://github.com/pyenv/pyenv/pull/3080 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 3a2431c1c6..55ad7d4fe9 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.15" +version="2.4.16" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From f3e288c6adc5260cadfb1a73bd839adf1cb98729 Mon Sep 17 00:00:00 2001 From: binbjz Date: Sun, 27 Oct 2024 15:24:35 +0800 Subject: [PATCH 0857/1324] Add miniconda3-24.9.2-0 --- .../python-build/miniconda3-3.10-24.9.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.9.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.9.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.9.2-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 new file mode 100644 index 0000000000..3c4047e3e9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-Linux-aarch64.sh#5d022f16ecb01d33ac8c85a87a0a8dccfb025dc90b20dbd56c4b9ae8f9727578" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-Linux-s390x.sh#93d75b306151f96a460a80d8849d85636929a90490f44004f4296a0b8399ccc5" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-Linux-x86_64.sh#364869f004c6259268b09a667ed476080bf4f44e9c4ab06a293146df8990d43f" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-MacOSX-arm64.sh#d666284d5dd9290b446de5dc20e8498545867c7730799cba8f52e97a45db42d2" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-MacOSX-x86_64.sh#7359ff3963ab3ccdc5eec244c610270b456a9584477cb645aa7539924bdd0482" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 new file mode 100644 index 0000000000..e309b59ce7 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-Linux-aarch64.sh#c4c12d969be6a02cb7370a0c717400e8eec79dea722ef0fba98d745048948980" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-Linux-s390x.sh#8de1e23f3e0a097bc3b9173a1b4b56544bd34d2831b70a71a9d528eeab0dbe90" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-Linux-x86_64.sh#62ef806265659c47e37e22e8f9adce29e75c4ea0497e619c280f54c823887c4f" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-MacOSX-arm64.sh#7358a1d53e7f857a9b87af148d20cdd00f3a91eca9f663371dfa3d830c375033" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-MacOSX-x86_64.sh#5d4229c322629cf2932c3a4e181501c98dae35b866c96d208b6688b0e2381604" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 new file mode 100644 index 0000000000..96b11863cf --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-aarch64.sh#86b8df7481646cf87e77873e9789adb7569b58248d3aa629eb2da35e6f2e2eed" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-s390x.sh#876db345b31db6d2b96ab1e2aedfbcea8af6b951a3218e6fd36f657452d1305c" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-x86_64.sh#8d936ba600300e08eca3d874dee88c61c6f39303597b2b66baee54af4f7b4122" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-MacOSX-arm64.sh#08d8a82ed21d2dae707554d540b172fe03327347db747644fbb33abfaf07fddd" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-MacOSX-x86_64.sh#ce3b440c32c9c636bbe529477fd496798c35b96d9db1838e3df6b0a80714da4e" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 new file mode 100644 index 0000000000..907a1c144d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-Linux-aarch64.sh#4607ec9145ad9c0413e6300dab3febe442e265efce486176ef1f8518ba8bfaeb" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-Linux-s390x.sh#5ccde79ed4c333f0e236f36338ed5db111a2fff50859235c4f8fffd2045a6655" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-Linux-x86_64.sh#4b540d78e5bdd770b39216c0563424ef6656504cbe24c67b2d0454c2eb7afe93" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-MacOSX-arm64.sh#4d5abecbb3264def02ad95ed6c888016f95631649b848da552a1066c52bcd1da" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-MacOSX-x86_64.sh#7535da558c8821d967e026288eaec75d9a159ec760d75c869fd10fa58d3986c3" "miniconda" verify_py39 + ;; +* ) + { 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 From 6711e9a21dae25e816fc0ec1c10f8300da3db8cc Mon Sep 17 00:00:00 2001 From: binbjz Date: Sun, 27 Oct 2024 15:33:17 +0800 Subject: [PATCH 0858/1324] Add anaconda3-2024.10-1 --- .../share/python-build/anaconda3-2024.10-1 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2024.10-1 diff --git a/plugins/python-build/share/python-build/anaconda3-2024.10-1 b/plugins/python-build/share/python-build/anaconda3-2024.10-1 new file mode 100644 index 0000000000..cdc5d05c3d --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2024.10-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2024.10-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-aarch64.sh#489c608e8bddd2cf29dfbdd811cf99087cd6b6a0615d41c6f9058ce340594b65" "anaconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Anaconda3-2024.10-1-Linux-s390x" "https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-s390x.sh#e00bd5e6c275695e8050a45aa85790315f504c95243dfe3632f505284310f3c4" "anaconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2024.10-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2024.10-1-Linux-x86_64.sh#3ba0a298155c32fbfd80cbc238298560bf69a2df511783054adfc151b76d80d8" "anaconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2024.10-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2024.10-1-MacOSX-arm64.sh#f64ed797ce23ae1d07ead949bfb6ff630b9fa8269ca8aef8ea2efa82172ece47" "anaconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2024.10-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2024.10-1-MacOSX-x86_64.sh#ad3eea1cc969e9dfd4d571fc266aae06ec119f651d7cb19c0dc187b73e2bfab1" "anaconda" verify_py312 + ;; +* ) + { 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 From 37ad06f7cea84efe0972b48b35a533ceae6afcac Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Sun, 27 Oct 2024 15:35:24 +0800 Subject: [PATCH 0859/1324] Add miniconda3-24.9.2-0 (#3096) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-24.9.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.9.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.9.2-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.9.2-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 new file mode 100644 index 0000000000..3c4047e3e9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-Linux-aarch64.sh#5d022f16ecb01d33ac8c85a87a0a8dccfb025dc90b20dbd56c4b9ae8f9727578" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-Linux-s390x.sh#93d75b306151f96a460a80d8849d85636929a90490f44004f4296a0b8399ccc5" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-Linux-x86_64.sh#364869f004c6259268b09a667ed476080bf4f44e9c4ab06a293146df8990d43f" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-MacOSX-arm64.sh#d666284d5dd9290b446de5dc20e8498545867c7730799cba8f52e97a45db42d2" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.9.2-0-MacOSX-x86_64.sh#7359ff3963ab3ccdc5eec244c610270b456a9584477cb645aa7539924bdd0482" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 new file mode 100644 index 0000000000..e309b59ce7 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-Linux-aarch64.sh#c4c12d969be6a02cb7370a0c717400e8eec79dea722ef0fba98d745048948980" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-Linux-s390x.sh#8de1e23f3e0a097bc3b9173a1b4b56544bd34d2831b70a71a9d528eeab0dbe90" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-Linux-x86_64.sh#62ef806265659c47e37e22e8f9adce29e75c4ea0497e619c280f54c823887c4f" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-MacOSX-arm64.sh#7358a1d53e7f857a9b87af148d20cdd00f3a91eca9f663371dfa3d830c375033" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.9.2-0-MacOSX-x86_64.sh#5d4229c322629cf2932c3a4e181501c98dae35b866c96d208b6688b0e2381604" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 new file mode 100644 index 0000000000..96b11863cf --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-aarch64.sh#86b8df7481646cf87e77873e9789adb7569b58248d3aa629eb2da35e6f2e2eed" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-s390x.sh#876db345b31db6d2b96ab1e2aedfbcea8af6b951a3218e6fd36f657452d1305c" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-Linux-x86_64.sh#8d936ba600300e08eca3d874dee88c61c6f39303597b2b66baee54af4f7b4122" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-MacOSX-arm64.sh#08d8a82ed21d2dae707554d540b172fe03327347db747644fbb33abfaf07fddd" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.9.2-0-MacOSX-x86_64.sh#ce3b440c32c9c636bbe529477fd496798c35b96d9db1838e3df6b0a80714da4e" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 new file mode 100644 index 0000000000..907a1c144d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.9.2-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-Linux-aarch64.sh#4607ec9145ad9c0413e6300dab3febe442e265efce486176ef1f8518ba8bfaeb" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.9.2-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-Linux-s390x.sh#5ccde79ed4c333f0e236f36338ed5db111a2fff50859235c4f8fffd2045a6655" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.9.2-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-Linux-x86_64.sh#4b540d78e5bdd770b39216c0563424ef6656504cbe24c67b2d0454c2eb7afe93" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.9.2-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-MacOSX-arm64.sh#4d5abecbb3264def02ad95ed6c888016f95631649b848da552a1066c52bcd1da" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.9.2-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.9.2-0-MacOSX-x86_64.sh#7535da558c8821d967e026288eaec75d9a159ec760d75c869fd10fa58d3986c3" "miniconda" verify_py39 + ;; +* ) + { 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 From 96b3fb2fc3bee85650cb22e2cb06c83c24509a6d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 28 Oct 2024 02:43:30 +0300 Subject: [PATCH 0860/1324] 2.4.17 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 261a710408..ef3270eef9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.17 +* Add miniconda3-24.9.2-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3096 +* Add Anaconda3-2024.10-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3097 + ## Release v2.4.16 * Add GraalPy 24.1.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3092 * Add CPython 3.14.0a1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3093 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 55ad7d4fe9..ffba2c632a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.16" +version="2.4.17" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d64d1aa1e0fa410e58cc218e721eb4c3672ce5bd Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 28 Oct 2024 02:53:18 +0300 Subject: [PATCH 0861/1324] MAINTENANCE.md: easier way to make a release --- MAINTENANCE.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/MAINTENANCE.md b/MAINTENANCE.md index cba674a8a2..42debf224c 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -4,12 +4,14 @@ Creating a release The release of the new version of Pyenv is done via GitHub Releases. Release checklist: -* Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv/releases) to generate a summary of changes. Save the summary locally. +* Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv/releases) to generate a summary of changes. +Type the would-be tag name in the "Choose a tag" field and press "Generate release notes" * The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI) +* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section) * Push the version number in `libexec/pyenv---version` * Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases). * Major version is pushed if there are breaking changes -* Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section), reformatting it like the rest of the changelog sections * Commit the changes locally into `master` -* Create a new tag with the new version number and push the changes including the tag -* Create a new release on GitHub based on the tag, using the saved summary \ No newline at end of file +* Create a new tag locally with the same name as specified in the new release window +* Push the changes including the tag +* In the still open new release window, press "Publish release". The now-existing tag will be used. \ No newline at end of file From b0d6a67881f73a275fc08da90c1a60d2db914978 Mon Sep 17 00:00:00 2001 From: Michael Goerz Date: Wed, 13 Nov 2024 15:57:14 -0500 Subject: [PATCH 0862/1324] Add miniforge3-24.9.2-0 (#3106) --- .../share/python-build/miniforge3-24.9.2-0 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-24.9.2-0 diff --git a/plugins/python-build/share/python-build/miniforge3-24.9.2-0 b/plugins/python-build/share/python-build/miniforge3-24.9.2-0 new file mode 100644 index 0000000000..0fd2b7e4ac --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.9.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Miniforge3-24.9.2-0-Linux-aarch64.sh#f33ec46c6c9dbcdc9d1101b04dcddff17f4ca54524a9575992e743bbc051d61c" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.9.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Miniforge3-24.9.2-0-Linux-ppc64le.sh#0b24b38611b486e3d1615aa778a6252430d54ae6e1210cd2874a3d8e8efd7abe" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.9.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Miniforge3-24.9.2-0-Linux-x86_64.sh#ca8c544254c40ae5192eb7db4e133ff4eb9f942a1fec737dba8205ac3f626322" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.9.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Miniforge3-24.9.2-0-MacOSX-arm64.sh#b2ee4415bce51895b74b99de6e83ac0f737fd968052b5b49f79e05b292220084" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.9.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Miniforge3-24.9.2-0-MacOSX-x86_64.sh#22b9eab7508d464c7d270883e733496beef25520d96c8383b4683f0122ae0222" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 6393a4dfce90615792751c6567c07a118a961ff9 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 17 Nov 2024 23:49:36 +0300 Subject: [PATCH 0863/1324] 2.4.18 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ef3270eef9..1377320ac7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.4.18 +* Add miniforge3-24.9.2-0 by @goerz in https://github.com/pyenv/pyenv/pull/3106 + ## Release v2.4.17 * Add miniconda3-24.9.2-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3096 * Add Anaconda3-2024.10-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3097 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ffba2c632a..f0cba5f414 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.17" +version="2.4.18" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 04b32e2d46e8f6fa2a7e480a9452fde6cdbd9303 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 20 Nov 2024 13:26:18 -0500 Subject: [PATCH 0864/1324] Add CPython 3.14.0a2 (#3110) --- plugins/python-build/share/python-build/3.14.0a1t | 2 -- .../python-build/share/python-build/{3.14.0a1 => 3.14.0a2} | 4 ++-- plugins/python-build/share/python-build/3.14.0a2t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0a1t rename plugins/python-build/share/python-build/{3.14.0a1 => 3.14.0a2} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0a2t diff --git a/plugins/python-build/share/python-build/3.14.0a1t b/plugins/python-build/share/python-build/3.14.0a1t deleted file mode 100644 index d7c6c4d692..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a1t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a1 diff --git a/plugins/python-build/share/python-build/3.14.0a1 b/plugins/python-build/share/python-build/3.14.0a2 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0a1 rename to plugins/python-build/share/python-build/3.14.0a2 index 0bbdf5ae04..4f47a14aee 100644 --- a/plugins/python-build/share/python-build/3.14.0a1 +++ b/plugins/python-build/share/python-build/3.14.0a2 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.14.0a1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a1.tar.xz#3e464b0cbb7535e2db34262fd19a0a393d0e62be0f43b1513ed98379b054ead4" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tar.xz#2ff9e10147342b3efd69f5cd9cc06ec46250f2a046587599d18e2cac69c05920" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.14.0a1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a1.tgz#6edf6c54c118daff03de81d60b227545de89732c2d131ed243ce5593fa9682b7" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tgz#b038eab7823e8a1c0500e3a26c95265656c2b8dd0bfa098aa341e9812be8f89c" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0a2t b/plugins/python-build/share/python-build/3.14.0a2t new file mode 100644 index 0000000000..c866501729 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a2t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a2 From 707e8d1ef803cb4a0b5d98d92e26000d32940085 Mon Sep 17 00:00:00 2001 From: Madhu Gururajan Date: Thu, 21 Nov 2024 00:38:35 +0530 Subject: [PATCH 0865/1324] Add quick start section and gif demo to accompany it. (#3044) * Reorganize readme, add gif 1. Details in 'Getting Pyenv' and 'Setup for your shell' are collapsed. User can expand relevant sections depending on their platform and shell. 2. 'How It Works' and 'Advanced Configuration' are moved to the bottom of the README.md just before 'Contributing' section at the end. 3. Added a GIF in the 'Usage' section to showcase - Listing python versions available for install. - Installing a specific python version. - Listing installed python versions. - Switching to another python version for a directory. - Testing by moving terminal into the directory and moving back. * Update GIF to show prefix resolution * Collapse upgrade notes * Cross-mention Linux and MacOS instlalation scenarios --------- Co-authored-by: Ivan Pozdeev --- README.md | 521 +++++++++++++++++++++------------------ install_local_python.gif | Bin 0 -> 543836 bytes 2 files changed, 280 insertions(+), 241 deletions(-) create mode 100644 install_local_python.gif diff --git a/README.md b/README.md index a801abfcc2..115fe2fb0e 100644 --- a/README.md +++ b/README.md @@ -9,9 +9,6 @@ tools that do one thing well. This project was forked from [rbenv](https://github.com/rbenv/rbenv) and [ruby-build](https://github.com/rbenv/ruby-build), and modified for Python. -![Terminal output example](/terminal_output.png) - - ### What pyenv _does..._ * Lets you **change the global Python version** on a per-user basis. @@ -32,30 +29,27 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and yourself, or [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv) to automate the process. + ---- ## Table of Contents -* **[How It Works](#how-it-works)** - * [Understanding PATH](#understanding-path) - * [Understanding Shims](#understanding-shims) - * [Understanding Python version selection](#understanding-python-version-selection) - * [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations) * **[Installation](#installation)** - * [Getting Pyenv](#getting-pyenv) - * [UNIX/MacOS](#unixmacos) + * [Getting Pyenv](#a-getting-pyenv) + * [Linux/UNIX](#linuxunix) + * [Automatic Installer](#1-automatic-installer-recommended) + * [Basic GitHub Checkout](#2-basic-github-checkout) + * [MacOS](#macos) * [Homebrew in macOS](#homebrew-in-macos) - * [Automatic installer](#automatic-installer) - * [Basic GitHub Checkout](#basic-github-checkout) * [Windows](#windows) - * [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv) - * [Restart your shell](#restart-your-shell) - * [Install Python build dependencies](#install-python-build-dependencies) + * [Set up your shell environment for Pyenv](#b-set-up-your-shell-environment-for-pyenv) + * [Restart your shell](#c-restart-your-shell) + * [Install Python build dependencies](#d-install-python-build-dependencies) + * [Upgrade Notes](#e-upgrade-notes) * **[Usage](#usage)** * [Install additional Python versions](#install-additional-python-versions) * [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version) - * [Python versions with extended support](#python-versions-with-extended-support) * [Switch between Python versions](#switch-between-python-versions) * [Uninstall Python versions](#uninstall-python-versions) * [Other operations](#other-operations) @@ -64,6 +58,11 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Upgrading with Installer or Git checkout](#upgrading-with-installer-or-git-checkout) * [Uninstalling pyenv](#uninstalling-pyenv) * [Pyenv plugins](#pyenv-plugins) +* **[How It Works](#how-it-works)** + * [Understanding PATH](#understanding-path) + * [Understanding Shims](#understanding-shims) + * [Understanding Python version selection](#understanding-python-version-selection) + * [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations) * [Advanced Configuration](#advanced-configuration) * [Using Pyenv without shims](#using-pyenv-without-shims) * [Environment variables](#environment-variables) @@ -75,136 +74,51 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and ---- +## Installation -## How It Works - -At a high level, pyenv intercepts Python commands using shim -executables injected into your `PATH`, determines which Python version -has been specified by your application, and passes your commands along -to the correct Python installation. - - -### Understanding PATH - -When you run a command like `python` or `pip`, your shell (bash / zshrc / ...) -searches through a list of directories to find an executable file with -that name. This list of directories lives in an environment variable -called `PATH`, with each directory in the list separated by a colon: - - /usr/local/bin:/usr/bin:/bin - -Directories in `PATH` are searched from left to right, so a matching -executable in a directory at the beginning of the list takes -precedence over another one at the end. In this example, the -`/usr/local/bin` directory will be searched first, then `/usr/bin`, -then `/bin`. - - -### Understanding Shims - -pyenv works by inserting a directory of _shims_ at the front of your -`PATH`: - - $(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin - -Through a process called _rehashing_, pyenv maintains shims in that -directory to match every Python command across every installed version -of Python—`python`, `pip`, and so on. - -Shims are lightweight executables that simply pass your command along -to pyenv. So with pyenv installed, when you run, say, `pip`, your -operating system will do the following: - -* Search your `PATH` for an executable file named `pip` -* Find the pyenv shim named `pip` at the beginning of your `PATH` -* Run the shim named `pip`, which in turn passes the command along to - pyenv - - -### Understanding Python version selection - -When you execute a shim, pyenv determines which Python version to use by -reading it from the following sources, in this order: - -1. The `PYENV_VERSION` environment variable (if specified). You can use - the [`pyenv shell`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-shell) command to set this environment - variable in your current shell session. - -2. The application-specific `.python-version` file in the current - directory (if present). You can modify the current directory's - `.python-version` file with the [`pyenv local`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-local) - command. - -3. The first `.python-version` file found (if any) by searching each parent - directory, until reaching the root of your filesystem. - -4. The global `$(pyenv root)/version` file. You can modify this file using - the [`pyenv global`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-global) command. - If the global version file is not present, pyenv assumes you want to use the "system" - Python (see below). - -A special version name "`system`" means to use whatever Python is found on `PATH` -after the shims `PATH` entry (in other words, whatever would be run if Pyenv -shims weren't on `PATH`). Note that Pyenv considers those installations outside -its control and does not attempt to inspect or distinguish them in any way. -So e.g. if you are on MacOS and have OS-bundled Python 3.8.9 and Homebrew-installed -Python 3.9.12 and 3.10.2 -- for Pyenv, this is still a single "`system`" version, -and whichever of those is first on `PATH` under the executable name you -specified will be run. - -**NOTE:** You can activate multiple versions at the same time, including multiple -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 instruct -Pyenv to first use your system Python and Python3 (which are e.g. 2.7.9 and 3.4.2) -but also have Python 3.3.6, 3.2.1, and 2.5.2 available, you first `pyenv install` -the missing versions, then set `pyenv global system 3.3.6 3.2.1 2.5.2`. -Then you'll be able to invoke any of those versions with an appropriate `pythonX` or -`pythonX.Y` name. -You can also specify multiple versions in a `.python-version` file by hand, -separated by newlines. Lines starting with a `#` are ignored. - -[`pyenv which `](COMMANDS.md#pyenv-which) displays which real executable would be -run when you invoke `` via a shim. -E.g. if you have 3.3.6, 3.2.1 and 2.5.2 installed of which 3.3.6 and 2.5.2 are selected -and your system Python is 3.2.5, -`pyenv which python2.5` should display `$(pyenv root)/versions/2.5.2/bin/python2.5`, -`pyenv which python3` -- `$(pyenv root)/versions/3.3.6/bin/python3` and -`pyenv which python3.2` -- path to your system Python due to the fall-through (see below). - -Shims also fall through to anything further on `PATH` if the corresponding executable is -not present in any of the selected Python installations. -This allows you to use any programs installed elsewhere on the system as long as -they are not shadowed by a selected Python installation. - +### A. Getting Pyenv +---- +#### Linux/Unix +
-### Locating Pyenv-provided Python installations +The Homebrew option from the [MacOS section below](#macos) would also work if you have Homebrew installed. + +##### 1. Automatic installer (Recommended) -Once pyenv has determined which version of Python your application has -specified, it passes the command along to the corresponding Python -installation. +```bash +curl https://pyenv.run | bash +``` -Each Python version is installed into its own directory under -`$(pyenv root)/versions`. +For more details visit our other project: +https://github.com/pyenv/pyenv-installer -For example, you might have these versions installed: -* `$(pyenv root)/versions/2.7.8/` -* `$(pyenv root)/versions/3.4.2/` -* `$(pyenv root)/versions/pypy-2.4.0/` +##### 2. Basic GitHub Checkout -As far as Pyenv is concerned, version names are simply directories under -`$(pyenv root)/versions`. +This will get you going with the latest version of Pyenv and make it +easy to fork and contribute any changes back upstream. ----- +* **Check out Pyenv where you want it installed.** + A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else): + ``` + git clone https://github.com/pyenv/pyenv.git ~/.pyenv + ``` +* Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't + worry if it fails; Pyenv will still work normally: + ``` + cd ~/.pyenv && src/configure && make -C src + ``` +
+#### MacOS -## Installation +
+ +The options from the [Linux section above](#linuxunix) also work but Homebrew is recommended for basic usage. -### Getting Pyenv -#### UNIX/MacOS -##### Homebrew in macOS +##### [Homebrew](https://brew.sh) in macOS - 1. Consider installing with [Homebrew](https://brew.sh): + 1. Update homebrew and install pyenv: ```sh brew update brew install pyenv @@ -239,36 +153,12 @@ As far as Pyenv is concerned, version names are simply directories under ~~~fish alias brew="env PATH=(string replace (pyenv root)/shims '' \"\$PATH\") brew" ~~~ - - -##### Automatic installer - -```bash -curl https://pyenv.run | bash -``` - -For more details visit our other project: -https://github.com/pyenv/pyenv-installer - - -##### Basic GitHub Checkout - -This will get you going with the latest version of Pyenv and make it -easy to fork and contribute any changes back upstream. - -* **Check out Pyenv where you want it installed.** - A good place to choose is `$HOME/.pyenv` (but you can install it somewhere else): - ``` - git clone https://github.com/pyenv/pyenv.git ~/.pyenv - ``` -* Optionally, try to compile a dynamic Bash extension to speed up Pyenv. Don't - worry if it fails; Pyenv will still work normally: - ``` - cd ~/.pyenv && src/configure && make -C src - ``` +
#### Windows +
+ Pyenv does not officially support Windows and does not work in Windows outside the Windows Subsystem for Linux. Moreover, even there, the Pythons it installs are not native Windows versions @@ -278,98 +168,91 @@ so you won't get Windows-specific functionality. If you're in Windows, we recommend using @kirankotari's [`pyenv-win`](https://github.com/pyenv-win/pyenv-win) fork -- which does install native Windows Python versions. +
-### Set up your shell environment for Pyenv - -**Upgrade note:** The startup logic and instructions have been updated for simplicity in 2.3.0. -The previous, more complicated configuration scheme for 2.0.0-2.2.5 still works. - -* Define environment variable `PYENV_ROOT` to point to the path where - Pyenv will store its data. `$HOME/.pyenv` is the default. - If you installed Pyenv via Git checkout, we recommend - to set it to the same location as where you cloned it. -* Add the `pyenv` executable to your `PATH` if it's not already there -* run `eval "$(pyenv init -)"` to install `pyenv` into your shell as a shell function, enable shims and autocompletion - * You may run `eval "$(pyenv init --path)"` instead to just enable shims, without shell integration +### B. Set up your shell environment for Pyenv +---- The below setup should work for the vast majority of users for common use cases. See [Advanced configuration](#advanced-configuration) for details and more configuration options. - - For **bash**: - - Stock Bash startup files vary widely between distributions in which of them source - which, under what circumstances, in what order and what additional configuration they perform. - As such, the most reliable way to get Pyenv in all environments is to append Pyenv - configuration commands to both `.bashrc` (for interactive shells) - and the profile file that Bash would use (for login shells). - - First, add the commands to `~/.bashrc` by running the following in your terminal: +#### Bash +
- ~~~ bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc - echo 'eval "$(pyenv init -)"' >> ~/.bashrc - ~~~ + Stock Bash startup files vary widely between distributions in which of them source + which, under what circumstances, in what order and what additional configuration they perform. + As such, the most reliable way to get Pyenv in all environments is to append Pyenv + configuration commands to both `.bashrc` (for interactive shells) + and the profile file that Bash would use (for login shells). - Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. - If you have none of these, add them to `~/.profile`. + 1. First, add the commands to `~/.bashrc` by running the following in your terminal: - * to add to `~/.profile`: - ~~~ bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init -)"' >> ~/.profile - ~~~ - - * to add to `~/.bash_profile`: - ~~~ bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - echo 'eval "$(pyenv init -)"' >> ~/.bash_profile - ~~~ - - - For **Zsh**: - - Run the following to add the commands to `~/.zshrc`: - ~~~ zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc - echo 'eval "$(pyenv init -)"' >> ~/.zshrc - ~~~ - - If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. - - - For **Fish shell**: - - If you have Fish 3.2.0 or newer, execute this interactively: - - ~~~ fish - set -Ux PYENV_ROOT $HOME/.pyenv - fish_add_path $PYENV_ROOT/bin - ~~~ - - Otherwise, execute the snippet below: - - ~~~ fish - set -Ux PYENV_ROOT $HOME/.pyenv - set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths - ~~~ - - Now, add this to `~/.config/fish/config.fish`: - - ~~~ fish - pyenv init - | source - ~~~ + ```bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc + echo 'eval "$(pyenv init -)"' >> ~/.bashrc + ``` + 3. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. + If you have none of these, create a `~/.profile` and add the commands there. + + * to add to `~/.profile`: + ``` bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init -)"' >> ~/.profile + ``` + * to add to `~/.bash_profile`: + ```bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile + echo 'eval "$(pyenv init -)"' >> ~/.bash_profile + ``` **Bash warning**: There are some systems where the `BASH_ENV` variable is configured to point to `.bashrc`. On such systems, you should almost certainly put the `eval "$(pyenv init -)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you may observe strange behaviour, such as `pyenv` getting into an infinite loop. See [#264](https://github.com/pyenv/pyenv/issues/264) for details. - - **Proxy note**: If you use a proxy, export `http_proxy` and `https_proxy`, too. - -### Restart your shell + +
+ +#### Zsh + +
+ + ```zsh + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc + echo 'eval "$(pyenv init -)"' >> ~/.zshrc + ``` + + If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. +
+ +#### Fish + +
+ + 1. If you have Fish 3.2.0 or newer, execute this interactively: + ~~~ fish + set -Ux PYENV_ROOT $HOME/.pyenv + fish_add_path $PYENV_ROOT/bin + ~~~ + + 2. Otherwise, execute the snippet below: + ~~~ fish + set -Ux PYENV_ROOT $HOME/.pyenv + set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths + ~~~ + + 3. Now, add this to `~/.config/fish/config.fish`: + ~~~ fish + pyenv init - | source + ~~~ +
+ +### C. Restart your shell +---- for the `PATH` changes to take effect. @@ -377,18 +260,41 @@ See [Advanced configuration](#advanced-configuration) for details and more confi exec "$SHELL" ``` -### Install Python build dependencies +### D. Install Python build dependencies +---- [**Install Python build dependencies**](https://github.com/pyenv/pyenv/wiki#suggested-build-environment) before attempting to install a new Python version. You can now begin using Pyenv. +### E. Upgrade Notes +---- + +**if you have upgraded from pyenv version 2.0.x-2.2.x** + +
+ +The startup logic and instructions have been updated for simplicity in 2.3.0. +The previous, more complicated configuration scheme for 2.0.0-2.2.5 still works. + +* Define environment variable `PYENV_ROOT` to point to the path where + Pyenv will store its data. `$HOME/.pyenv` is the default. + If you installed Pyenv via Git checkout, we recommend + to set it to the same location as where you cloned it. +* Add the `pyenv` executable to your `PATH` if it's not already there +* run `eval "$(pyenv init -)"` to install `pyenv` into your shell as a shell function, enable shims and autocompletion + * You may run `eval "$(pyenv init --path)"` instead to just enable shims, without shell integration + +
+ ---- ## Usage +![Terminal output example](/install_local_python.gif) + ### Install additional Python versions To install additional Python versions, use [`pyenv install`](COMMANDS.md#pyenv-install). @@ -401,6 +307,9 @@ pyenv install 3.10.4 Running `pyenv install -l` gives the list of all available versions. +---- + +
Notes about python releases **NOTE:** Most Pyenv-provided Python releases are source releases and are built from source as part of installation (that's why you need Python build dependencies preinstalled). You can pass options to Python's `configure` and compiler flags to customize the build, @@ -417,6 +326,9 @@ environment variables. **NOTE:** If you'd like a faster interpreter at the cost of longer build times, see [_Building for maximum performance_ in Python-Build's README](plugins/python-build/README.md#building-for-maximum-performance). +
+ +---- #### Prefix auto-resolution to the latest version @@ -436,7 +348,7 @@ You can run [`pyenv latest -k `](COMMANDS.md#pyenv-latest) to see how `p See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details. -#### Python versions with extended support +
Python versions with extended support For the following Python releases, Pyenv applies user-provided patches that add support for some newer environments. Though we don't actively maintain those patches, since existing releases never change, @@ -446,7 +358,9 @@ in a later version of those environments. * *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 * *3.5.10, 3.6.15* : MacOS 11+ and XCode 13.3 * *2.7.18* : MacOS 10.15+ and Apple Silicon +
+---- ### Switch between Python versions @@ -472,6 +386,7 @@ See [Understanding shims](#understanding-shims) and [Understanding Python version selection](#understanding-python-version-selection) for more details on how the selection works and more information on its usage. +---- ### Uninstall Python versions @@ -487,6 +402,7 @@ Note however that plugins may run additional operations on uninstall which you would need to do by hand as well. E.g. Pyenv-Virtualenv also removes any virtual environments linked to the version being uninstalled. +---- ### Other operations @@ -588,6 +504,129 @@ as well as a catalog of some useful existing plugins for common needs. See [_Authoring plugins_ on the wiki](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) on writing your own plugins. +---- + +## How It Works + +At a high level, pyenv intercepts Python commands using shim +executables injected into your `PATH`, determines which Python version +has been specified by your application, and passes your commands along +to the correct Python installation. + + +### Understanding PATH + +When you run a command like `python` or `pip`, your shell (bash / zshrc / ...) +searches through a list of directories to find an executable file with +that name. This list of directories lives in an environment variable +called `PATH`, with each directory in the list separated by a colon: + + /usr/local/bin:/usr/bin:/bin + +Directories in `PATH` are searched from left to right, so a matching +executable in a directory at the beginning of the list takes +precedence over another one at the end. In this example, the +`/usr/local/bin` directory will be searched first, then `/usr/bin`, +then `/bin`. + + +### Understanding Shims + +pyenv works by inserting a directory of _shims_ at the front of your +`PATH`: + + $(pyenv root)/shims:/usr/local/bin:/usr/bin:/bin + +Through a process called _rehashing_, pyenv maintains shims in that +directory to match every Python command across every installed version +of Python—`python`, `pip`, and so on. + +Shims are lightweight executables that simply pass your command along +to pyenv. So with pyenv installed, when you run, say, `pip`, your +operating system will do the following: + +* Search your `PATH` for an executable file named `pip` +* Find the pyenv shim named `pip` at the beginning of your `PATH` +* Run the shim named `pip`, which in turn passes the command along to + pyenv + + +### Understanding Python version selection + +When you execute a shim, pyenv determines which Python version to use by +reading it from the following sources, in this order: + +1. The `PYENV_VERSION` environment variable (if specified). You can use + the [`pyenv shell`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-shell) command to set this environment + variable in your current shell session. + +2. The application-specific `.python-version` file in the current + directory (if present). You can modify the current directory's + `.python-version` file with the [`pyenv local`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-local) + command. + +3. The first `.python-version` file found (if any) by searching each parent + directory, until reaching the root of your filesystem. + +4. The global `$(pyenv root)/version` file. You can modify this file using + the [`pyenv global`](https://github.com/pyenv/pyenv/blob/master/COMMANDS.md#pyenv-global) command. + If the global version file is not present, pyenv assumes you want to use the "system" + Python (see below). + +A special version name "`system`" means to use whatever Python is found on `PATH` +after the shims `PATH` entry (in other words, whatever would be run if Pyenv +shims weren't on `PATH`). Note that Pyenv considers those installations outside +its control and does not attempt to inspect or distinguish them in any way. +So e.g. if you are on MacOS and have OS-bundled Python 3.8.9 and Homebrew-installed +Python 3.9.12 and 3.10.2 -- for Pyenv, this is still a single "`system`" version, +and whichever of those is first on `PATH` under the executable name you +specified will be run. + +**NOTE:** You can activate multiple versions at the same time, including multiple +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 instruct +Pyenv to first use your system Python and Python3 (which are e.g. 2.7.9 and 3.4.2) +but also have Python 3.3.6, 3.2.1, and 2.5.2 available, you first `pyenv install` +the missing versions, then set `pyenv global system 3.3.6 3.2.1 2.5.2`. +Then you'll be able to invoke any of those versions with an appropriate `pythonX` or +`pythonX.Y` name. +You can also specify multiple versions in a `.python-version` file by hand, +separated by newlines. Lines starting with a `#` are ignored. + +[`pyenv which `](COMMANDS.md#pyenv-which) displays which real executable would be +run when you invoke `` via a shim. +E.g. if you have 3.3.6, 3.2.1 and 2.5.2 installed of which 3.3.6 and 2.5.2 are selected +and your system Python is 3.2.5, +`pyenv which python2.5` should display `$(pyenv root)/versions/2.5.2/bin/python2.5`, +`pyenv which python3` -- `$(pyenv root)/versions/3.3.6/bin/python3` and +`pyenv which python3.2` -- path to your system Python due to the fall-through (see below). + +Shims also fall through to anything further on `PATH` if the corresponding executable is +not present in any of the selected Python installations. +This allows you to use any programs installed elsewhere on the system as long as +they are not shadowed by a selected Python installation. + + +### Locating Pyenv-provided Python installations + +Once pyenv has determined which version of Python your application has +specified, it passes the command along to the corresponding Python +installation. + +Each Python version is installed into its own directory under +`$(pyenv root)/versions`. + +For example, you might have these versions installed: + +* `$(pyenv root)/versions/2.7.8/` +* `$(pyenv root)/versions/3.4.2/` +* `$(pyenv root)/versions/pypy-2.4.0/` + +As far as Pyenv is concerned, version names are simply directories under +`$(pyenv root)/versions`. + +---- + ## Advanced Configuration diff --git a/install_local_python.gif b/install_local_python.gif new file mode 100644 index 0000000000000000000000000000000000000000..fefdbd2f80993728231432173a67b2a1d2412f80 GIT binary patch literal 543836 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≫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 z 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≤V+9a&c7HA`ja{vFE3yH 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ġ-5*^{XiBT4iylr8-^ho{c!`q+jalDqxKT}D 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 B<}3gJ literal 0 HcmV?d00001 From 1e8e96b8a288ce39fa0b2a6d63e2762385c92af1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 20 Nov 2024 22:11:32 +0300 Subject: [PATCH 0866/1324] 2.4.19 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1377320ac7..069daa0ef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.19 +* Add CPython 3.14.0a2 by @nedbat in https://github.com/pyenv/pyenv/pull/3110 +* Add quick start section and gif demo to accompany it. by @madhu-GG in https://github.com/pyenv/pyenv/pull/3044 + ## Release v2.4.18 * Add miniforge3-24.9.2-0 by @goerz in https://github.com/pyenv/pyenv/pull/3106 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f0cba5f414..3f9f74bd0b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.18" +version="2.4.19" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 61c0f25ef5f2cb459ab6fa2a73f138eb6e23c643 Mon Sep 17 00:00:00 2001 From: Noelle Leigh <5957867+noelleleigh@users.noreply.github.com> Date: Sat, 23 Nov 2024 08:35:06 -0500 Subject: [PATCH 0867/1324] README: Fix Markdown in "Notes about python releases" (#3112) HTML and Markdown need to be separated by an empty line to co-exist, otherwise the Markdown isn't parsed correctly. --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 115fe2fb0e..5a99f1e4c2 100644 --- a/README.md +++ b/README.md @@ -310,6 +310,7 @@ Running `pyenv install -l` gives the list of all available versions. ----

Notes about python releases + **NOTE:** Most Pyenv-provided Python releases are source releases and are built from source as part of installation (that's why you need Python build dependencies preinstalled). You can pass options to Python's `configure` and compiler flags to customize the build, From 6140619301ec4d413117bd7e29121785e08443e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Wed, 27 Nov 2024 21:30:12 +0100 Subject: [PATCH 0868/1324] README: correct link to shell setup instructions (#3113) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5a99f1e4c2..8c5336dfcd 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ The options from the [Linux section above](#linuxunix) also work but Homebrew is brew install pyenv --head ``` 3. Then follow the rest of the post-installation steps, starting with - [Set up your shell environment for Pyenv](#set-up-your-shell-environment-for-pyenv). + [Set up your shell environment for Pyenv](#b-set-up-your-shell-environment-for-pyenv). 4. OPTIONAL. To fix `brew doctor`'s warning _""config" scripts exist outside your system or Homebrew directories"_ From a7a0354da95a9a1e95211238caf47b2551eaca0a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Tue, 3 Dec 2024 16:07:13 -0600 Subject: [PATCH 0869/1324] Add CPython 3.9.21, 3.10.16, 3.11.11, 3.12.8 and 3.13.1 --- plugins/python-build/share/python-build/3.10.16 | 9 +++++++++ plugins/python-build/share/python-build/3.11.11 | 10 ++++++++++ plugins/python-build/share/python-build/3.12.8 | 9 +++++++++ plugins/python-build/share/python-build/3.13.1 | 9 +++++++++ plugins/python-build/share/python-build/3.9.21 | 12 ++++++++++++ 5 files changed, 49 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.16 create mode 100644 plugins/python-build/share/python-build/3.11.11 create mode 100644 plugins/python-build/share/python-build/3.12.8 create mode 100644 plugins/python-build/share/python-build/3.13.1 create mode 100644 plugins/python-build/share/python-build/3.9.21 diff --git a/plugins/python-build/share/python-build/3.10.16 b/plugins/python-build/share/python-build/3.10.16 new file mode 100644 index 0000000000..c5b61f4612 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.16 @@ -0,0 +1,9 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.16" "https://www.python.org/ftp/python/3.10.16/Python-3.10.16.tar.xz#bfb249609990220491a1b92850a07135ed0831e41738cf681d63cf01b2a8fbd1" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.16" "https://www.python.org/ftp/python/3.10.16/Python-3.10.16.tgz#f2e22ed965a93cfeb642378ed6e6cdbc127682664b24123679f3d013fafe9cd0" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.11 b/plugins/python-build/share/python-build/3.11.11 new file mode 100644 index 0000000000..e736fe57f6 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.11 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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.11.11" "https://www.python.org/ftp/python/3.11.11/Python-3.11.11.tar.xz#2a9920c7a0cd236de33644ed980a13cbbc21058bfdc528febb6081575ed73be3" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.11" "https://www.python.org/ftp/python/3.11.11/Python-3.11.11.tgz#883bddee3c92fcb91cf9c09c5343196953cbb9ced826213545849693970868ed" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.12.8 b/plugins/python-build/share/python-build/3.12.8 new file mode 100644 index 0000000000..005117f6d6 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.8 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.8" "https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tar.xz#c909157bb25ec114e5869124cc2a9c4a4d4c1e957ca4ff553f1edc692101154e" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.8" "https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz#5978435c479a376648cb02854df3b892ace9ed7d32b1fead652712bee9d03a45" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.1 b/plugins/python-build/share/python-build/3.13.1 new file mode 100644 index 0000000000..428b61c599 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.1 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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.1" "https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tar.xz#9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.1" "https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tgz#1513925a9f255ef0793dbf2f78bb4533c9f184bdd0ad19763fd7f47a400a7c55" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.21 b/plugins/python-build/share/python-build/3.9.21 new file mode 100644 index 0000000000..4a317c638c --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.21 @@ -0,0 +1,12 @@ +prefer_openssl11 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-1.1.1u" "https://www.openssl.org/source/openssl-1.1.1u.tar.gz#e2f8d84b523eecd06c7be7626830370300fbcc15386bf5142d72758f6963ebc6" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.21" "https://www.python.org/ftp/python/3.9.21/Python-3.9.21.tar.xz#3126f59592c9b0d798584755f2bf7b081fa1ca35ce7a6fea980108d752a05bb1" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.21" "https://www.python.org/ftp/python/3.9.21/Python-3.9.21.tgz#667c3ba2ca98d39ead1162f6548c3475768582e2ff89e0821d25eb956ac09944" standard verify_py39 copy_python_gdb ensurepip +fi From 84037dff4ef705aacebe8ce10e9b6558c032baa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Tue, 3 Dec 2024 16:11:00 -0600 Subject: [PATCH 0870/1324] Run `macos_build` on Python 3.13 --- .github/workflows/macos_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 6459fabc22..f533b9ce26 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -15,6 +15,7 @@ jobs: - "3.10" - "3.11" - "3.12" + - "3.13" runs-on: macos-14 steps: - uses: actions/checkout@v4 From a79440470e2d6145676d0c63b80e9d44080ff751 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Tue, 3 Dec 2024 16:17:03 -0600 Subject: [PATCH 0871/1324] Run `ubuntu_build` on Python 3.13 --- .github/workflows/ubuntu_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index dd38921962..c501c1c11c 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -15,6 +15,7 @@ jobs: - "3.10" - "3.11" - "3.12" + - "3.13" runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 From 81632f0ab44e73b354da327ab8f8bfeb6a98b8a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Tue, 3 Dec 2024 16:25:19 -0600 Subject: [PATCH 0872/1324] Remove EOL Python 3.8 from CI --- .github/workflows/macos_build.yml | 1 - .github/workflows/ubuntu_build.yml | 1 - 2 files changed, 2 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index f533b9ce26..fdd424bb53 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -10,7 +10,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index c501c1c11c..71c23dfff6 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -10,7 +10,6 @@ jobs: fail-fast: false matrix: python-version: - - "3.8" - "3.9" - "3.10" - "3.11" From 0f8b2b2b848ea080b0e01a707910c272ec4ce736 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 Dec 2024 02:08:51 +0300 Subject: [PATCH 0873/1324] 2.4.20 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 069daa0ef0..7be9853fef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.4.20 +* README: Fix Markdown in "Notes about python releases" by @noelleleigh in https://github.com/pyenv/pyenv/pull/3112 +* README: correct link to shell setup instructions by @shortcuts in https://github.com/pyenv/pyenv/pull/3113 +* Add CPython 3.9.21, 3.10.16, 3.11.11, 3.12.8 and 3.13.1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3117 + ## Release v2.4.19 * Add CPython 3.14.0a2 by @nedbat in https://github.com/pyenv/pyenv/pull/3110 * Add quick start section and gif demo to accompany it. by @madhu-GG in https://github.com/pyenv/pyenv/pull/3044 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 3f9f74bd0b..76a26620fa 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.19" +version="2.4.20" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 3bc0d858cc5311ca0b8b5057fd7013315469baf0 Mon Sep 17 00:00:00 2001 From: Michael Makukha Date: Fri, 6 Dec 2024 00:53:45 +0200 Subject: [PATCH 0874/1324] Add 3.13.1t (#3120) --- plugins/python-build/share/python-build/3.13.1t | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.1t diff --git a/plugins/python-build/share/python-build/3.13.1t b/plugins/python-build/share/python-build/3.13.1t new file mode 100644 index 0000000000..005d3c5ca3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.1 From a39449bc50ac1d490913f933a48f80377c5a1d20 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 6 Dec 2024 02:55:53 +0300 Subject: [PATCH 0875/1324] Prefer tcl-tk@8 from Homebrew due to release of Tcl/Tk 9 with which only 3.12+ are compatible (#3118) --- plugins/python-build/bin/python-build | 65 +++++++++++++-------------- plugins/python-build/test/build.bats | 26 +++++------ 2 files changed, 44 insertions(+), 47 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 9aed095716..b7a0698e73 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -814,7 +814,7 @@ build_package_standard_build() { if [ "$package_var_name" = "PYTHON" ]; then use_homebrew || true - use_tcltk || true + use_custom_tcltk || use_homebrew_tcltk || true use_homebrew_readline || use_freebsd_pkg || true use_homebrew_ncurses || true if is_mac -ge 1014; then @@ -1671,31 +1671,43 @@ use_xcode_sdk_zlib() { use_homebrew_tcltk() { can_use_homebrew || return 1 - # get the version from the folder that homebrew versions - local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" - if [ -d "$tcltk_libdir" ]; then - echo "python-build: use tcl-tk from homebrew" - 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" - # 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 /Cellar - # and we'd rather have rpath set to /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" + # Since https://github.com/Homebrew/homebrew-core/commit/f10e88617b41555193c22fdcba6109fe82155ee2 (10.11.2024), + # tcl-tk is 9.0 which is not compatible with CPython as of this writing + # but we'll keep it as backup for cases like non-updated Homebrew + local tcltk + for tcltk in "tcl-tk@8" "tcl-tk"; do + local tcltk_libdir="$(brew --prefix "${tcltk}" 2>/dev/null || true)" + if [ -d "$tcltk_libdir" ]; then + echo "python-build: use tcl-tk from homebrew" + 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" + # 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 /Cellar + # and we'd rather have rpath set to /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}" + return 0 fi - export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" - fi + done + return 1 } # FIXME: this function is a workaround for #1125 # once fixed, it should be removed. +# if tcltk_ops_flag is in PYTHON_CONFIGURE_OPTS, use user provided tcltk use_custom_tcltk() { - local tcltk_ops="$1" + local tcltk_ops="$(get_tcltk_flag_from "$PYTHON_CONFIGURE_OPTS")" + + if [[ -z "$tcltk_ops" ]]; then + return 1 + fi local tcltk_ops_flag="--with-tcltk-libs=" # get tcltk libs local tcltk_libs="${tcltk_ops//$tcltk_ops_flag/}" @@ -1738,21 +1750,6 @@ get_tcltk_flag_from() { IFS="$OLDIFS" } -use_tcltk() { - if can_use_homebrew; then - local tcltk_libdir="$(brew --prefix tcl-tk 2>/dev/null || true)" - fi - local tcl_tk_libs="$(get_tcltk_flag_from "$PYTHON_CONFIGURE_OPTS")" - - # if tcltk_ops_flag is in PYTHON_CONFIGURE_OPTS, use user provided tcltk - # otherwise default to homebrew-installed tcl-tk, if installed - if [[ -n "$tcl_tk_libs" ]]; then - use_custom_tcltk "$tcl_tk_libs" - elif [ -d "$tcltk_libdir" ]; then - use_homebrew_tcltk - fi -} - # Since 3.12, CPython can add DWARF debug information in MacOS # using Apple's nonstandard way, `dsymutil', that creates a "dSYM bundle" # that's supposed to be installed alongside executables diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 3a1e4e6f18..c698489891 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -182,7 +182,7 @@ OUT for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew "--prefix libyaml : echo '$brew_libdir'" - for i in {1..5}; do stub brew false; done + for i in {1..6}; do stub brew false; done stub_make_install install_fixture definitions/needs-yaml @@ -208,7 +208,7 @@ OUT mkdir -p "$readline_libdir" for i in {1..8}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..2}; do stub brew false; done + for i in {1..3}; do stub brew false; done stub brew "--prefix readline : echo '$readline_libdir'" for i in {1..2}; do stub brew false; done stub_make_install @@ -238,7 +238,7 @@ OUT mkdir -p "$ncurses_libdir" for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..3}; do stub brew false; done + for i in {1..4}; do stub brew false; done stub brew "--prefix ncurses : echo '$ncurses_libdir'" stub brew false stub_make_install @@ -364,7 +364,7 @@ OUT for i in {1..4}; do stub uname '-s : echo Linux'; done stub brew "--prefix : echo '$BREW_PREFIX'" - for i in {1..4}; do stub brew false; done + for i in {1..5}; do stub brew false; done stub_make_install export PYTHON_BUILD_USE_HOMEBREW=1 @@ -394,7 +394,7 @@ OUT for i in {1..4}; do stub uname '-s : echo Linux'; done stub brew "--prefix : echo '$BREW_PREFIX'" - for i in {1..4}; do stub brew false; done + for i in {1..5}; do stub brew false; done stub_make_install export PYTHON_BUILD_USE_HOMEBREW=1 @@ -453,7 +453,7 @@ OUT for i in {1..8}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..4}; do stub brew false; done + for i in {1..5}; do stub brew false; done stub_make_install export PYTHON_CONFIGURE_OPTS="CPPFLAGS=-I$readline_libdir/include LDFLAGS=-L$readline_libdir/lib" @@ -482,11 +482,11 @@ OUT mkdir -p "$tcl_tk_libdir/lib" echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done stub brew false - for i in {1..2}; do stub brew "--prefix tcl-tk : echo '$tcl_tk_libdir'"; done + stub brew "--prefix tcl-tk@8 : echo '$tcl_tk_libdir'" for i in {1..3}; do stub brew false; done stub_make_install @@ -516,10 +516,10 @@ OUT tcl_tk_version_long="8.6.10" tcl_tk_version="${tcl_tk_version_long%.*}" - for i in {1..9}; do stub uname '-s : echo Darwin'; done + for i in {1..8}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..5}; do stub brew false; done + for i in {1..4}; do stub brew false; done stub_make_install export PYTHON_CONFIGURE_OPTS="--with-tcltk-libs='-L${TMP}/custom-tcl-tk/lib -ltcl$tcl_tk_version -ltk$tcl_tk_version'" @@ -544,14 +544,14 @@ OUT @test "tcl-tk is linked from Homebrew via pkgconfig only when envvar is set" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Darwin'; done + for i in {1..9}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done tcl_tk_libdir="$TMP/homebrew-tcl-tk" mkdir -p "$tcl_tk_libdir/lib" stub brew false - for i in {1..2}; do stub brew "--prefix tcl-tk : echo '${tcl_tk_libdir}'"; done + stub brew "--prefix tcl-tk@8 : echo '${tcl_tk_libdir}'" for i in {1..3}; do stub brew false; done stub_make_install @@ -739,7 +739,7 @@ OUT for i in {1..10}; do stub uname '-s : echo Darwin'; done for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done - for i in {1..5}; do stub brew false; done + for i in {1..6}; do stub brew false; done stub_make_install run_inline_definition < Date: Fri, 6 Dec 2024 02:57:27 +0300 Subject: [PATCH 0876/1324] 2.4.21 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7be9853fef..236bec2c0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.4.21 +* Add CPython 3.13.1t by @makukha in https://github.com/pyenv/pyenv/pull/3120 +* Prefer tcl-tk@8 from Homebrew due to release of Tcl/Tk 9 with which only 3.12+ are compatible by @native-api in https://github.com/pyenv/pyenv/pull/3118 + ## Release v2.4.20 * README: Fix Markdown in "Notes about python releases" by @noelleleigh in https://github.com/pyenv/pyenv/pull/3112 * README: correct link to shell setup instructions by @shortcuts in https://github.com/pyenv/pyenv/pull/3113 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 76a26620fa..e6c0cb8b2e 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.20" +version="2.4.21" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 4c90a3147fa382235caaa8beb7c3da0f6d231a39 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 7 Dec 2024 13:54:33 +0300 Subject: [PATCH 0877/1324] Speed up building bundled OpenSSL (#3124) * Skip building bundled OpneSSL unnecessary parts * Remove bundled OpneSSL build hack: no longer needed --- plugins/python-build/bin/python-build | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b7a0698e73..09878df158 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1594,11 +1594,7 @@ build_package_mac_openssl() { [[ "$1" != openssl-1.0.* ]] || nokerberos=1 # Compile a shared lib with zlib dynamically linked. - package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5} - - # Default MAKE_OPTS are -j 2 which can confuse the build. Thankfully, make - # gives precedence to the last -j option, so we can override that. - package_option openssl make -j 1 + package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5} no-docs no-apps no-tests build_package_standard "$@" From 25e70b2c8002278fb4be72c73c3d1a0a9f39545e Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 7 Dec 2024 13:58:35 +0300 Subject: [PATCH 0878/1324] CI: + build with bundled MacOS dependencies (#3123) --- .github/workflows/modified_scripts_build.yml | 61 +++++++++++++++++++ .../scripts/brew-uninstall-cascade.sh | 11 ++++ 2 files changed, 72 insertions(+) create mode 100755 .github/workflows/scripts/brew-uninstall-cascade.sh diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 1771727459..2d6ae87cd3 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -82,6 +82,67 @@ jobs: pyenv global system rm -f "$(pyenv root)"/shims/* + macos_build_bundled_dependencies: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + os: ["macos-13", "macos-14"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - run: | + #prerequisites + brew install sqlite3 xz zlib + "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION + fi + - run: | + #build + pyenv --debug install ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + # Micropython doesn't support --version + - run: | + #print version + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: | + #check + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi + # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS + - run: | + pyenv global system + rm -f "$(pyenv root)"/shims/* + ubuntu_build: needs: discover_modified_scripts if: needs.discover_modified_scripts.outputs.versions != '[""]' diff --git a/.github/workflows/scripts/brew-uninstall-cascade.sh b/.github/workflows/scripts/brew-uninstall-cascade.sh new file mode 100755 index 0000000000..2a6ba338e7 --- /dev/null +++ b/.github/workflows/scripts/brew-uninstall-cascade.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +declare -a packages rdepends +packages=("$@") + +# have to try one by one, otherwise `brew uses` would only print +# packages that require them all rather than any of them +for package in "${packages[@]}"; do + rdepends+=($(brew uses --installed --include-build --include-test --include-optional --recursive "$package")) +done +brew uninstall "${packages[@]}" "${rdepends[@]}" \ No newline at end of file From cc40a3f965bafd0cf5bb0d80df2171ce703e822f Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 7 Dec 2024 14:19:50 +0300 Subject: [PATCH 0879/1324] CL: + test modified scripts with tar.gz source (#3125) --- .github/workflows/modified_scripts_build.yml | 59 ++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 2d6ae87cd3..e49e9754b5 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -201,3 +201,62 @@ jobs: "bin") assert os.path.dirname(sys.executable) == correct_dir' fi + ubuntu_build_tar_gz: + needs: discover_modified_scripts + if: needs.discover_modified_scripts.outputs.versions != '[""]' + strategy: + fail-fast: false + matrix: + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + os: ["ubuntu-20.04", "ubuntu-22.04"] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_PATH + - run: | + #prerequisites + sudo apt-get update -q; sudo apt-get install -yq make build-essential \ + libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ + curl llvm libncurses5-dev libncursesw5-dev \ + xz-utils tk-dev libffi-dev liblzma-dev + if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then + export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 + echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV + pyenv install $PYENV_BOOTSTRAP_VERSION + fi + - run: | + #build + pyenv install -v ${{ matrix.python-version }} + pyenv global ${{ matrix.python-version }} + # Micropython doesn't support --version + - run: | + #print version + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + python -c 'import sys; print(sys.version)' + else + python --version + python -m pip --version + fi + # Micropython doesn't support sys.executable, os.path, older versions even os + - env: + EXPECTED_PYTHON: ${{ matrix.python-version }} + run: | + #check + if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then + [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 + python -c 'import sys; assert sys.implementation.name == "micropython"' + else + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' + fi From 3bdb9bd1e707da2db07a7ffe83313b243d93fbd1 Mon Sep 17 00:00:00 2001 From: Daniel Lamblin Date: Sat, 7 Dec 2024 06:20:33 -0500 Subject: [PATCH 0880/1324] Fix 404 for bundled openssl-3.4.0 release in 3.13.1 (#3122) --- plugins/python-build/share/python-build/3.13.1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.13.1 b/plugins/python-build/share/python-build/3.13.1 index 428b61c599..cfeff70f95 100644 --- a/plugins/python-build/share/python-build/3.13.1 +++ b/plugins/python-build/share/python-build/3.13.1 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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.1" "https://www.python.org/ftp/python/3.13.1/Python-3.13.1.tar.xz#9cf9427bee9e2242e3877dd0f6b641c1853ca461f39d6503ce260a59c80bf0d9" standard verify_py313 copy_python_gdb ensurepip From cb831690985b35ba30abe5c8275ac6b45e9ca384 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 7 Dec 2024 14:27:29 +0300 Subject: [PATCH 0881/1324] fix CL: + test modified scripts with tar.gz source missed some of the changes --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 09878df158..16fe628522 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -558,7 +558,7 @@ download_tarball() { } has_tar_xz_support() { - tar Jcf - /dev/null 1>/dev/null 2>&1 + [[ -z $_PYTHON_BUILD_FORCE_SKIP_XZ ]] && tar Jcf - /dev/null 1>/dev/null 2>&1 } fetch_git() { From d04a081dcb18863ca6179070d7b7afe73559581b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 7 Dec 2024 14:29:09 +0300 Subject: [PATCH 0882/1324] 2.4.22 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 236bec2c0a..2a34c3e80a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.4.22 +* Speed up building bundled OpenSSL by @native-api in https://github.com/pyenv/pyenv/pull/3124 +* CI: add building modified scripts with bundled MacOS dependencies by @native-api in https://github.com/pyenv/pyenv/pull/3123 +* CL: + test modified scripts with tar.gz source by @native-api in https://github.com/pyenv/pyenv/pull/3125 +* Fix 404 for openssl-3.4.0 release in build 3.13.1 by @dlamblin in https://github.com/pyenv/pyenv/pull/3122 + ## Release v2.4.21 * Add CPython 3.13.1t by @makukha in https://github.com/pyenv/pyenv/pull/3120 * Prefer tcl-tk@8 from Homebrew due to release of Tcl/Tk 9 with which only 3.12+ are compatible by @native-api in https://github.com/pyenv/pyenv/pull/3118 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e6c0cb8b2e..1680dac4a4 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.21" +version="2.4.22" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From a2ad48aa40436adb5475138244a06e8de1d6071b Mon Sep 17 00:00:00 2001 From: Oluf Lorenzen Date: Thu, 12 Dec 2024 04:58:02 +0100 Subject: [PATCH 0883/1324] README: explain using multiple versions (#3126) Co-authored-by: native-api --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 8c5336dfcd..555eef4247 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Install additional Python versions](#install-additional-python-versions) * [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version) * [Switch between Python versions](#switch-between-python-versions) + * [Making multiple versions available](#making-multiple-versions-available) * [Uninstall Python versions](#uninstall-python-versions) * [Other operations](#other-operations) * [Upgrading](#upgrading) @@ -389,6 +390,21 @@ for more details on how the selection works and more information on its usage. ---- +#### Making multiple versions available + +You can select multiple Python versions at the same time by specifying multiple arguments. +E.g. if you wish to use the latest installed CPython 3.11 and 3.12: + +~~~bash +pyenv global 3.11 3.12 +~~~ + +Whenever you run a command provided by a Python installation, these versions will be searched for it in the specified order. +Versions selected with `pyenv shell` are searched first, then `pyenv local`, then `pyenv global`. +[Due to the shims' fall-through behavior]((#understanding-python-version-selection)), `system` is always implicitly searched afterwards. + +---- + ### Uninstall Python versions As time goes on, you will accumulate Python versions in your From fc0e27c24bb6e3853e9b7da8f1ff59025edf1e70 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 13 Dec 2024 23:06:03 +0300 Subject: [PATCH 0884/1324] Support PACKAGE_CPPFLAGS and PACKAGE_LDFLAGS (#3130) add test to test all the flag types --- plugins/python-build/README.md | 8 +- plugins/python-build/bin/python-build | 12 ++- plugins/python-build/test/build.bats | 133 ++++++++++++++------------ 3 files changed, 87 insertions(+), 66 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index b717512f2f..e6b7b4f806 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -169,16 +169,14 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get additionally searched when looking up build definitions. * `CC` sets the path to the C compiler. -* `PYTHON_CFLAGS` lets you pass additional options to the default `CFLAGS`. Use - this to override, for instance, the `-O3` option. * `CONFIGURE_OPTS` lets you pass additional options to `./configure`. * `MAKE` lets you override the command to use for `make`. Useful for specifying GNU make (`gmake`) on some systems. * `MAKE_OPTS` (or `MAKEOPTS`) lets you pass additional options to `make`. * `MAKE_INSTALL_OPTS` lets you pass additional options to `make install`. -* `PYTHON_CONFIGURE_OPTS` and `PYTHON_MAKE_OPTS` and `PYTHON_MAKE_INSTALL_OPTS` allow - you to specify configure and make options for building CPython. These variables - will be passed to Python only, not any dependent packages (e.g. libyaml). +* `_CFLAGS`, `_CPPFLAGS`, `_LDFLAGS` let you pass additional options to `CFLAGS`/`CPPFLAGS`/`LDFLAGS` specifically for building `` (Python itself or a dependency library) from source as part of the build script. `` should be a capitalized name of the package without version (technically, capitalized first argument to `install_package` without version). E.g. for CPython, it's "`PYTHON`", for Readline, "`READLINE`", for PyPy (only applies when building it from source), "`PYPY`". Check the source of the build script you're using if unsure. +* `_CONFIGURE_OPTS`, `_MAKE_OPTS`, `_MAKE_INSTALL_OPTS`, `_MAKE_INSTALL_TARGET` allow + you to specify configure and make options for building `` (same as above). "Make install target" would replace "`install`" in the `make install` invocation. ### Applying patches to Python before compiling diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 16fe628522..34fd0d272a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -811,6 +811,8 @@ build_package_standard_build() { local PACKAGE_MAKE_OPTS="${package_var_name}_MAKE_OPTS" local PACKAGE_MAKE_OPTS_ARRAY="${package_var_name}_MAKE_OPTS_ARRAY[@]" local PACKAGE_CFLAGS="${package_var_name}_CFLAGS" + local PACKAGE_CPPFLAGS="${package_var_name}_CPPFLAGS" + local PACKAGE_LDFLAGS="${package_var_name}_LDFLAGS" if [ "$package_var_name" = "PYTHON" ]; then use_homebrew || true @@ -826,8 +828,14 @@ build_package_standard_build() { use_free_threading || true fi - ( if [ "${CFLAGS+defined}" ] || [ "${!PACKAGE_CFLAGS+defined}" ]; then - export CFLAGS="$CFLAGS ${!PACKAGE_CFLAGS}" + ( if [[ -n "${!PACKAGE_CFLAGS}" ]]; then + export CFLAGS="${CFLAGS:+$CFLAGS }${!PACKAGE_CFLAGS}" + fi + if [[ -n "${!PACKAGE_CPPFLAGS}" ]]; then + export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }${!PACKAGE_CPPFLAGS}" + fi + if [[ -n "${!PACKAGE_LDFLAGS}" ]]; then + export LDFLAGS="${LDFLAGS:+$LDFLAGS }${!PACKAGE_LDFLAGS}" fi if [ -z "$CC" ] && is_mac -ge 1010; then export CC=clang diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index c698489891..8e3ce566b9 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -30,12 +30,12 @@ cached_tarball() { tarball() { local name="$1" local path="$PWD/$name" - local configure="$path/configure" + local configure="$path/${2:-configure}" shift 1 executable "$configure" <> build.log +echo "$name: CFLAGS=\\"\$CFLAGS\\" CPPFLAGS=\\"\$CPPFLAGS\\" LDFLAGS=\\"\$LDFLAGS\\" PKG_CONFIG_PATH=\\"\$PKG_CONFIG_PATH\\"" >> build.log echo "$name: \$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log OUT @@ -50,7 +50,7 @@ OUT stub_make_install() { stub "$MAKE" \ " : echo \"$MAKE \$@\" >> build.log" \ - "install : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" + "${1:-install} : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" } assert_build_log() { @@ -74,17 +74,60 @@ assert_build_log() { unstub make assert_build_log < Date: Sun, 15 Dec 2024 17:22:51 +0300 Subject: [PATCH 0885/1324] Adjust suggested shell startup code to support Pyenv with Pyenv-Win in WSL (#3132) There's a complaint that this results in duplicate PATH entries in nested shells, will deal with that separately --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 555eef4247..6b51437aa7 100644 --- a/README.md +++ b/README.md @@ -190,7 +190,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi ```bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc ``` 3. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. @@ -199,7 +199,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi * to add to `~/.profile`: ``` bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile echo 'eval "$(pyenv init -)"' >> ~/.profile ``` * to add to `~/.bash_profile`: From aef6a2a6d04c078d97b3e559b0f821a22066de7e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 15 Dec 2024 21:20:49 +0300 Subject: [PATCH 0886/1324] Remove incorrect statement about resolution behavior `shell` does not fall through to `local`, and `local to `global`. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 6b51437aa7..5eebb3c4a5 100644 --- a/README.md +++ b/README.md @@ -400,7 +400,6 @@ pyenv global 3.11 3.12 ~~~ Whenever you run a command provided by a Python installation, these versions will be searched for it in the specified order. -Versions selected with `pyenv shell` are searched first, then `pyenv local`, then `pyenv global`. [Due to the shims' fall-through behavior]((#understanding-python-version-selection)), `system` is always implicitly searched afterwards. ---- From dc873cf5681761ae2950955b8a541514077fb2ca Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 16 Dec 2024 02:32:45 +0300 Subject: [PATCH 0887/1324] Support missing versions being present and set in a local .python-version (#3134) Requested in https://github.com/pyenv/pyenv/issues/2680 for deployments with a stock `.pyenv-version` that can use any of a number of Python versions and for compatibility with `uv`. * Support `pyenv local --force` * Support `pyenv-version-file-write --force` * Support `pyenv version-name --force` * Ignore missing versions when searching for executables * Display "commmand not found" even when there are nonexistent versions * exec.bats: replace `python` and `rspec` with something that doesn't exist globally, either in Ubuntu Github CI, `python` exists globally --- COMMANDS.md | 4 ++++ libexec/pyenv-exec | 4 ++-- libexec/pyenv-local | 19 ++++++++++++++++-- libexec/pyenv-version-file-write | 20 +++++++++++++++++-- libexec/pyenv-version-name | 33 ++++++++++++++++++++++++++------ libexec/pyenv-which | 1 - test/exec.bats | 14 ++++++++++---- test/local.bats | 12 ++++++++++++ test/version-file-write.bats | 9 ++++++++- test/version-name.bats | 5 +++++ test/which.bats | 18 ++++++++++++++++- 11 files changed, 120 insertions(+), 19 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 203250d417..1d63447185 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -91,6 +91,10 @@ or, if you prefer 3.3.3 over 2.7.6, Python 3.3.3 +You can use the `-f/--force` flag to force setting versions even if some aren't installed. +This is mainly useful in special cases like provisioning scripts. + + ## `pyenv global` Sets the global version of Python to be used in all shells by writing diff --git a/libexec/pyenv-exec b/libexec/pyenv-exec index 251a4f7cb8..6ed5ac208b 100755 --- a/libexec/pyenv-exec +++ b/libexec/pyenv-exec @@ -21,7 +21,7 @@ if [ "$1" = "--complete" ]; then exec pyenv-shims --short fi -PYENV_VERSION="$(pyenv-version-name)" +PYENV_VERSION="$(pyenv-version-name -f)" PYENV_COMMAND="$1" if [ -z "$PYENV_COMMAND" ]; then @@ -29,9 +29,9 @@ if [ -z "$PYENV_COMMAND" ]; then exit 1 fi -export PYENV_VERSION PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")" PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}" +export PYENV_VERSION OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks exec`) diff --git a/libexec/pyenv-local b/libexec/pyenv-local index c038928130..a44576a64d 100755 --- a/libexec/pyenv-local +++ b/libexec/pyenv-local @@ -2,9 +2,11 @@ # # Summary: Set or show the local application-specific Python version(s) # -# Usage: pyenv local <..> +# Usage: pyenv local [-f|--force] [ [...]] # pyenv local --unset # +# -f/--force Do not verify that the versions being set exist +# # Sets the local application-specific Python version(s) by writing the # version name to a file named `.python-version'. # @@ -36,12 +38,25 @@ if [ "$1" = "--complete" ]; then exec pyenv-versions --bare fi +while [[ $# -gt 0 ]] +do + case "$1" in + -f|--force) + FORCE=1 + shift + ;; + *) + break + ;; + esac +done + versions=("$@") if [ "$versions" = "--unset" ]; then rm -f .python-version elif [ -n "$versions" ]; then - pyenv-version-file-write .python-version "${versions[@]}" + pyenv-version-file-write ${FORCE:+-f }.python-version "${versions[@]}" else if version_file="$(pyenv-version-file "$PWD")"; then IFS=: versions=($(pyenv-version-file-read "$version_file")) diff --git a/libexec/pyenv-version-file-write b/libexec/pyenv-version-file-write index 7095140f31..db9e0f3b79 100755 --- a/libexec/pyenv-version-file-write +++ b/libexec/pyenv-version-file-write @@ -1,9 +1,25 @@ #!/usr/bin/env bash -# Usage: pyenv version-file-write +# Usage: pyenv version-file-write [-f|--force] [...] +# +# -f/--force Don't verify that the versions exist set -e [ -n "$PYENV_DEBUG" ] && set -x +while [[ $# -gt 0 ]] +do + case "$1" in + -f|--force) + FORCE=1 + shift + ;; + *) + break + ;; + esac +done + + PYENV_VERSION_FILE="$1" shift || true versions=("$@") @@ -14,7 +30,7 @@ if [ -z "$versions" ] || [ -z "$PYENV_VERSION_FILE" ]; then fi # Make sure the specified version is installed. -pyenv-prefix "${versions[@]}" >/dev/null +[[ -z $FORCE ]] && pyenv-prefix "${versions[@]}" >/dev/null # Write the version out to disk. # Create an empty file. Using "rm" might cause a permission error. diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index b3866dbd10..f7c57efb23 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -1,8 +1,25 @@ #!/usr/bin/env bash # Summary: Show the current Python version +# +# -f/--force (Internal) If a version doesn't exist, print it as is rather than produce an error + set -e [ -n "$PYENV_DEBUG" ] && set -x +while [[ $# -gt 0 ]] +do + case "$1" in + -f|--force) + FORCE=1 + shift + ;; + *) + break + ;; + esac +done + + if [ -z "$PYENV_VERSION" ]; then PYENV_VERSION_FILE="$(pyenv-version-file)" PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)" @@ -33,16 +50,20 @@ OLDIFS="$IFS" # Remove the explicit 'python-' prefix from versions like 'python-3.12'. normalised_version="${version#python-}" if version_exists "${version}" || [ "$version" = "system" ]; then - versions=("${versions[@]}" "${version}") + versions+=("${version}") elif version_exists "${normalised_version}"; then - versions=("${versions[@]}" "${normalised_version}") + versions+=("${normalised_version}") elif resolved_version="$(pyenv-latest -b "${version}")"; then - versions=("${versions[@]}" "${resolved_version}") + versions+=("${resolved_version}") elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then - versions=("${versions[@]}" "${resolved_version}") + versions+=("${resolved_version}") else - echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 - any_not_installed=1 + if [[ -n $FORCE ]]; then + versions+=("${normalised_version}") + else + echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 + any_not_installed=1 + fi fi done } diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 6f12761e25..4f01259602 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -96,7 +96,6 @@ else for version in "${nonexistent_versions[@]}"; do echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 done - exit 1 fi echo "pyenv: $PYENV_COMMAND: command not found" >&2 diff --git a/test/exec.bats b/test/exec.bats index 56a0f61e2b..b643d31e58 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -16,16 +16,22 @@ create_executable() { @test "fails with invalid version" { export PYENV_VERSION="3.4" - run pyenv-exec python -V - assert_failure "pyenv: version \`3.4' is not installed (set by PYENV_VERSION environment variable)" + run pyenv-exec nonexistent + assert_failure < .python-version - run pyenv-exec rspec - assert_failure "pyenv: version \`2.7' is not installed (set by $PWD/.python-version)" + run pyenv-exec nonexistent + assert_failure < .python-version mkdir -p "${PYENV_ROOT}/versions/1.2.3" diff --git a/test/version-file-write.bats b/test/version-file-write.bats index aa7100d675..1b62e97755 100644 --- a/test/version-file-write.bats +++ b/test/version-file-write.bats @@ -9,7 +9,7 @@ setup() { @test "invocation without 2 arguments prints usage" { run pyenv-version-file-write - assert_failure "Usage: pyenv version-file-write " + assert_failure "Usage: pyenv version-file-write [-f|--force] [...]" run pyenv-version-file-write "one" "" assert_failure } @@ -21,6 +21,13 @@ setup() { assert [ ! -e ".python-version" ] } +@test "setting nonexistent version succeeds with force" { + assert [ ! -e ".python-version" ] + run pyenv-version-file-write --force ".python-version" "2.7.6" + assert_success + assert [ -e ".python-version" ] +} + @test "writes value to arbitrary file" { mkdir -p "${PYENV_ROOT}/versions/2.7.6" assert [ ! -e "my-version" ] diff --git a/test/version-name.bats b/test/version-name.bats index 720f6c8634..285794e42e 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -73,6 +73,11 @@ SH assert_failure "pyenv: version \`1.2' is not installed (set by PYENV_VERSION environment variable)" } +@test "missing version with --force" { + PYENV_VERSION=1.2 run pyenv-version-name -f + assert_success "1.2" +} + @test "one missing version (second missing)" { create_version "3.5.1" PYENV_VERSION="3.5.1:1.2" run pyenv-version-name diff --git a/test/which.bats b/test/which.bats index e6c4ee69d3..cdcd24e309 100644 --- a/test/which.bats +++ b/test/which.bats @@ -71,7 +71,16 @@ create_executable() { @test "version not installed" { create_executable "3.4" "py.test" PYENV_VERSION=3.3 run pyenv-which py.test - assert_failure "pyenv: version \`3.3' is not installed (set by PYENV_VERSION environment variable)" + assert_failure < Date: Mon, 16 Dec 2024 21:36:14 +0300 Subject: [PATCH 0888/1324] Tolerate nonexistent versions from `pyenv-version-name` in `pyenv-which` Addendum to #3134 as per https://github.com/pyenv/pyenv/pull/3134#issuecomment-2545710044 --- libexec/pyenv-which | 2 +- test/which.bats | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 4f01259602..9ff3ddae38 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -59,7 +59,7 @@ if [ -z "$PYENV_COMMAND" ]; then fi OLDIFS="$IFS" -IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name)}) +IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name -f)}) IFS="$OLDIFS" declare -a nonexistent_versions diff --git a/test/which.bats b/test/which.bats index cdcd24e309..6582fddcd0 100644 --- a/test/which.bats +++ b/test/which.bats @@ -153,6 +153,21 @@ SH assert_success "${PYENV_ROOT}/versions/3.4/bin/python" } +@test "tolerates nonexistent versions from pyenv-version-name" { + mkdir -p "$PYENV_ROOT" + cat > "${PYENV_ROOT}/version" < Date: Wed, 18 Dec 2024 02:11:11 -0500 Subject: [PATCH 0889/1324] Add CPython 3.14.0a3 (#3135) --- plugins/python-build/share/python-build/3.14.0a2t | 2 -- .../python-build/share/python-build/{3.14.0a2 => 3.14.0a3} | 4 ++-- plugins/python-build/share/python-build/3.14.0a3t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0a2t rename plugins/python-build/share/python-build/{3.14.0a2 => 3.14.0a3} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0a3t diff --git a/plugins/python-build/share/python-build/3.14.0a2t b/plugins/python-build/share/python-build/3.14.0a2t deleted file mode 100644 index c866501729..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a2t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a2 diff --git a/plugins/python-build/share/python-build/3.14.0a2 b/plugins/python-build/share/python-build/3.14.0a3 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0a2 rename to plugins/python-build/share/python-build/3.14.0a3 index 4f47a14aee..0cf9021208 100644 --- a/plugins/python-build/share/python-build/3.14.0a2 +++ b/plugins/python-build/share/python-build/3.14.0a3 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.14.0a2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tar.xz#2ff9e10147342b3efd69f5cd9cc06ec46250f2a046587599d18e2cac69c05920" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a3.tar.xz#94349df207456a575a8867c20b4ca434f870e1920dcdcc8fdf797e1af49abe90" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.14.0a2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a2.tgz#b038eab7823e8a1c0500e3a26c95265656c2b8dd0bfa098aa341e9812be8f89c" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a3.tgz#6ecc4203d8de18c7295c4cdd012e4a4acff83261f8a99bdf15318af9bb1cc811" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0a3t b/plugins/python-build/share/python-build/3.14.0a3t new file mode 100644 index 0000000000..c975114226 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a3t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a3 From a1edb81e8e578ff41fc69ba420d8890dc3a4f931 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 18 Dec 2024 10:13:13 +0300 Subject: [PATCH 0890/1324] 2.4.23 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2a34c3e80a..c2c289695a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.4.23 +* README: explain using multiple versions by @Finkregh in https://github.com/pyenv/pyenv/pull/3126 +* Support PACKAGE_CPPFLAGS and PACKAGE_LDFLAGS by @native-api in https://github.com/pyenv/pyenv/pull/3130 +* Adjust suggested shell startup code to support Pyenv with Pyenv-Win in WSL by @native-api in https://github.com/pyenv/pyenv/pull/3132 +* Support nonexistent versions being present and set in a local .python-version by @native-api in https://github.com/pyenv/pyenv/pull/3134 +* Add CPython 3.14.0a3 by @nedbat in https://github.com/pyenv/pyenv/pull/3135 + ## Release v2.4.22 * Speed up building bundled OpenSSL by @native-api in https://github.com/pyenv/pyenv/pull/3124 * CI: add building modified scripts with bundled MacOS dependencies by @native-api in https://github.com/pyenv/pyenv/pull/3123 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 1680dac4a4..5b0626ad54 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.22" +version="2.4.23" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 38421ba6aa809cba8913447297f005f22f5f1fe2 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Sat, 21 Dec 2024 21:48:25 +0800 Subject: [PATCH 0891/1324] Add miniconda3-24.11.1-0 (#3138) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-24.11.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.11.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.11.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.11.1-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.11.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.11.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.11.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.11.1-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.11.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.11.1-0 new file mode 100644 index 0000000000..3e4721bc68 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.11.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.11.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.11.1-0-Linux-aarch64.sh#70fa20d714ba54114c41990a7222a49bd3c833a0f602bd0e0df507bb2f787035" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.11.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.11.1-0-Linux-s390x.sh#c5021ecb894cc7b1bb2d62f2156bdaf3e642235b501998bcc730024b07515c74" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.11.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.11.1-0-Linux-x86_64.sh#7a3cdbb78a642b2b6dd0687c9e09824e53330368ab57406e27d88e25c4fe4e40" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.11.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.11.1-0-MacOSX-arm64.sh#73d7eb2569e976c6da1946723a3b8bebf0f2aaccef80b28f8eef69fd835572b1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.11.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.11.1-0-MacOSX-x86_64.sh#2f8be5e7beeda8d161be2254d1d1d7e786ca8d11602bd1b7dde1134fcad365fa" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.11.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.11.1-0 new file mode 100644 index 0000000000..8139f67d09 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.11.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.11.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.11.1-0-Linux-aarch64.sh#a8846ade7a5ddd9b6a6546590054d70d1c2cbe4fbe8c79fb70227e8fd93ef9f8" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.11.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.11.1-0-Linux-s390x.sh#bb499b18dbcbb2d89b22f91fe26fe661f5ed1f1944fdc743560d69cd52a2468f" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.11.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.11.1-0-Linux-x86_64.sh#807774bae6cd87132094458217ebf713df436f64779faf9bb4c3d4b6615c1e3a" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.11.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.11.1-0-MacOSX-arm64.sh#862af4d7cb257219c6b280848049e09e1aff27acd06d5422359f2249f938e282" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.11.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.11.1-0-MacOSX-x86_64.sh#388f669ab95d659b4c97353f756ce93ed2000ec0114edaec9688f8541fa4bcab" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.11.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.11.1-0 new file mode 100644 index 0000000000..f3c8bd1102 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.11.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.11.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-Linux-aarch64.sh#9180a2f1fab799fd76e9ef914643269dcf5bad9d455623b905b87f5d39ae140f" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.11.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-Linux-s390x.sh#105bce6b0137f574147b8fdfd5e3a7d6c92f3ea9fbf3e0de61331ea43586e9af" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.11.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-Linux-x86_64.sh#636b209b00b6673471f846581829d4b96b9c3378679925a59a584257c3fef5a3" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.11.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-MacOSX-arm64.sh#9d5c5782d24a09075e45f131693d24907d8c45a4e6205c51d4d3a81b72dc5ad7" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.11.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.11.1-0-MacOSX-x86_64.sh#71419eaf7f0bc016c41e8e27815609e76f2d6bcfc39426c19ca5e5cf7a2ea36f" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.11.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.11.1-0 new file mode 100644 index 0000000000..2214c1fcf3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.11.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.11.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.11.1-0-Linux-aarch64.sh#35411dc715549d0a95f4814c4f318a3d0addfafc3a25fa7e89e2ba47e8d87b4d" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.11.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.11.1-0-Linux-s390x.sh#c130a7064c5c513c42280ec41a5f8c93aaab522ecd6bd0f2138c8c9f78d4f522" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.11.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.11.1-0-Linux-x86_64.sh#3ea8373098d72140e08aac9217822b047ec094eb457e7f73945af7c6f68bf6f5" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.11.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.11.1-0-MacOSX-arm64.sh#a8a07c4255882de2f132ed2d4cfaa3bdf89370de71ba8cd3914e013f5bffcc68" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.11.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.11.1-0-MacOSX-x86_64.sh#5ca59fa5a4835587ba6ea73169a7e55862771cf9b0618d0549b7b484fe1a2e67" "miniconda" verify_py39 + ;; +* ) + { 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 From c6973391f3c62e537a574517d5e8f098317aa5d6 Mon Sep 17 00:00:00 2001 From: Christian Fredrik Johnsen Date: Sun, 22 Dec 2024 13:23:51 +0100 Subject: [PATCH 0892/1324] pyenv-init | performance improvements (#3136) * perf: replace a series of if statements with a case block. Add error handling for case where unknown option is provided. Same setup as rbenv-init for reading arguments. * perf, docs: Recommend users to specify the shell for `pyenv init -` Speeds up the startup by about 40% (in local testing, from ~50ms to ~30ms). Reflect this in `pyenv init` hint text. * style: remove unnecessary `root` variable in pyenv-init * style: remove unnecessary variable declarations at the top of file in pyenv-init. * perf: replace `cat <<` calls with `echo` The builtin `echo` is about 100x faster. In tests, saves about 2-3ms. * docs: document the `pyenv init - ` performance boost in the Advanced Configuration section. * style: test_helper.bash: avoid unnecessary ".." in produced PATH * docs: fix a false statement about completions location in the Advanced Configuration section. --- README.md | 28 ++++++----- libexec/pyenv-init | 111 ++++++++++++++++++------------------------ test/init.bats | 11 ++--- test/test_helper.bash | 2 +- 4 files changed, 69 insertions(+), 83 deletions(-) diff --git a/README.md b/README.md index 5eebb3c4a5..2c3e07633a 100644 --- a/README.md +++ b/README.md @@ -191,27 +191,27 @@ See [Advanced configuration](#advanced-configuration) for details and more confi ```bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc - echo 'eval "$(pyenv init -)"' >> ~/.bashrc + echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc ``` - 3. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. + 2. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. If you have none of these, create a `~/.profile` and add the commands there. * to add to `~/.profile`: ``` bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init -)"' >> ~/.profile + echo 'eval "$(pyenv init - bash)"' >> ~/.profile ``` * to add to `~/.bash_profile`: ```bash echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - echo 'eval "$(pyenv init -)"' >> ~/.bash_profile + echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile ``` **Bash warning**: There are some systems where the `BASH_ENV` variable is configured to point to `.bashrc`. On such systems, you should almost certainly put the - `eval "$(pyenv init -)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you + `eval "$(pyenv init - bash)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you may observe strange behaviour, such as `pyenv` getting into an infinite loop. See [#264](https://github.com/pyenv/pyenv/issues/264) for details. @@ -224,7 +224,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi ```zsh echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc - echo 'eval "$(pyenv init -)"' >> ~/.zshrc + echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc ``` If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. @@ -248,7 +248,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi 3. Now, add this to `~/.config/fish/config.fish`: ~~~ fish - pyenv init - | source + pyenv init - fish | source ~~~
@@ -656,23 +656,25 @@ for the environment variables that control Pyenv's behavior. extra commands into your shell. Coming from RVM, some of you might be opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does: +1. **Finds current shell.** + `pyenv init` figures out what shell you are using, as the exact commands of `eval "$(pyenv init -)"` vary depending on shell. Specifying which shell you are using (e.g. `eval "$(pyenv init - bash)"`) is preferred, because it reduces launch time significantly. -1. **Sets up the shims path.** This is what allows Pyenv to intercept +2. **Sets up the shims path.** This is what allows Pyenv to intercept and redirect invocations of `python`, `pip` etc. transparently. It prepends `$(pyenv root)/shims` to your `$PATH`. It also deletes any other instances of `$(pyenv root)/shims` on `PATH` which allows to invoke `eval "$(pyenv init -)"` multiple times without getting duplicate `PATH` entries. -2. **Installs autocompletion.** This is entirely optional but pretty - useful. Sourcing `$(pyenv root)/completions/pyenv.bash` will set that +3. **Installs autocompletion.** This is entirely optional but pretty + useful. Sourcing `/completions/pyenv.bash` will set that up. There are also completions for Zsh and Fish. -3. **Rehashes shims.** From time to time you'll need to rebuild your +4. **Rehashes shims.** From time to time you'll need to rebuild your shim files. Doing this on init makes sure everything is up to date. You can always run `pyenv rehash` manually. -4. **Installs `pyenv` into the current shell as a shell function.** +5. **Installs `pyenv` into the current shell as a shell function.** This bit is also optional, but allows pyenv and plugins to change variables in your current shell. This is required for some commands like `pyenv shell` to work. @@ -681,7 +683,7 @@ opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does: for some reason you need `pyenv` to be a real script rather than a shell function, you can safely skip it. -`eval "$(pyenv init --path)"` only does items 1 and 3. +`eval "$(pyenv init --path)"` only does items 2 and 4. To see exactly what happens under the hood for yourself, run `pyenv init -` or `pyenv init --path`. diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 492360e6a5..19d3ce1a54 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -20,37 +20,32 @@ if [ "$1" = "--complete" ]; then fi mode="help" -no_rehash="" -no_push_path="" -for args in "$@" -do - if [ "$args" = "-" ]; then - mode="print" - shift - fi - - if [ "$args" = "--path" ]; then - mode="path" - shift - fi - - if [ "$args" = "--detect-shell" ]; then - mode="detect-shell" - shift - fi - if [ "$args" = "--no-push-path" ]; then - no_push_path=1 - shift - fi - - if [ "$args" = "--no-rehash" ]; then - no_rehash=1 - shift - fi +while [ "$#" -gt 0 ]; do + case "$1" in + -) + mode="print" + ;; + --path) + mode="path" + ;; + --detect-shell) + mode="detect-shell" + ;; + --no-push-path) + no_push_path=1 + ;; + --no-rehash) + no_rehash=1 + ;; + *) + shell="$1" + ;; + esac + shift done -shell="$1" +# If shell is not provided, detect it. if [ -z "$shell" ]; then shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)" shell="${shell%% *}" @@ -60,8 +55,6 @@ if [ -z "$shell" ]; then shell="${shell%%-*}" fi -root="${0%/*}/.." - function main() { case "$mode" in "help") @@ -150,7 +143,7 @@ function help_() { echo "# Load pyenv automatically by appending" echo "# the following to ~/.config/fish/config.fish:" echo - echo 'pyenv init - | source' + echo 'pyenv init - fish | source' echo ;; * ) @@ -166,7 +159,7 @@ function help_() { echo echo 'export PYENV_ROOT="$HOME/.pyenv"' echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' - echo 'eval "$(pyenv init -)"' + echo 'eval "$(pyenv init -'$shell')"' ;; esac echo @@ -244,7 +237,7 @@ function print_env() { } function print_completion() { - completion="${root}/completions/pyenv.${shell}" + completion="${0%/*/*}/completions/pyenv.${shell}" if [ -r "$completion" ]; then echo "source '$completion'" fi @@ -260,52 +253,44 @@ function print_shell_function() { commands=(`pyenv-commands --sh`) case "$shell" in fish ) - cat </dev/null" } - @test "setup shell completions" { - root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" + exec_root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" run pyenv-init - bash assert_success - assert_line "source '${root}/test/../libexec/../completions/pyenv.bash'" + assert_line "source '${exec_root}/completions/pyenv.bash'" } @test "detect parent shell" { @@ -63,16 +62,16 @@ OUT } @test "setup shell completions (fish)" { - root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" + exec_root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" run pyenv-init - fish assert_success - assert_line "source '${root}/test/../libexec/../completions/pyenv.fish'" + assert_line "source '${exec_root}/completions/pyenv.fish'" } @test "fish instructions" { run pyenv-init fish assert [ "$status" -eq 1 ] - assert_line 'pyenv init - | source' + assert_line 'pyenv init - fish | source' } @test "shell detection for installer" { diff --git a/test/test_helper.bash b/test/test_helper.bash index 4e32df30e2..51dcd83dc3 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -21,7 +21,7 @@ if [ -z "$PYENV_TEST_DIR" ]; then PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin PATH="${PYENV_TEST_DIR}/bin:$PATH" - PATH="${BATS_TEST_DIRNAME}/../libexec:$PATH" + PATH="${BATS_TEST_DIRNAME%/*}/libexec:$PATH" PATH="${BATS_TEST_DIRNAME}/libexec:$PATH" PATH="${PYENV_ROOT}/shims:$PATH" export PATH From 25c966eb4fd946b0a31eb92575ced3038ab0f385 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 22 Dec 2024 15:59:52 +0300 Subject: [PATCH 0893/1324] add_miniconda.py: future-proof, update defaults, change -v * future-proof PyVersion * fix handling "-latest" * Update default versions * change -v argument to bool --- plugins/python-build/scripts/add_miniconda.py | 75 ++++++++++++------- 1 file changed, 46 insertions(+), 29 deletions(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 3ecb80d6be..32b191f803 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -11,15 +11,18 @@ but otherwise, takes the latest sub-patch release for given OS/arch. Assumes all miniconda3 releases < 4.7 default to python 3.6, and anything else 3.7. """ +import logging +import re +import string +import sys import textwrap from argparse import ArgumentParser from collections import defaultdict +from dataclasses import dataclass from enum import Enum from functools import total_ordering from pathlib import Path from typing import NamedTuple, List, Optional, DefaultDict, Dict -import logging -import string import requests_html @@ -90,7 +93,7 @@ class Flavor(StrEnum): ANACONDA = "anaconda" MINICONDA = "miniconda" - + class TFlavor(StrEnum): ANACONDA = "Anaconda" MINICONDA = "Miniconda" @@ -102,21 +105,37 @@ class Suffix(StrEnum): NONE = "" -class PyVersion(StrEnum): - PY27 = "py27" - PY36 = "py36" - PY37 = "py37" - PY38 = "py38" - PY39 = "py39" - PY310 = "py310" - PY311 = "py311" +PyVersion = None +class PyVersionMeta(type): + def __getattr__(self, name): + """Generate PyVersion.PYXXX on demand to future-proof it""" + if PyVersion is not None: + return PyVersion(name.lower()) + return super(PyVersionMeta,self).__getattr__(self, name) + + +@dataclass(frozen=True) +class PyVersion(metaclass=PyVersionMeta): + major: str + minor: str + + def __init__(self, value): + (major, minor) = re.match(r"py(\d)(\d+)", value).groups() + object.__setattr__(self, "major", major) + object.__setattr__(self, "minor", minor) + + @property + def value(self): + return f"py{self.major}{self.minor}" def version(self): - first, *others = self.value[2:] - return f"{first}.{''.join(others)}" + return f"{self.major}.{self.minor}" def version_info(self): - return tuple(int(n) for n in self.version().split(".")) + return (self.major, self.minor) + + def __str__(self): + return self.value @total_ordering @@ -190,10 +209,15 @@ def default_py_version(self): # https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-python.html if v < (4, 7): return PyVersion.PY36 - else: + if v < (4, 8): return PyVersion.PY37 + else: + # since 4.8, Miniconda specifies versions explicitly in the file name + return None if self.flavor == "anaconda": # https://docs.anaconda.com/free/anaconda/reference/release-notes/ + if v >= (2024,6): + return PyVersion.PY312 if v >= (2023,7): return PyVersion.PY311 if v >= (2023,3): @@ -247,7 +271,7 @@ def from_filestem(cls, stem, md5, repo, py_version=None): md5, repo, ) - if py_version is None: + if py_version is None and py_ver is None and ver != "latest": spec = spec.with_py_version(spec.version.default_py_version()) return spec @@ -296,8 +320,8 @@ def get_existing_condas(name): if v.version_str != "latest": logger.debug("Found existing %(name)s version %(v)s", locals()) yield v - except ValueError: - logger.error("Unable to parse existing version %s", entry_name) + except ValueError as e: + logger.error("Unable to parse existing version %s: %s", entry_name, e) def get_available_condas(name, repo): @@ -348,19 +372,12 @@ def key_fn(spec: CondaSpec): help="Do not write scripts, just report them to stdout", ) parser.add_argument( - "-v", "--verbose", action="count", default=0, + "-v", "--verbose", action="store_true", default=0, help="Increase verbosity of logging", ) parsed = parser.parse_args() - log_level = { - 0: logging.WARNING, - 1: logging.INFO, - 2: logging.DEBUG, - }.get(parsed.verbose, logging.DEBUG) - logging.basicConfig(level=log_level) - if parsed.verbose < 3: - logging.getLogger("requests").setLevel(logging.WARNING) + logging.basicConfig(level=logging.DEBUG if parsed.verbose else logging.INFO) existing_versions = set() available_specs = set() @@ -377,7 +394,7 @@ def key_fn(spec: CondaSpec): for s in sorted(available_specs, key=key_fn): key = s.version vv = key.version_str.info() - + reason = None if key in existing_versions: reason = "already exists" @@ -385,7 +402,7 @@ def key_fn(spec: CondaSpec): reason = "too old" elif len(key.version_str.info()) >= 4 and "-" not in key.version_str: reason = "ignoring hotfix releases" - + if reason: logger.debug("Ignoring version %(s)s (%(reason)s)", locals()) continue From ac2f882aab521583417e1fc665da8eaf1c97782b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 22 Dec 2024 16:19:59 +0300 Subject: [PATCH 0894/1324] Fix scripts not getting a Python version for `verify_pyXXX` --- plugins/python-build/scripts/add_miniconda.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 32b191f803..db2acc6b0d 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -213,7 +213,7 @@ def default_py_version(self): return PyVersion.PY37 else: # since 4.8, Miniconda specifies versions explicitly in the file name - return None + raise ValueError("Miniconda 4.8+ is supposed to specify a Python version explicitly") if self.flavor == "anaconda": # https://docs.anaconda.com/free/anaconda/reference/release-notes/ if v >= (2024,6): @@ -270,6 +270,7 @@ def from_filestem(cls, stem, md5, repo, py_version=None): SupportedArch(arch), md5, repo, + py_ver ) if py_version is None and py_ver is None and ver != "latest": spec = spec.with_py_version(spec.version.default_py_version()) From 51937ccc1974af1caca3774b55f5214ffe6e6796 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Dec 2024 17:04:32 +0300 Subject: [PATCH 0895/1324] Add miniconda3-24.3.0-0 (#3139) --- .../python-build/miniconda3-3.10-24.3.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-24.3.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-24.3.0-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-24.3.0-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-24.3.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-24.3.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-24.3.0-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-24.3.0-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-24.3.0-0 b/plugins/python-build/share/python-build/miniconda3-3.10-24.3.0-0 new file mode 100644 index 0000000000..746f696af9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-24.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_24.3.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Linux-aarch64.sh#cacbd0c4b829dae73ddbcee6b30674dc7aa20bf6dea720929fb01d4b6279f743" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_24.3.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Linux-s390x.sh#fb0f113b0ad2eb9a05b017f49d4a27960ff9ec3d8ec0b580b79efb8c84d15d8e" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_24.3.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-Linux-x86_64.sh#def595b1b182749df0974cddb5c8befe70664ace16403d7a7bf54467be5ea48b" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_24.3.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-MacOSX-arm64.sh#ceae63e7c99b4ff33ddb1a9973956d829d4a00d39f1f7c6e2056e0e076059535" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_24.3.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_24.3.0-0-MacOSX-x86_64.sh#094c5a94818caf41deba41411876c3cffa918efdf8ada40dc32bcc535d181c78" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-24.3.0-0 b/plugins/python-build/share/python-build/miniconda3-3.11-24.3.0-0 new file mode 100644 index 0000000000..973b9402c1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-24.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_24.3.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.3.0-0-Linux-aarch64.sh#49082882752167cdea60e1aeedac7b73136bdfdd63b9bb3aca3c038901544458" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_24.3.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.3.0-0-Linux-s390x.sh#8e52dd1300c9462367d303a596a931e6ef8db422c7c79194efa6fdb152c92b61" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_24.3.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.3.0-0-Linux-x86_64.sh#4da8dde69eca0d9bc31420349a204851bfa2a1c87aeb87fe0c05517797edaac4" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_24.3.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.3.0-0-MacOSX-arm64.sh#b7663626fedf8395d3fed78383b08060a13bd6747003bdb2a39220407f55cf65" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_24.3.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_24.3.0-0-MacOSX-x86_64.sh#fdd6294aaa0472f7ddeac89deacceec1469e76bd2a16ac11f37b4ab584fe5089" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-24.3.0-0 b/plugins/python-build/share/python-build/miniconda3-3.12-24.3.0-0 new file mode 100644 index 0000000000..95880cec9a --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-24.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_24.3.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.3.0-0-Linux-aarch64.sh#05f70cbc89b6caf84e22db836f7696a16b617992eb23d6102acf7651eb132365" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_24.3.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.3.0-0-Linux-s390x.sh#b601cb8e3ea65a4ed1aecd96d4f3d14aca5b590b2e1ab0ec5c04c825f5c5e439" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_24.3.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.3.0-0-Linux-x86_64.sh#96a44849ff17e960eeb8877ecd9055246381c4d4f2d031263b63fa7e2e930af1" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_24.3.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.3.0-0-MacOSX-arm64.sh#72d4e9198a6884c0bd86cce2b4a3e8abb05415776e3b142c4b1de625bbaf4c50" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_24.3.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_24.3.0-0-MacOSX-x86_64.sh#fd71a4bf03fbb21d4b4d25245f17bef6308dfec478e901a60594dfa02e4605eb" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-24.3.0-0 b/plugins/python-build/share/python-build/miniconda3-3.9-24.3.0-0 new file mode 100644 index 0000000000..8e28547a3c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-24.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_24.3.0-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.3.0-0-Linux-aarch64.sh#860f532a33501cf0eccc2677048e21db4a12151938d181821af3e5d30e2dc390" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_24.3.0-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.3.0-0-Linux-s390x.sh#1570e27adba2dcc24b182c21cd4e793ab5719aa5b1f7f8e29c16ec74d6d9a16f" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_24.3.0-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.3.0-0-Linux-x86_64.sh#1c3d44e987dc56c7d8954419fa1a078be5ddbc293d8cb98b184a23f9a270faad" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_24.3.0-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.3.0-0-MacOSX-arm64.sh#f091e4e2d7c2521d40c8c2e561c344a401cf9900e4efa122bf1c93fd6ae5cc9c" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_24.3.0-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_24.3.0-0-MacOSX-x86_64.sh#ed7cfddd313f3ec568f95abae38b337ebf339cddd378ee2f91c86e5da53374e5" "miniconda" verify_py39 + ;; +* ) + { 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 From e0504fc2f88febdc45fdfb82851f672f87e7e797 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 22 Dec 2024 20:43:04 +0300 Subject: [PATCH 0896/1324] add_miniforge.py: Support different Python version lines, improvements * report more progress * don't download SHA files for unsupported architectures --- plugins/python-build/scripts/add_miniforge.py | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index bd2c91cfc9..54f06e0837 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -11,7 +11,6 @@ logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO')) MINIFORGE_REPO = 'conda-forge/miniforge' -PYTHON_VERSION = '310' DISTRIBUTIONS = ['miniforge', 'mambaforge'] install_script_fmt = """ @@ -38,7 +37,7 @@ out_dir: Path = here.parent.parent / "share" / "python-build" def download_sha(url): - logger.debug('Downloading SHA file %(url)s', locals()) + logger.info('Downloading SHA file %(url)s', locals()) tup = tuple(reversed(requests.get(url).text.replace('./', '').rstrip().split())) logger.debug('Got %(tup)s', locals()) return tup @@ -56,7 +55,7 @@ def create_spec(filename, sha, url): 'filename': filename, 'sha': sha, 'url': url, - 'py_version': PYTHON_VERSION, + 'py_version': py_version(version), 'flavor': flavor, 'os': os, 'arch': arch, @@ -67,13 +66,29 @@ def create_spec(filename, sha, url): return spec +def py_version(release): + """Suffix for `verify_pyXXX` to call in the generated build script""" + release_line = tuple(int(part) for part in release.split(".")[:2]) + # current version: mentioned under https://github.com/conda-forge/miniforge?tab=readme-ov-file#miniforge3 + # transition points: + # https://github.com/conda-forge/miniforge/blame/main/Miniforge3/construct.yaml + # look for "- python " in non-pypy branch and which tag the commit is first in + if release_line >= (24,5): + # yes, they jumped from 3.10 directly to 3.12 + # https://github.com/conda-forge/miniforge/commit/bddad0baf22b37cfe079e47fd1680fdfb2183590 + return "312" + if release_line >= (4,14): + return "310" + raise ValueError("Bundled Python version unknown for release `%s'"%release) + def supported(filename): return ('pypy' not in filename) and ('Windows' not in filename) def add_version(release): tag_name = release['tag_name'] download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] } - shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and tag_name in name]) + # can assume that sha files are named similar to release files so can also check supported(on their names) + shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and supported(os.path.basename(name)) and tag_name in name]) specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)] for distribution in DISTRIBUTIONS: From 5d80be09cb62f269d40cbfd36c7e64bd63168ec5 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Dec 2024 22:19:24 +0300 Subject: [PATCH 0897/1324] CI: only run macos_build_bundled_dependencies and ubuntu_build_tar_gz for CPython (#3141) Only CPython scripts use bundled dependencies for MacOS and two alternative tarballs --- .github/workflows/modified_scripts_build.yml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index e49e9754b5..1bef9cbd18 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -19,9 +19,16 @@ jobs: echo "versions<<$EOF" >> $GITHUB_ENV; echo "$versions" >> $GITHUB_ENV; echo "$EOF" >> $GITHUB_ENV; + + versions_cpython_only=$(grep -Ee '^[[:digit:]]' <<<"$version") + EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); + echo "versions_cpython_only<<$EOF" >> $GITHUB_ENV; + echo $versions_cpython_only >> $GITHUB_ENV; + echo "$EOF" >> $GITHUB_ENV; - id: modified-versions run: | echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT + echo "versions_cpython_only=`echo "${{ env.versions_cpython_only }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT macos_build: needs: discover_modified_scripts if: needs.discover_modified_scripts.outputs.versions != '[""]' @@ -84,11 +91,11 @@ jobs: macos_build_bundled_dependencies: needs: discover_modified_scripts - if: needs.discover_modified_scripts.outputs.versions != '[""]' + if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' strategy: fail-fast: false matrix: - python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} os: ["macos-13", "macos-14"] runs-on: ${{ matrix.os }} steps: @@ -203,11 +210,11 @@ jobs: fi ubuntu_build_tar_gz: needs: discover_modified_scripts - if: needs.discover_modified_scripts.outputs.versions != '[""]' + if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' strategy: fail-fast: false matrix: - python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} + python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} os: ["ubuntu-20.04", "ubuntu-22.04"] runs-on: ${{ matrix.os }} steps: From 04b440df0bd51156f00675d82c4e97bd3115959f Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Dec 2024 23:06:33 +0300 Subject: [PATCH 0898/1324] Add miniforge3 and mambaforge3 24.1.2-0, 24.3.0-0, 24.5.0-0, 24.7.1-0, 24.7.1-1, 24.7.1-2, 24.9.0-0, 24.9.2-0, 24.11.0-0, 24.11.0-1 (#3142) --- .../share/python-build/mambaforge-24.1.2-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.11.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.11.0-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.3.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.5.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.7.1-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.7.1-1 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.7.1-2 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.9.0-0 | 25 +++++++++++++++++++ .../share/python-build/mambaforge-24.9.2-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.1.2-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.11.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.11.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.5.0-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.7.1-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.7.1-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.7.1-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.9.0-0 | 25 +++++++++++++++++++ 18 files changed, 450 insertions(+) create mode 100644 plugins/python-build/share/python-build/mambaforge-24.1.2-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.11.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.11.0-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.3.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.5.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.7.1-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.7.1-1 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.7.1-2 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.9.0-0 create mode 100644 plugins/python-build/share/python-build/mambaforge-24.9.2-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.1.2-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.5.0-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.7.1-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.7.1-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.9.0-0 diff --git a/plugins/python-build/share/python-build/mambaforge-24.1.2-0 b/plugins/python-build/share/python-build/mambaforge-24.1.2-0 new file mode 100644 index 0000000000..902f0c1cf7 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.1.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.1.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Mambaforge-24.1.2-0-Linux-aarch64.sh#937b2dab9a988d83a4a9e574148d1410204bdb3d137905083570e5a1a0a995e4" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.1.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Mambaforge-24.1.2-0-Linux-ppc64le.sh#68b28e441171cef9e4da81a1a99264a4b41c4bf99f8c132af9ec38c67fd41694" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.1.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Mambaforge-24.1.2-0-Linux-x86_64.sh#b172a8d2ff1c452768dd1beffb8d61880dde89f14e855de7e2459963af33828c" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.1.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Mambaforge-24.1.2-0-MacOSX-arm64.sh#b828ec3189393501d859b001f0dcfdf953140bb9506875ae997eb7ff641f6d19" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.1.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Mambaforge-24.1.2-0-MacOSX-x86_64.sh#3d3f50d7fa16b65ec507c062e6a337ba9c812650c796eb06495930b8cdd5d471" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.11.0-0 b/plugins/python-build/share/python-build/mambaforge-24.11.0-0 new file mode 100644 index 0000000000..c490e0aef7 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.11.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Mambaforge-24.11.0-0-Linux-aarch64.sh#5816a4a11f08b0caba33c38365f65d81f3659fd73da498a87ab4510a58a9abd5" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Mambaforge-24.11.0-0-Linux-ppc64le.sh#1d530dd326f9b8e29a8005cba28a239f00c7979337d642cc89531b4755fb69b7" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Mambaforge-24.11.0-0-Linux-x86_64.sh#ae30935839c9e88458ce0605a251fa3f1ade623e3b9709f859460545577779f1" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Mambaforge-24.11.0-0-MacOSX-arm64.sh#5535232048d9e2430f165153636bbf781f21128132908e9db455130198c79dc5" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Mambaforge-24.11.0-0-MacOSX-x86_64.sh#f3849b245e724c0d3efde9deb125041b6a78aff69867691e1f7ecff79c40cbd1" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.11.0-1 b/plugins/python-build/share/python-build/mambaforge-24.11.0-1 new file mode 100644 index 0000000000..baf39c1626 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.11.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Mambaforge-24.11.0-1-Linux-aarch64.sh#7a02a83679a04e164a7ed5a95fe18688032012a4619a2dba6051dada20a437c3" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.11.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Mambaforge-24.11.0-1-Linux-ppc64le.sh#7f985f2dba06a62dcebeaf832ac926ba85707552134b5be310e9a28e869550e1" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.11.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Mambaforge-24.11.0-1-Linux-x86_64.sh#fad8afeb7a0247e8e8fd7a82e9306c694421d2e9b6b341752c73737fbebe4d73" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.11.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Mambaforge-24.11.0-1-MacOSX-arm64.sh#30d47bb61b337d2a2e166cc56923267089a6be526faf9677666af178a0059f0d" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.11.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Mambaforge-24.11.0-1-MacOSX-x86_64.sh#2303dcacb52860660e3f290d06e9313acb9e8826bfa6c1ca10972fedc9e3b388" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.3.0-0 b/plugins/python-build/share/python-build/mambaforge-24.3.0-0 new file mode 100644 index 0000000000..b9d1a020de --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.3.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.3.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-Linux-aarch64.sh#7f2a0282819f1a12bb44628a836b96fe9dfb21a5920fb8331325c47f91bf9a81" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.3.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-Linux-ppc64le.sh#4550d7cb6ea9bb145ae2aae7b02734a642ef24bda0abfc9b1b6d8d6abf0b7749" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.3.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-Linux-x86_64.sh#0be3654cc3b9c43d3aeeeca5efe6d2f31e9f7711702f3818529b367b3db677fb" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.3.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-MacOSX-arm64.sh#de7c7f229d05104de802f1f729a595736b08139c4ae59ba8ba0049050d63c98f" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.3.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.3.0-0/Mambaforge-24.3.0-0-MacOSX-x86_64.sh#5455900cf1298f21333b7c0d1ec159952e1ef5426563cc97eb7e42053d608afc" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.5.0-0 b/plugins/python-build/share/python-build/mambaforge-24.5.0-0 new file mode 100644 index 0000000000..c220cb156d --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.5.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.5.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Mambaforge-24.5.0-0-Linux-aarch64.sh#a19c4d40dc4aa9084d729f3fbed36fd7a741bb8a0ef4f7df4bc92c5157817ba8" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.5.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Mambaforge-24.5.0-0-Linux-ppc64le.sh#db6432e76bac0547d65f06e1e0559a0d12147e9020e0cce99c8b07a9c8f2824d" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.5.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Mambaforge-24.5.0-0-Linux-x86_64.sh#afee51df9c542d2e1bef249ad167197ba90fd4386fd32a63383dc95efba4bdfe" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.5.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Mambaforge-24.5.0-0-MacOSX-arm64.sh#88514feaad5bf03605242bd4e767829ad9695587ef51621329343d9960771d2b" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.5.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Mambaforge-24.5.0-0-MacOSX-x86_64.sh#1dfb244bce67bc6d9c0900cce2bf9d9feaf66ba60e811b7c98c6e580394d0ccc" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.7.1-0 b/plugins/python-build/share/python-build/mambaforge-24.7.1-0 new file mode 100644 index 0000000000..10b1acc108 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.7.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.7.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Mambaforge-24.7.1-0-Linux-aarch64.sh#09221afebba644eabccb5a83a92ba7e1bf88ff17171f80f77f95aa81cad225cc" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.7.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Mambaforge-24.7.1-0-Linux-ppc64le.sh#1ba05b444bea703097054a25aee2ebb7b04236632791f08f28db82491e005b52" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.7.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Mambaforge-24.7.1-0-Linux-x86_64.sh#e72ecc1f1b170ee804da298e54ed616ce82543ce84a8b83f63cb0ada2e4bfa50" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.7.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Mambaforge-24.7.1-0-MacOSX-arm64.sh#204be9ff318a5b23f9466f8bbbf18f7e180c6ed393ffc2a9859d8ab06c474248" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.7.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Mambaforge-24.7.1-0-MacOSX-x86_64.sh#668e69e89e41c5e9bae4431cf4040346eb6e484831577a28795c44039f70798d" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.7.1-1 b/plugins/python-build/share/python-build/mambaforge-24.7.1-1 new file mode 100644 index 0000000000..05e22e4162 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.7.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.7.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Mambaforge-24.7.1-1-Linux-aarch64.sh#34ea804e678d71c747d5a7fc99f97ffea395252c8acaf0c66e6dc6812585573b" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.7.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Mambaforge-24.7.1-1-Linux-ppc64le.sh#3ee3e1d127adeea1950ed1b73ccbc7e4d9f2a25e98f5a18c09e8a3bb8a905d05" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.7.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Mambaforge-24.7.1-1-Linux-x86_64.sh#7b47af948c8a5d786bc7036eb918ba1254273a820bacd83596316919cd097a14" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.7.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Mambaforge-24.7.1-1-MacOSX-arm64.sh#5994a2ad9cd40b2c79cc67173b9be42ec04b7b5d65ad17443bd67d68740bc403" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.7.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Mambaforge-24.7.1-1-MacOSX-x86_64.sh#4fc2637e40282562a1139827cf36e98a71dfdd9b3306967210f9d02badf65447" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.7.1-2 b/plugins/python-build/share/python-build/mambaforge-24.7.1-2 new file mode 100644 index 0000000000..e5ccb946f9 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.7.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.7.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Mambaforge-24.7.1-2-Linux-aarch64.sh#fd99046ef2394198c56df8988f50bbd18967edbc36d7fb29a4814f46ee5ab210" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.7.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Mambaforge-24.7.1-2-Linux-ppc64le.sh#3a09b99214c47d744c1e80a52de3e26b4a0420463cb50bade04b454af8ace591" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.7.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Mambaforge-24.7.1-2-Linux-x86_64.sh#4ce9db89d22e3ebd4e5c5d0b745613e25dcef79fba4d67760b09d76f15020d4c" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.7.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Mambaforge-24.7.1-2-MacOSX-arm64.sh#5920c685a6bedb7d71fe0caafd5fafdb41a664ff6f41ee637fd683e283e4d771" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.7.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Mambaforge-24.7.1-2-MacOSX-x86_64.sh#ec0ec07816a97080443472e052a6777c1e3870a83cadba1254bfa3bc60f65a6c" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.9.0-0 b/plugins/python-build/share/python-build/mambaforge-24.9.0-0 new file mode 100644 index 0000000000..d93ef1c8f3 --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.9.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.9.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Mambaforge-24.9.0-0-Linux-aarch64.sh#2d83f58793e9e303746747a683833aec5b9178fb1a313a3f9a56df2d319e23a5" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.9.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Mambaforge-24.9.0-0-Linux-ppc64le.sh#cc083e40b1891611b26b0f63b5df3422cb4f8e1a29204f55caea514ead528eb2" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.9.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Mambaforge-24.9.0-0-Linux-x86_64.sh#77fb505f6266ffa1b5d59604cf6ba25948627e908928cbff148813957b1c28af" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.9.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Mambaforge-24.9.0-0-MacOSX-arm64.sh#ceb3dac98c1618f652aed493dc9488155ac7ca2c8abaccd18b93e58034a462c6" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.9.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Mambaforge-24.9.0-0-MacOSX-x86_64.sh#046d8eedabafc798c88f3764e71b6ca22728ccbf04806b68450421cb6ebdaae6" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/mambaforge-24.9.2-0 b/plugins/python-build/share/python-build/mambaforge-24.9.2-0 new file mode 100644 index 0000000000..25c39a997d --- /dev/null +++ b/plugins/python-build/share/python-build/mambaforge-24.9.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Mambaforge-24.9.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Mambaforge-24.9.2-0-Linux-aarch64.sh#f142244dd08dc1a7dbb95a48f22e2c0cba01602bc0b6b0425520460d278c2f4d" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Mambaforge-24.9.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Mambaforge-24.9.2-0-Linux-ppc64le.sh#0c442d49787dea24847690e85744566cc901641b2c0ffd3f4e6579c9c4306a94" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Mambaforge-24.9.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Mambaforge-24.9.2-0-Linux-x86_64.sh#9e122fbb925a96011b876fcf118d70c55cbe982b6ee001fe23aa8a2600d649d1" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Mambaforge-24.9.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Mambaforge-24.9.2-0-MacOSX-arm64.sh#85f1c04493513a4552a14ed32b785c0b5484ecfafa827ef413605fd20e5d5cea" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Mambaforge-24.9.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.2-0/Mambaforge-24.9.2-0-MacOSX-x86_64.sh#f845ed82244fe553dc4d1b3a7c134e3c0ede26a84d2d279cfa93bdcb0fc739b0" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Mambaforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.1.2-0 b/plugins/python-build/share/python-build/miniforge3-24.1.2-0 new file mode 100644 index 0000000000..30594ac57f --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.1.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.1.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Miniforge3-24.1.2-0-Linux-aarch64.sh#f881e2fa24aa898c25fac3250ccb213e8b892fdd95851f000dce93c419e8f89a" "miniconda" verify_py310 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.1.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Miniforge3-24.1.2-0-Linux-ppc64le.sh#858b9acbcca1e3f67298a56095f547f2c540d79e1020918cf0d8d6a8af407542" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.1.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Miniforge3-24.1.2-0-Linux-x86_64.sh#dbadb808edf4da00af35d888d3eeebbfdce71972b60bf4b16dbacaee2ab57f28" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.1.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Miniforge3-24.1.2-0-MacOSX-arm64.sh#b372d2189e5752e92a4b4bbc4a91b8a08a4f0612d39c0762111c8dd60914b1c7" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.1.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.1.2-0/Miniforge3-24.1.2-0-MacOSX-x86_64.sh#e447e7e0173e94ea8725a4c6675c29bcd3082f8fff7948b47e05af72b12d1261" "miniconda" verify_py310 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.0-0 b/plugins/python-build/share/python-build/miniforge3-24.11.0-0 new file mode 100644 index 0000000000..fe4c137ddb --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Miniforge3-24.11.0-0-Linux-aarch64.sh#47cfd3caf3a0a6f56ebbfc7da775306fe076b8e49b14d3fd88b5463ab324c185" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Miniforge3-24.11.0-0-Linux-ppc64le.sh#877e3992041e36f49ce16681e5b24e23617ad044d1a077cf21b5cce90896e244" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Miniforge3-24.11.0-0-Linux-x86_64.sh#5fa69e4294be07229a94a1c1e8073fbf63894c757c2136f98c87b48f9d458793" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Miniforge3-24.11.0-0-MacOSX-arm64.sh#3c7c115de0ed6103b7d2e5c1fe969c2c9fd3aec4a454c1d5aa9b5721414413e0" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-0/Miniforge3-24.11.0-0-MacOSX-x86_64.sh#1f0527ec14784de0766d8405a674868e51afb869ea16c915fb2672256209ecfd" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.0-1 b/plugins/python-build/share/python-build/miniforge3-24.11.0-1 new file mode 100644 index 0000000000..89dfd50b10 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Miniforge3-24.11.0-1-Linux-aarch64.sh#21e5af2d961a19535e1ba8d67d8ce46c522b6e616dea826c6987ff4db8499b73" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Miniforge3-24.11.0-1-Linux-ppc64le.sh#20847d0978fbf301da2f9d66ae47dc9da8c080cc1e3f70acb2264e3b6ff99ceb" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Miniforge3-24.11.0-1-Linux-x86_64.sh#936836bb2dd546a7ab5999bed2a2d1ce8416c5359e28199df8b384529a85dcac" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Miniforge3-24.11.0-1-MacOSX-arm64.sh#6c2ff0b7cf1b6300a3dc6125da8e78407d3ffd3a7359742957fcca0cd7cd7604" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.0-1/Miniforge3-24.11.0-1-MacOSX-x86_64.sh#5f42fb48c528b2f60a659d0cc19adb74a4098d8a1519ac7fe0724273eae050c5" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.5.0-0 b/plugins/python-build/share/python-build/miniforge3-24.5.0-0 new file mode 100644 index 0000000000..7056c6e301 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.5.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.5.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Miniforge3-24.5.0-0-Linux-aarch64.sh#848f2d6917c473b1091e31a51241a7626d4dac4b90809a9b2ed937e0cea18d87" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.5.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Miniforge3-24.5.0-0-Linux-ppc64le.sh#1a947af7d68e8a06c2057c9a01ec03a5f7e26133fe42ad531f0a4b898b91dc86" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.5.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Miniforge3-24.5.0-0-Linux-x86_64.sh#a754b435830e1c038dada434873ad69a99970a4ea17a68d3bbcade0a37c8c8fb" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.5.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Miniforge3-24.5.0-0-MacOSX-arm64.sh#9c423bb8c9b80709f9682eac9d2a8f5cdecb54601fd4ec1ec6bb98349cf54a92" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.5.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.5.0-0/Miniforge3-24.5.0-0-MacOSX-x86_64.sh#31ad3bbd4114021cdd1bf14a641bcf0f38b4dc71f0931be2720528c2555a587e" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.7.1-0 b/plugins/python-build/share/python-build/miniforge3-24.7.1-0 new file mode 100644 index 0000000000..6bd85743de --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.7.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.7.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge3-24.7.1-0-Linux-aarch64.sh#7a3372268b45679584043b4ba1e0318ee5027384a8d330f2d991b14d815d6a6d" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.7.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge3-24.7.1-0-Linux-ppc64le.sh#af1015e0531f4ff5e19001c476b720609609401d9cb80fc8a02c5e5d50e02ed5" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.7.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge3-24.7.1-0-Linux-x86_64.sh#b64f77042cf8eafd31ced64f9253a74fb85db63545fe167ba5756aea0e8125be" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.7.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge3-24.7.1-0-MacOSX-arm64.sh#2de2a2a31964be19ae157b5f93429cb50f8bf3983c580c8b14acefaf3d7e7c5b" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.7.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-0/Miniforge3-24.7.1-0-MacOSX-x86_64.sh#03b73291d46199a40cb694a400010de9d737e6397d3eed676f28828fe2df5025" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.7.1-1 b/plugins/python-build/share/python-build/miniforge3-24.7.1-1 new file mode 100644 index 0000000000..58f6294cf5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.7.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.7.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Miniforge3-24.7.1-1-Linux-aarch64.sh#9ed15a4d030928c6e537cb673538803ca5f07adb89957b9cfc24ebdc00ba4bf9" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.7.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Miniforge3-24.7.1-1-Linux-ppc64le.sh#9b05977d9fdadcc9cd9aeb9199a302139b9a77f708e39e83bfc0b1a1f4a7d4b8" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.7.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Miniforge3-24.7.1-1-Linux-x86_64.sh#6ae27b78c8cd5ce19987970dc734648ca0bf7ce7a7b3c0e41ab514cfe92add1d" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.7.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Miniforge3-24.7.1-1-MacOSX-arm64.sh#4effe540ea3abe9b2b5c1dad897f6186f343c4d6c8c234f8a5a4cb544ed14ec9" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.7.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-1/Miniforge3-24.7.1-1-MacOSX-x86_64.sh#8c880fdb3cb80e1a2ebbfd82cc84b2ab7409aa515843423e8aaa77cd08149053" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.7.1-2 b/plugins/python-build/share/python-build/miniforge3-24.7.1-2 new file mode 100644 index 0000000000..c3b4660459 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.7.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.7.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Miniforge3-24.7.1-2-Linux-aarch64.sh#7bf60bce50f57af7ea4500b45eeb401d9350011ab34c9c45f736647d8dba9021" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.7.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Miniforge3-24.7.1-2-Linux-ppc64le.sh#bb5d14dac73b85da8fbe386cdd3c94022a468563a0c55e6b20a58d82b55a9737" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.7.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Miniforge3-24.7.1-2-Linux-x86_64.sh#636f7faca2d51ee42b4640ce160c751a46d57621ef4bf14378704c87c5db4fe3" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.7.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Miniforge3-24.7.1-2-MacOSX-arm64.sh#cafa7cc6d7baef6ea292880ae46c6c9d28bc1156394a418ceada30118d8b6b9a" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.7.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.7.1-2/Miniforge3-24.7.1-2-MacOSX-x86_64.sh#ec6150160703ee622e6520863f68c5130473b69558aed822c4e369e90ef42aad" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.9.0-0 b/plugins/python-build/share/python-build/miniforge3-24.9.0-0 new file mode 100644 index 0000000000..561e9afd35 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.9.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.9.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Miniforge3-24.9.0-0-Linux-aarch64.sh#7fae81c0df8545175a647e09b1372dcbf32a1b7fcc194d0d5ffc9a13be4e4269" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.9.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Miniforge3-24.9.0-0-Linux-ppc64le.sh#d442c75fd69359dd8ef444e3ba16a83d88ff437c92669661e2450b0d81575305" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.9.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Miniforge3-24.9.0-0-Linux-x86_64.sh#a75b489adb52effd81d15f0e700c0803992fe6a2357e8eb80685a529df7daa48" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.9.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Miniforge3-24.9.0-0-MacOSX-arm64.sh#ac903e9babc2067add5a6619a1e37bbd4ddb9177ba633ecfa63c8e68df6e1fca" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.9.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.9.0-0/Miniforge3-24.9.0-0-MacOSX-x86_64.sh#0b32751fe373819f813490b640c7e83baecf208727fae34a7495d3127f983663" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 2acb2296e505067cf944ab6cd464118c68b01f40 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Dec 2024 23:10:42 +0300 Subject: [PATCH 0899/1324] Exclude broken miniforge3/mambaforge3 22.11.0-0, 22.11.0-1, 22.11.0-2 from generation [no ci] (#3143) --- plugins/python-build/scripts/add_miniforge.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 54f06e0837..5612584a11 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -13,6 +13,13 @@ MINIFORGE_REPO = 'conda-forge/miniforge' DISTRIBUTIONS = ['miniforge', 'mambaforge'] +SKIPPED_RELEASES = [ + '4.13.0-0', #has no Mambaforge. We already generated scripts for Miniforge + '22.11.1-0', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) + '22.11.1-1', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) + '22.11.1-2', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) +] + install_script_fmt = """ case "$(anaconda_architecture 2>/dev/null || true)" in {install_lines} @@ -119,7 +126,7 @@ def add_version(release): # Build scripts for miniforge3-4.13.0-0 have already been generated. # Assuming this was a fluke, we don't yet need to implement proactively checking all releases for contents # or ignoring a release if _any_ of the flavors is already present in Pyenv. - if version == '4.13.0-0': + if version in SKIPPED_RELEASES: continue if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS): From 2aff0df76deacd9b6c49de8870f0255d24d3b31b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 22 Dec 2024 23:22:20 +0300 Subject: [PATCH 0900/1324] 2.5.0 --- CHANGELOG.md | 8 ++++++++ libexec/pyenv---version | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c2c289695a..89e8786e85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release v2.5.0 +* `pyenv init -` performance improvements; recommend using `pyenv init - ` by @ChristianFredrikJohnsen in https://github.com/pyenv/pyenv/pull/3136 +* Add miniconda3-24.11.1-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3138 +* Add miniconda3-24.3.0-0 by @native-api in https://github.com/pyenv/pyenv/pull/3139 +* CI: only run macos_build_bundled_dependencies and ubuntu_build_tar_gz for CPython by @native-api in https://github.com/pyenv/pyenv/pull/3141 +* Add miniforge3 and mambaforge3 24.1.2-0, 24.3.0-0, 24.5.0-0, 24.7.1-0, 24.7.1-1, 24.7.1-2, 24.9.0-0, 24.9.2-0, 24.11.0-0, 24.11.0-1 by @native-api in https://github.com/pyenv/pyenv/pull/3142 +* Skip broken miniforge3/mambaforge3 22.11.0-0, 22.11.0-1, 22.11.0-2 in the generation script by @native-api in https://github.com/pyenv/pyenv/pull/3143 + ## Release v2.4.23 * README: explain using multiple versions by @Finkregh in https://github.com/pyenv/pyenv/pull/3126 * Support PACKAGE_CPPFLAGS and PACKAGE_LDFLAGS by @native-api in https://github.com/pyenv/pyenv/pull/3130 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5b0626ad54..5a79601f13 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.4.23" +version="2.5.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 330e3fc130cd464a012a0b06d8c1ea41447956eb Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Dec 2024 23:38:58 +0300 Subject: [PATCH 0901/1324] CI: use Ubuntu 24.04; use ubuntu-latest for the ubuntu_build check (#3144) Now that ubuntu-24 is out of beta at Github Since for ubuntu_build, we only use one OS version and the changes between versions are not as drastic as with MacOS, it seems safe to have it upgrade automatically. --- .github/workflows/modified_scripts_build.yml | 4 ++-- .github/workflows/pyenv_tests.yml | 1 + .github/workflows/ubuntu_build.yml | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 1bef9cbd18..a9cd75a8a1 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -157,7 +157,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["ubuntu-20.04", "ubuntu-22.04"] + os: ["ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -215,7 +215,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["ubuntu-20.04", "ubuntu-22.04"] + os: ["ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index aa8f495925..8cead60012 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -10,6 +10,7 @@ jobs: fail-fast: false matrix: os: + - ubuntu-24.04 - ubuntu-22.04 - ubuntu-20.04 - macos-14 diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 71c23dfff6..b8b08e2bf7 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -15,7 +15,7 @@ jobs: - "3.11" - "3.12" - "3.13" - runs-on: ubuntu-22.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 # Normally, we would use the superbly maintained... From 4c6b0e9c3b33c0315becb94272841468f71a8f37 Mon Sep 17 00:00:00 2001 From: Christian Fredrik Johnsen Date: Mon, 23 Dec 2024 18:58:54 +0100 Subject: [PATCH 0902/1324] Fix: mistake in configuration hints in `pyenv init` and manpage. (#3145) --- libexec/pyenv-init | 2 +- man/man1/pyenv.1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 19d3ce1a54..3892ec65d4 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -159,7 +159,7 @@ function help_() { echo echo 'export PYENV_ROOT="$HOME/.pyenv"' echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' - echo 'eval "$(pyenv init -'$shell')"' + echo 'eval "$(pyenv init - '$shell')"' ;; esac echo diff --git a/man/man1/pyenv.1 b/man/man1/pyenv.1 index c3d2de1ba7..106c25743f 100644 --- a/man/man1/pyenv.1 +++ b/man/man1/pyenv.1 @@ -14,7 +14,7 @@ pyenv lets you easily switch between multiple versions of Python\. It's simple, .RS 15 .nf if command -v pyenv 1>/dev/null 2>&1; then\n - eval "$(pyenv init -)" \n + eval "$(pyenv init - bash)" \n fi .fi .RE From 850a74c5cd2cac8990008864b94254d6acfcd6c6 Mon Sep 17 00:00:00 2001 From: Jay Bazuzi Date: Sat, 4 Jan 2025 08:43:09 -0800 Subject: [PATCH 0903/1324] README: Add recommended curl arguments to suggested installer invocation (#3155) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c3e07633a..134341ea94 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ The Homebrew option from the [MacOS section below](#macos) would also work if yo ##### 1. Automatic installer (Recommended) ```bash -curl https://pyenv.run | bash +curl -fsSL https://pyenv.run | bash ``` For more details visit our other project: From 01732990788b575d665e9f3f257dc32d0031a04c Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 8 Jan 2025 23:51:11 +0300 Subject: [PATCH 0904/1324] Add miniforge3-24.11.2-0, miniforge3-24.11.2-1 (#3163) --- .../share/python-build/miniforge3-24.11.2-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.11.2-1 | 25 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.2-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.2-1 diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.2-0 b/plugins/python-build/share/python-build/miniforge3-24.11.2-0 new file mode 100644 index 0000000000..4f2acc06c1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.2-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-0/Miniforge3-24.11.2-0-Linux-aarch64.sh#4f182710a6394f81eda2a6f8578c63d4b52842ad8a9c6b54c7a4cf43513cf118" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-0/Miniforge3-24.11.2-0-Linux-ppc64le.sh#6fb5e999d256eeb79c0ce793145966b995b22ff1001ec0fd662be2ba4a4fb538" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-0/Miniforge3-24.11.2-0-Linux-x86_64.sh#e6ac45dc94bbc93a31802ed8b74f41b653a132e9f5d4d6b028ae00c5a9c563ba" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-0/Miniforge3-24.11.2-0-MacOSX-arm64.sh#f62f38d92e4ae015d82d1aa4aad392747f4e1a61d75deece3a68bdaf472e3ca7" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-0/Miniforge3-24.11.2-0-MacOSX-x86_64.sh#9dd0058e927986bc53d0685f6ac995267f7d8edbd178b4a47692bf08bfd7b11c" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.2-1 b/plugins/python-build/share/python-build/miniforge3-24.11.2-1 new file mode 100644 index 0000000000..a355820af5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.2-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.2-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-1/Miniforge3-24.11.2-1-Linux-aarch64.sh#ef4e191fc6843f343d51b31310d36eacbc1de2899ea233190ff63188ffe30894" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.2-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-1/Miniforge3-24.11.2-1-Linux-ppc64le.sh#ddda150ca836abaa03e718945687614f9b8fd9694dffd7f3d73d416ba2027e0d" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.2-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-1/Miniforge3-24.11.2-1-Linux-x86_64.sh#c79c7326a846d6df9ec824e19ccc99454d8f5009e37888df301b23eef11280ca" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.2-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-1/Miniforge3-24.11.2-1-MacOSX-arm64.sh#8bde418e8f5030b887535940cad3b531adf128a38b99e58ba6a26e68e9d5ad06" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.2-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.2-1/Miniforge3-24.11.2-1-MacOSX-x86_64.sh#50a00997a0f08737d076e93f964dffcb51bc4792fd9371344fd244ab97bcf61c" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From e98a0b489f62f22204cbd13fdac03aca79d98623 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 9 Jan 2025 02:16:06 +0300 Subject: [PATCH 0905/1324] Fix "Unsupported options" error building bundled OpenSSL <3.2.0 (#3164) --- plugins/python-build/bin/python-build | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 34fd0d272a..f39225f6ff 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1600,9 +1600,13 @@ build_package_mac_openssl() { local nokerberos [[ "$1" != openssl-1.0.* ]] || nokerberos=1 + + # switches introduced in OpenSSL 3.2 + local extra_no_features + [[ $(openssl_version $1) -ge 30200 ]] && extra_no_features=1 # Compile a shared lib with zlib dynamically linked. - package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5} no-docs no-apps no-tests + package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5} ${extra_no_features:+no-docs no-apps} no-tests build_package_standard "$@" @@ -1612,6 +1616,16 @@ build_package_mac_openssl() { security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain >> "$pem_file" } +# openssl-1.0.1k -> 10001 +# openssl-3.2.1 -> 30201 +openssl_version() { + local -a ver + IFS=- ver=( ${1:?} ) + IFS=. ver=( ${ver[0]} ) + [[ ${ver[2]} =~ '^([[:digit:]]+)[[:alpha:]]$' ]] && ver[2]="${BASH_REMATCH[1]}" + echo $(( ${ver[0]}*10000 + ${ver[1]}*100 + ${ver[2]} )) +} + # Post-install check that the openssl extension was built. build_package_verify_openssl() { "$RUBY_BIN" -e ' From c9514d8e8ec7db4b24085d697081fc8e243d5e53 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Sun, 19 Jan 2025 08:22:10 -0500 Subject: [PATCH 0906/1324] Add CPython 3.14.0a4 (#3168) --- plugins/python-build/share/python-build/3.14.0a3t | 2 -- .../python-build/share/python-build/{3.14.0a3 => 3.14.0a4} | 4 ++-- plugins/python-build/share/python-build/3.14.0a4t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0a3t rename plugins/python-build/share/python-build/{3.14.0a3 => 3.14.0a4} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0a4t diff --git a/plugins/python-build/share/python-build/3.14.0a3t b/plugins/python-build/share/python-build/3.14.0a3t deleted file mode 100644 index c975114226..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a3t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a3 diff --git a/plugins/python-build/share/python-build/3.14.0a3 b/plugins/python-build/share/python-build/3.14.0a4 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0a3 rename to plugins/python-build/share/python-build/3.14.0a4 index 0cf9021208..93f0fd904f 100644 --- a/plugins/python-build/share/python-build/3.14.0a3 +++ b/plugins/python-build/share/python-build/3.14.0a4 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.14.0a3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a3.tar.xz#94349df207456a575a8867c20b4ca434f870e1920dcdcc8fdf797e1af49abe90" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a4.tar.xz#c24f07881873c1d460228795ca6ca8c99130e30c773c91463d30d7ea8ff0e70b" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.14.0a3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a3.tgz#6ecc4203d8de18c7295c4cdd012e4a4acff83261f8a99bdf15318af9bb1cc811" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a4.tgz#cc9dcee27cc27fc6ef4ff47eb93abf48f158396a70aa67f1504893232911b4e2" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0a4t b/plugins/python-build/share/python-build/3.14.0a4t new file mode 100644 index 0000000000..235535ac07 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a4t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a4 From 734d6323d8fda6998b0dcd87e8871c8bec189b72 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 19 Jan 2025 17:47:51 +0300 Subject: [PATCH 0907/1324] 2.5.1 --- CHANGELOG.md | 8 ++++++++ libexec/pyenv---version | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89e8786e85..766b346f61 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release v2.5.1 +* CI: use Ubuntu 24.04; use ubuntu-latest for the ubuntu_build check by @native-api in https://github.com/pyenv/pyenv/pull/3144 +* Fix: mistake in configuration hints in `pyenv init` and manpage by @ChristianFredrikJohnsen in https://github.com/pyenv/pyenv/pull/3145 +* README: Add recommended curl arguments to suggested installer invocation by @JayBazuzi in https://github.com/pyenv/pyenv/pull/3155 +* Add miniforge3-24.11.2-0, miniforge3-24.11.2-1 by @native-api in https://github.com/pyenv/pyenv/pull/3163 +* Fix "Unsupported options" error building bundled OpenSSL <3.2.0 by @native-api in https://github.com/pyenv/pyenv/pull/3164 +* Add CPython 3.14.0a4 by @nedbat in https://github.com/pyenv/pyenv/pull/3168 + ## Release v2.5.0 * `pyenv init -` performance improvements; recommend using `pyenv init - ` by @ChristianFredrikJohnsen in https://github.com/pyenv/pyenv/pull/3136 * Add miniconda3-24.11.1-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3138 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5a79601f13..77a5779556 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.0" +version="2.5.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 8d93ccae3939cccef5d78bf41ab90e9799e2eaaa Mon Sep 17 00:00:00 2001 From: threadflow <1308665+threadflow@users.noreply.github.com> Date: Sun, 2 Feb 2025 09:50:48 +0800 Subject: [PATCH 0908/1324] Fix OpenSSL version parsing in python-build script (#3181) --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f39225f6ff..576352093d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1621,7 +1621,7 @@ build_package_mac_openssl() { openssl_version() { local -a ver IFS=- ver=( ${1:?} ) - IFS=. ver=( ${ver[0]} ) + IFS=. ver=( ${ver[1]} ) [[ ${ver[2]} =~ '^([[:digit:]]+)[[:alpha:]]$' ]] && ver[2]="${BASH_REMATCH[1]}" echo $(( ${ver[0]}*10000 + ${ver[1]}*100 + ${ver[2]} )) } From 823dd3cef9d53621a5bdbf68f83713e1b15bfc80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Sun, 2 Feb 2025 16:57:19 +0100 Subject: [PATCH 0909/1324] Add GraalPy 24.1.2 (#3176) --- .../share/python-build/graalpy-24.1.2 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.1.2 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.1.2 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.1.2 diff --git a/plugins/python-build/share/python-build/graalpy-24.1.2 b/plugins/python-build/share/python-build/graalpy-24.1.2 new file mode 100644 index 0000000000..21655a6711 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.1.2 @@ -0,0 +1,64 @@ +# Copyright (c) 2025, 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='24.1.2' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="859292dddb7deb47280e445afa61aa58326900e15fbf0d3fa8044f1a1ce23594" + ;; +"linux-aarch64" ) + checksum="5ad46ba7ef58f2b3871cb99aa244ef9bf6e6e4206770e027603e3c323ba3e67b" + ;; +"macos-amd64" ) + checksum="e2eed01618ae788b24e01ab423ff27382e15faa1ecb7c8eb7e9809b022c74fe8" + ;; +"macos-aarch64" ) + checksum="daa1fa51129f1bc4e5f0f2251ce7d0e039019eb9569579bb41aaa905407fa6a3" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.1.2 b/plugins/python-build/share/python-build/graalpy-community-24.1.2 new file mode 100644 index 0000000000..fccdffc123 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.1.2 @@ -0,0 +1,54 @@ +# Copyright (c) 2025, 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='24.1.2' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="d1bf37fb9edf8065e6dab4f351d2006acaff2b2e692cfaea07199380c892ee0c" + ;; +"linux-aarch64" ) + checksum="2568d5f7f3b9d8827de33eb864783c1fed4bc3e729a6fd14e072311c5105346f" + ;; +"macos-amd64" ) + checksum="29f9f19604bf2f7d255add89fa5639d6aab6877799414cb820398fed8ef3d5bb" + ;; +"macos-aarch64" ) + checksum="dcc4fa73cdb866e88c51219ddf9b9689b62633fc8304649372fe8ada4e03957d" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 8775ffe76cc965e345fb3a82162050814e96d911 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Wed, 5 Feb 2025 10:52:09 -0600 Subject: [PATCH 0910/1324] Add CPython 3.12.9 and 3.13.2 (#3183) --- plugins/python-build/share/python-build/3.12.9 | 9 +++++++++ plugins/python-build/share/python-build/3.13.2 | 9 +++++++++ plugins/python-build/share/python-build/3.13.2t | 2 ++ 3 files changed, 20 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.9 create mode 100644 plugins/python-build/share/python-build/3.13.2 create mode 100644 plugins/python-build/share/python-build/3.13.2t diff --git a/plugins/python-build/share/python-build/3.12.9 b/plugins/python-build/share/python-build/3.12.9 new file mode 100644 index 0000000000..58c770226d --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.9 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.9" "https://www.python.org/ftp/python/3.12.9/Python-3.12.9.tar.xz#7220835d9f90b37c006e9842a8dff4580aaca4318674f947302b8d28f3f81112" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.9" "https://www.python.org/ftp/python/3.12.9/Python-3.12.9.tgz#45313e4c5f0e8acdec9580161d565cf5fea578e3eabf25df7cc6355bf4afa1ee" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.2 b/plugins/python-build/share/python-build/3.13.2 new file mode 100644 index 0000000000..1df925ce86 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.2 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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.2" "https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tar.xz#d984bcc57cd67caab26f7def42e523b1c015bbc5dc07836cf4f0b63fa159eb56" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.2" "https://www.python.org/ftp/python/3.13.2/Python-3.13.2.tgz#b8d79530e3b7c96a5cb2d40d431ddb512af4a563e863728d8713039aa50203f9" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.2t b/plugins/python-build/share/python-build/3.13.2t new file mode 100644 index 0000000000..af5456b797 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.2t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.2 From b3dad5887e1daef68a73360546082ad4eb4b82b8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 5 Feb 2025 19:54:06 +0300 Subject: [PATCH 0911/1324] 2.5.2 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 766b346f61..89fd87ebec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.5.2 +* Fix OpenSSL version parsing in python-build script by @threadflow in https://github.com/pyenv/pyenv/pull/3181 +* Add GraalPy 24.1.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3176 +* Add CPython 3.12.9 and 3.13.2 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3183 + ## Release v2.5.1 * CI: use Ubuntu 24.04; use ubuntu-latest for the ubuntu_build check by @native-api in https://github.com/pyenv/pyenv/pull/3144 * Fix: mistake in configuration hints in `pyenv init` and manpage by @ChristianFredrikJohnsen in https://github.com/pyenv/pyenv/pull/3145 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 77a5779556..8b22b6bdc2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.1" +version="2.5.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From d327702c4de949136e1d351bf3027513de90d1e9 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 5 Feb 2025 20:57:20 +0300 Subject: [PATCH 0912/1324] Fix OpenSSL 1.x version parsing --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 576352093d..de698ce431 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1622,7 +1622,7 @@ openssl_version() { local -a ver IFS=- ver=( ${1:?} ) IFS=. ver=( ${ver[1]} ) - [[ ${ver[2]} =~ '^([[:digit:]]+)[[:alpha:]]$' ]] && ver[2]="${BASH_REMATCH[1]}" + [[ ${ver[2]} =~ ^([[:digit:]]+)[[:alpha:]]$ ]] && ver[2]="${BASH_REMATCH[1]}" echo $(( ${ver[0]}*10000 + ${ver[1]}*100 + ${ver[2]} )) } From 1c7fe36c5528333a4bf14098edd4f6f535d1cee7 Mon Sep 17 00:00:00 2001 From: dand-oss Date: Sat, 8 Feb 2025 09:46:04 +0800 Subject: [PATCH 0913/1324] Add PyPy v7.3.18 (#3184) Co-authored-by: Dan Dees --- .../share/python-build/pypy2.7-7.3.18 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.18-src | 14 ++++ .../share/python-build/pypy3.10-7.3.18 | 77 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.18-src | 14 ++++ .../share/python-build/pypy3.11-7.3.18 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-7.3.18-src | 14 ++++ 6 files changed, 273 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.18 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.18-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.18 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.18-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.18 create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.18-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.18 b/plugins/python-build/share/python-build/pypy2.7-7.3.18 new file mode 100644 index 0000000000..c95bee625b --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.18 @@ -0,0 +1,77 @@ +VERSION='7.3.18' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=d647cad5be915df65f44277fd051c8d52e708d22838b5cb21b2de033530acc80 +linux32_hash=54990fb1ae2266c260a7ce694b84ab91a8d0d298da440cd5695ac671dc5615e2 +linux64_hash=1da34354e5fa59400609e94c00ba6feccf5aa575abb26fb6caf9c2ac16100ff4 +osarm64_hash=48927b1931a4feadea945f7c988c429b42e9fb6567af3810ab86ad95efbe98bc +osx64_hash=db9d2bcc8dbe089b34a19083a11116697e8679acc2c47a2862264429810f666e + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.18-src b/plugins/python-build/share/python-build/pypy2.7-7.3.18-src new file mode 100644 index 0000000000..792a48f594 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.18-src @@ -0,0 +1,14 @@ +VERSION='7.3.18' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=737435ddfc5afa5b97a7209c87d70d5f1062426c053b9bb8b99a0347cb4891fa + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.18 b/plugins/python-build/share/python-build/pypy3.10-7.3.18 new file mode 100644 index 0000000000..81805cbdda --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.18 @@ -0,0 +1,77 @@ +VERSION='7.3.18' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +aarch64_hash=e843aecd48eb06b625af67891b99e3440313cfb64c6851fc37df1e5572c8ef9e +linux32_hash=34ef09a481254aad0f22bf09fd7c99efb65ffef4f79f5b4222505f55f8d9c22e +linux64_hash=834ccd4544bb47112a66977add7e47f30619f74061ae990876bcba95d98c27c5 +osarm64_hash=1d47da22bc9f7b5329f97c9c7b3ee0b051252ff1e82ca76999ad2d44758be41f +osx64_hash=b7031cbf815b7ba26ed2503b76ee3e73d7322b55f3671219019e8385042e212f + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.18-src b/plugins/python-build/share/python-build/pypy3.10-7.3.18-src new file mode 100644 index 0000000000..3b041ee181 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.18-src @@ -0,0 +1,14 @@ +VERSION='7.3.18' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +hash=08eb70e866987e4abe88ae9f54a98f919df92b595f7cdf4041703e8802b11552 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.18 b/plugins/python-build/share/python-build/pypy3.11-7.3.18 new file mode 100644 index 0000000000..cd4daa8c77 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.18 @@ -0,0 +1,77 @@ +VERSION='7.3.18' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=95bc3021cb9be2aa766ecb776c215e97ae8c0dda99dd48840b40b5b87d90bc45 +linux32_hash=70357a69cdbf4ce449b5743901fcd36208e0a89eadcfb4d2ebdc9b4711a0612c +linux64_hash=df5fa534800ff09d990e50ca4fdb02d8a06b9ed948dbcb3a09bea0739ef42de7 +osarm64_hash=cc4d6dd621dffd474eb9a2d01e5844d1b6a6f88b404aac2c48a9c267b5370df4 +osx64_hash=4f2274ffb4b787fd5b5f15cd61f7fef5a3710bf0ecbd4293bf0251035b468865 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.18-src b/plugins/python-build/share/python-build/pypy3.11-7.3.18-src new file mode 100644 index 0000000000..970fe1cb7c --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.18-src @@ -0,0 +1,14 @@ +VERSION='7.3.18' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=fbc82b8ff67b942e6fce49980dc0f0f83193b005173f9bddd39d6396fb6b939d + +### 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' From fee60576804ce2b384256e0a99be29f346ec015a Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Tue, 11 Feb 2025 02:41:22 +0800 Subject: [PATCH 0914/1324] Add Miniconda3 25.1.1 0 (#3190) * Add miniconda3-25.1.1-0 Co-authored-by: binbjz Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-25.1.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.1.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.1.1-0 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.1.1-0 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 new file mode 100644 index 0000000000..edb1093d63 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-aarch64.sh#d8a975d2194aab5ace390c273c5328be89342b956711c1648d02c87e4c4ffeb1" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-s390x.sh#087d1cb3708da2a07def69e925731a87b500a9b5befec5e7666422480a5edc67" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-x86_64.sh#2346f43213d3e96abca95d0a7df2575d52c66030f2feb90d3d58ed3eabe76aa3" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-MacOSX-arm64.sh#e52fabc1c331e79cb4a348eea0ac9fc75742609ed5a41370a1e8790a97c13449" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-MacOSX-x86_64.sh#3d9720b16428a924b09f460f942be1f841c28d9ceeff9149051a8f4241745839" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 new file mode 100644 index 0000000000..2234a3dacf --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-aarch64.sh#737f02e2e6c192afbef000f6dba79f4dbbe852193c6890243516ea50d916d31c" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-s390x.sh#6244e894c56afc095eba0d2c2e88125af1a6a661187b136b8d1abc1392cca8eb" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-x86_64.sh#9bc631a7edfc015bbf944d5f48c3852e7c0c83aeae0359b75bee9f402942413a" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-MacOSX-arm64.sh#0189917c28f8c3a8e9f113532225d4878e6f018d215739ccff92f99750fe7083" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-MacOSX-x86_64.sh#af0d2916b3e3aad814f246a85c48ec9658e2b5f4d1cc7f09246d197fa18169c8" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 new file mode 100644 index 0000000000..caf2cff27a --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-aarch64.sh#ae9d3ea83df97e78fd51c452d0bc75005a28d504c22db6f1000822293f916b54" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-s390x.sh#fa0b443ea73c71abd29eb51212c7b032d5089cbb2761aa07f91668b903a2a575" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-x86_64.sh#832de27a5a35b7963f0d83466abada3eb138e51985255f190e0dc350427a9dd1" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-MacOSX-arm64.sh#24821d2c87598ae0f8e697e612cdf41d0dbc9ae563cae8aacd878d50d1a86e1e" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-MacOSX-x86_64.sh#65f91c564abced759ce7fca099239b7ed4ae9835cb4b64a11923cd3b5f57f5f1" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 new file mode 100644 index 0000000000..3b3b24d8b2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-aarch64.sh#6813ed27242f8c6a000fcdc0b2bb93253411a22ef110eec915b7d1a4aab3587b" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-s390x.sh#8220e1e67cc73a51d90108f5bdf5451aefae0b00d400958ae7d42e21d9a32999" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-x86_64.sh#13a5870ab5b5c75f23a54eac2ba8dbff38bd4bd33d52aecbc6154ca0ff488e10" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-MacOSX-arm64.sh#6d60e9a8e0f531e09791f033529a6142ceb39ec7d23f8fc8231d287e39cdb30d" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-MacOSX-x86_64.sh#3752cbfae31526e53cae1b2976e183787fc98782c63bbd048853ed8860616051" "miniconda" verify_py39 + ;; +* ) + { 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 From 519f90a67accd1820fc274f92d8800c0834cc5fe Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 12 Feb 2025 21:49:27 +0300 Subject: [PATCH 0915/1324] Add miniforge3-25.1.1-0, miniforge3-24.11.3-0 (#3191) --- .../share/python-build/miniforge3-24.11.3-0 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.1.1-0 | 22 ++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.3-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.1.1-0 diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.3-0 b/plugins/python-build/share/python-build/miniforge3-24.11.3-0 new file mode 100644 index 0000000000..e312c88e03 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.3-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.3-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-0/Miniforge3-24.11.3-0-Linux-aarch64.sh#d3f2b771857009ec804faeeef191352186194cb5737a831e55c6347a5f47cb8f" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.3-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-0/Miniforge3-24.11.3-0-Linux-ppc64le.sh#8f8a2eadc773e4c9a3d4587a08b24646e0b2374e0ea0ac538a499303c2527fd2" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.3-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-0/Miniforge3-24.11.3-0-Linux-x86_64.sh#2e1ad2188fe69fcdd522c2b20c08c800a5c7411b775eca768318b1540ed32e53" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.3-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-0/Miniforge3-24.11.3-0-MacOSX-arm64.sh#dbead9822b1932ecc1b3238311a843400462b38e302bbd067ef373aa39dedd4f" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.3-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-0/Miniforge3-24.11.3-0-MacOSX-x86_64.sh#1f8e16f2f8e7538c2ef1d08cbb8f2feadc75907e31dbcde75a10ca788fc03abb" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.1.1-0 b/plugins/python-build/share/python-build/miniforge3-25.1.1-0 new file mode 100644 index 0000000000..a982bd3c29 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.1.1-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.1.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-0/Miniforge3-25.1.1-0-Linux-aarch64.sh#4183d312c6a42edd5bc06be21e92b0d8b9afb720efc37df44f3e5002b35f9d2e" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.1.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-0/Miniforge3-25.1.1-0-Linux-x86_64.sh#a37495662f55746d92344b309b8b594d6b1a83d7acdd742adaca93ed2e10d32b" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.1.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-0/Miniforge3-25.1.1-0-MacOSX-arm64.sh#0f82fec65b7900cbffbda22a1d7a64c278569be241f6f2b87eded9a0f4c54008" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.1.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-0/Miniforge3-25.1.1-0-MacOSX-x86_64.sh#6b0e0e1901d121292edc52acc948d92a473218c1c4d621df9403805fc19f0dff" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From ddeb3facf05c0a6cdd8728ef7d32f5b5e99e022f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 Feb 2025 22:53:37 +0300 Subject: [PATCH 0916/1324] CI: remove ubuntu-20.04; move tar_gz to -latest ubuntu-20.04 is being retired by Github tar_gz is mainly to verify URLs, OS version doesn't matter --- .github/workflows/modified_scripts_build.yml | 4 ++-- .github/workflows/pyenv_tests.yml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index a9cd75a8a1..b9e24c714b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -157,7 +157,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04"] + os: ["ubuntu-22.04", "ubuntu-24.04"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -215,7 +215,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04"] + os: ["ubuntu-latest"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 8cead60012..dab756089e 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -12,7 +12,6 @@ jobs: os: - ubuntu-24.04 - ubuntu-22.04 - - ubuntu-20.04 - macos-14 - macos-13 runs-on: ${{ matrix.os }} From f37a5a80d34ad849395e790c6223bf9659e862dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Wed, 12 Feb 2025 14:02:24 -0600 Subject: [PATCH 0917/1324] Add CPython 3.14.0a5 (#3194) --- plugins/python-build/share/python-build/3.14.0a4 | 9 --------- plugins/python-build/share/python-build/3.14.0a4t | 2 -- plugins/python-build/share/python-build/3.14.0a5 | 9 +++++++++ plugins/python-build/share/python-build/3.14.0a5t | 2 ++ 4 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0a4 delete mode 100644 plugins/python-build/share/python-build/3.14.0a4t create mode 100644 plugins/python-build/share/python-build/3.14.0a5 create mode 100644 plugins/python-build/share/python-build/3.14.0a5t diff --git a/plugins/python-build/share/python-build/3.14.0a4 b/plugins/python-build/share/python-build/3.14.0a4 deleted file mode 100644 index 93f0fd904f..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a4 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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.14.0a4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a4.tar.xz#c24f07881873c1d460228795ca6ca8c99130e30c773c91463d30d7ea8ff0e70b" standard verify_py313 copy_python_gdb ensurepip -else - install_package "Python-3.14.0a4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a4.tgz#cc9dcee27cc27fc6ef4ff47eb93abf48f158396a70aa67f1504893232911b4e2" standard verify_py313 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.14.0a4t b/plugins/python-build/share/python-build/3.14.0a4t deleted file mode 100644 index 235535ac07..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a4t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a4 diff --git a/plugins/python-build/share/python-build/3.14.0a5 b/plugins/python-build/share/python-build/3.14.0a5 new file mode 100644 index 0000000000..1765811d63 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a5 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tar.xz#e42d91d6dd3016bfc2f6f96c1129b40ca6d8f6e1bf3b30a11de146d930f43b32" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tgz#bfbb9b63e072b21c44ae20da14dd8ef14fa8c0cb632d93924d5defd5db2eded3" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.0a5t b/plugins/python-build/share/python-build/3.14.0a5t new file mode 100644 index 0000000000..d84606a47c --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a5t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a5 From a7de2004eb4f62654134808fe6cc8af081704241 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Thu, 13 Feb 2025 04:03:05 +0800 Subject: [PATCH 0918/1324] Add Miniconda3 25.1.1-1 (#3192) Co-authored-by: binbjz Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-25.1.1-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.1.1-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.1.1-1 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.1.1-1 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 new file mode 100644 index 0000000000..5b28037662 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-aarch64.sh#"a72a3247d4c5843bf9ba3e902218ada02e2b75b16260541befd7ac0961077fa9 "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-s390x.sh#072b62a97432048e5ad1e9a987c6739de719192f6c19c79b06d1e05424cd4c35" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-x86_64.sh#585972959914f1f9be463284d477717eb10f7306bda63f2ec3c4c86047b9dd72" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-MacOSX-arm64.sh#0be344f9eb9e7cf7c2d45598922674e599739c9a9f6c5ee1436238005da9dd03" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-MacOSX-x86_64.sh#497d6deb3932f8f0257a3db515419e871a0f1ecb155e0fd80d13ca7bbccbecac" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 new file mode 100644 index 0000000000..0ca2864e65 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-aarch64.sh#288aa5b21b97db7f09bf6da03323b3a3b97d461a4c5bf666be58312eb6b6e311" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-s390x.sh#e0c755e9e2e26f75cccda56fe978e7a964ed559f474486421a0022b7351bc108" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-x86_64.sh#03a253f7ca5cf1fdfca2aedced769d8479cb559b7c92e70f24c176fd9d23bc8e" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-MacOSX-arm64.sh#871ca583ee0be45d5fa36eba4143a6701e775c500c7b30ac519ef1a0205d78c3" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-MacOSX-x86_64.sh#deb025449147280611e6ca8bf89291cddb6eab06e2bff0114ac05f6f67b5ca89" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 new file mode 100644 index 0000000000..d644f64546 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-aarch64.sh#c8a2112c5ed07196a0e7cf0682ff39c9a28eac5862df49659af7d4f6906efa70" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-s390x.sh#f644f5c18985078e6cd1af9c517f9634dbb3199a86f75eb90a9fb303289ebf0b" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-x86_64.sh#2cc524b9b47b268e1a3ecca1f7f3c1bb4142f42a10001c88fb69c6664ca8a9a6" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-MacOSX-arm64.sh#c8f316330308f712b94dd7ac2a6048f87d6b364c3354f4e619ed4aef6d99dfad" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-MacOSX-x86_64.sh#29fce1ea800ff167e2f44d5a0dbd33124384b33520fd481378908e94de68b1a1" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 new file mode 100644 index 0000000000..4a692027cb --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-aarch64.sh#ae55c260fd250154627f74d0ede010c99c20741698d7d687b2dfca0aa14ce2d5" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-s390x.sh#6957a17c17e86fe43ba3c2e18dcfc1415710410c4a36f7a1c46fbc64aab4fb27" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-x86_64.sh#c5ec876718798ccd6ce93ce38eb3253ef103244ea6efaa8c978df19047ba916a" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-MacOSX-arm64.sh#d717fb09b137a048d9b2f6ee9d3e7ef63ab841e35d80cb37f40d20ac949915c2" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-MacOSX-x86_64.sh#a01dd65f2463bdec15abc1f796847912c67caaf78ea1c67f038ec02aa8c3adaf" "miniconda" verify_py39 + ;; +* ) + { 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 From 496dcfc3848f0c6b20f8980f5e0bfd45d86a0df5 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Wed, 12 Feb 2025 20:56:34 -0800 Subject: [PATCH 0919/1324] Update hashes for Python 3.14.0a5 tarballs (#3196) Source tarballs were changed to fix a human error: https://discuss.python.org/t/python-3-14-0-alpha-5/80364/3 --- plugins/python-build/share/python-build/3.14.0a5 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/3.14.0a5 b/plugins/python-build/share/python-build/3.14.0a5 index 1765811d63..14b1a1dee0 100644 --- a/plugins/python-build/share/python-build/3.14.0a5 +++ b/plugins/python-build/share/python-build/3.14.0a5 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tar.xz#e42d91d6dd3016bfc2f6f96c1129b40ca6d8f6e1bf3b30a11de146d930f43b32" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tar.xz#74e83f26de1e4fb9eef1b56492cff92508834bb71ac13f5c580438ce9f093682" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tgz#bfbb9b63e072b21c44ae20da14dd8ef14fa8c0cb632d93924d5defd5db2eded3" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tgz#fba0418c29c6ff0c1e7b3c6872a8a611aab472373adbdb831b99456f87549800" standard verify_py313 copy_python_gdb ensurepip fi From 09fbed1d4f937b6db0bffec24bc67ad9ad08ed41 Mon Sep 17 00:00:00 2001 From: Christian Fredrik Johnsen Date: Mon, 23 Dec 2024 14:47:36 +0300 Subject: [PATCH 0920/1324] fix: pyenv-rehash | do NOT create conda_exclusion_list if conda is not installed. I was doing some debugging with PYENV_DEBUG=1 and noticed that a lot of work was being done in conda.bash, even though I had not installed any conda versions like `mambaforge`. The solution is pretty simple, put all the code inside an if-block. This aligns with what @varikin found in his pull request #3037 Additionally, I have refactored the code slightly for readability (created function `build_conda_exclusion_list`), and added comments which should make it easier to understand what's going on. This commit simplifies debugging and should reduce the execution time of ```bash eval "$(pyenv init -)" ``` slightly. --- pyenv.d/rehash/conda.bash | 88 +++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 36 deletions(-) diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index 884cd4f2af..6f65d2b426 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -11,48 +11,64 @@ conda_exists() { [ -n "${condas}" ] } -shims=() -shopt -s nullglob -for shim in $(cat "${BASH_SOURCE%/*}/conda.d/"*".list" | sort | uniq | sed -e 's/#.*$//' | sed -e '/^[[:space:]]*$/d'); do - if [ -n "${shim##*/}" ]; then - shims[${#shims[*]}]="${shim})return 0;;" - fi -done -shopt -u nullglob -eval "conda_shim(){ case \"\${1##*/}\" in ${shims[@]} *)return 1;;esac;}" - -# override `make_shims` to avoid conflict between pyenv-virtualenv's `envs.bash` -# https://github.com/pyenv/pyenv-virtualenv/blob/v20160716/etc/pyenv.d/rehash/envs.bash -make_shims() { - local file shim - for file do - shim="${file##*/}" - if ! conda_shim "${shim}" 1>&2; then - register_shim "$shim" - fi - done -} +if conda_exists; then -deregister_conda_shims() { - # adapted for Bash 4.x's associative array (#1749) - if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) -A'; then - for shim in ${!registered_shims[*]}; do - if conda_shim "${shim}" 1>&2; then - unset registered_shims[${shim}] + # Reads the list of `blacklisted` conda binaries + # from `conda.d/default.list` and creates a function + # `conda_shim` to skip creating shims for those binaries. + build_conda_exclusion_list() { + shims=() + shopt -s nullglob + for shim in $(cat "${BASH_SOURCE%/*}/conda.d/"*".list" | sort -u | sed -e 's/#.*$//' | sed -e '/^[[:space:]]*$/d'); do + if [ -n "${shim##*/}" ]; then + shims[${#shims[*]}]="${shim})return 0;;" fi done - else - local shim - local shims=() - for shim in ${registered_shims}; do + shopt -u nullglob + eval \ +"conda_shim() { + case \"\${1##*/}\" in + ${shims[@]} + *) return 1;; + esac +}" + } + + # override `make_shims` to avoid conflict between pyenv-virtualenv's `envs.bash` + # https://github.com/pyenv/pyenv-virtualenv/blob/v20160716/etc/pyenv.d/rehash/envs.bash + # The only difference between this `make_shims` and the `make_shims` defined + # in `libexec/pyenv-rehash` is that this one calls `conda_shim` to check + # if shim is blacklisted. If blacklisted -> skip creating shim. + make_shims() { + local file shim + for file do + shim="${file##*/}" if ! conda_shim "${shim}" 1>&2; then - shims[${#shims[*]}]="${shim}" + register_shim "$shim" fi done - registered_shims=" ${shims[@]} " - fi -} + } -if conda_exists; then + deregister_conda_shims() { + # adapted for Bash 4.x's associative array (#1749) + if declare -p registered_shims 2> /dev/null | grep -Eq '^(declare|typeset) -A'; then + for shim in ${!registered_shims[*]}; do + if conda_shim "${shim}" 1>&2; then + unset registered_shims[${shim}] + fi + done + else + local shim + local shims=() + for shim in ${registered_shims}; do + if ! conda_shim "${shim}" 1>&2; then + shims[${#shims[*]}]="${shim}" + fi + done + registered_shims=" ${shims[@]} " + fi + } + + build_conda_exclusion_list deregister_conda_shims fi From ab2a5ad0301309bab86575e13c38977650df7751 Mon Sep 17 00:00:00 2001 From: Christian Fredrik Johnsen Date: Wed, 25 Dec 2024 12:21:50 +0100 Subject: [PATCH 0921/1324] style: place `greadlink` in coreutils section Applies to the conda blacklist in `pyenv.d/rehash/conda.d/default.list` No practical difference, but it looks misplaced when it sits at the end of the file. --- pyenv.d/rehash/conda.d/default.list | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyenv.d/rehash/conda.d/default.list b/pyenv.d/rehash/conda.d/default.list index f70b953b9d..3c906b4e9d 100644 --- a/pyenv.d/rehash/conda.d/default.list +++ b/pyenv.d/rehash/conda.d/default.list @@ -117,6 +117,7 @@ factor false fmt fold +greadlink groups head hostid @@ -191,5 +192,4 @@ wc who whoami yes -# --- end exclusions from coreutils -greadlink \ No newline at end of file +# --- end exclusions from coreutils \ No newline at end of file From 8e5379ebe34b49b134ee7ab2165f419eb1f77050 Mon Sep 17 00:00:00 2001 From: Christian Fredrik Johnsen Date: Wed, 25 Dec 2024 12:37:34 +0100 Subject: [PATCH 0922/1324] perf: faster execution of build_conda_exclusion_list 1) Got rid of useless call to `cat`, much better to simply use sed with file as argument. 2) Got rid of `sort -u`. There is no need to sort the list. Additionally, the list `pyenv.d/rehash/conda.d/default.list` only has unique entries, and even if you have duplicate entries, the function will still work. --> No need for sort nor unique. 3) Further improvement is simple, save a cached cleaned-list-v1.0 in `conda.d` and simple read from that file instead of doing `sed`, which must be a more expensive operation than simply reading from file. --- pyenv.d/rehash/conda.bash | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyenv.d/rehash/conda.bash b/pyenv.d/rehash/conda.bash index 6f65d2b426..ab17ca1384 100644 --- a/pyenv.d/rehash/conda.bash +++ b/pyenv.d/rehash/conda.bash @@ -18,13 +18,11 @@ if conda_exists; then # `conda_shim` to skip creating shims for those binaries. build_conda_exclusion_list() { shims=() - shopt -s nullglob - for shim in $(cat "${BASH_SOURCE%/*}/conda.d/"*".list" | sort -u | sed -e 's/#.*$//' | sed -e '/^[[:space:]]*$/d'); do + for shim in $(sed 's/#.*$//; /^[[:space:]]*$/d' "${BASH_SOURCE%/*}/conda.d/default.list"); do if [ -n "${shim##*/}" ]; then shims[${#shims[*]}]="${shim})return 0;;" fi done - shopt -u nullglob eval \ "conda_shim() { case \"\${1##*/}\" in From 5051a42b2ccb7e2ef82787f75a0c6d90294d2f6c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 13 Feb 2025 09:17:25 +0300 Subject: [PATCH 0923/1324] 2.5.3 --- CHANGELOG.md | 9 +++++++++ libexec/pyenv---version | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 89fd87ebec..2132befeb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +## Release v2.5.3 +* Add PyPy v7.3.18 by @dand-oss in https://github.com/pyenv/pyenv/pull/3184 +* Add Miniconda3 25.1.1-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3190 +* Add miniforge3-25.1.1-0, miniforge3-24.11.3-0 by @native-api in https://github.com/pyenv/pyenv/pull/3191 +* Add CPython 3.14.0a5 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3194 +* Add Miniconda3 25.1.1-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3192 +* Update hashes for Python 3.14.0a5 tarballs by @jsirois in https://github.com/pyenv/pyenv/pull/3196 +* rehash: Do not execute conda-specific code if conda is not installed by @ChristianFredrikJohnsen in https://github.com/pyenv/pyenv/pull/3151 + ## Release v2.5.2 * Fix OpenSSL version parsing in python-build script by @threadflow in https://github.com/pyenv/pyenv/pull/3181 * Add GraalPy 24.1.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3176 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 8b22b6bdc2..26e7396a7a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.2" +version="2.5.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 47eef10ce172125f2c8761f08f1efa2385042897 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Fri, 14 Feb 2025 14:48:24 +0800 Subject: [PATCH 0924/1324] Add anaconda3-2025.1.1-2 (#3198) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-25.1.1-2 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.1.1-2 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.1.1-2 | 25 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.1.1-2 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 new file mode 100644 index 0000000000..74a8143666 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-aarch64.sh#5f61143e93d9d48a82aa99a1d7b1c77561f599b9a67ab954862e6e8d6a25c0cc" "miniconda" verify_py310 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py310_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-s390x.sh#89d689248a6855da3e6087cfeebaad6886e4ef46b4e96671bf251bb9aa6b1499" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-x86_64.sh#7f298109ab95b5436632973a04189a125282cc948f1dd1b03fa9cb6c71443915" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-MacOSX-arm64.sh#119e3196d9e67f8eb0f88d4a3188849b5b8bf14a8dd87873c0bff7ce016eea52" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-MacOSX-x86_64.sh#543d635dcd34256ac87ffe7a242259cf8f639d51a503da4e4eb3e29ecf406302" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 new file mode 100644 index 0000000000..88a9c78a56 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-aarch64.sh#8a1d4407fce7ec552ac6ed655ce93d83549e02b819cacefbb7f640f9051e638b" "miniconda" verify_py311 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py311_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-s390x.sh#0b4d5a3f16dcb2d230ba5dfdfdb848c854006aab6dd1bd3dbf29fcddf04b07a4" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-x86_64.sh#d8c1645776c0758214e4191c605abe5878002051316bd423f2b14b22d6cb4251" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-MacOSX-arm64.sh#140b80b4d285bbbcc8616891876ec3613e46acbedb02321b9ddc03ff0784c584" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-MacOSX-x86_64.sh#41c4ed1ce9f44049346a7efd8311919f82a8115637eced8796b5d18599f50cae" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 new file mode 100644 index 0000000000..d712136f99 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-aarch64.sh#6d05b9f9b7f327b90797a4cf56d68c81578bab2f63257a3e7a8b72cb0f0e4b5d" "miniconda" verify_py312 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py312_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-s390x.sh#55c681937c27e13a8ed818d1fec182e623e0308fffc1b10605896dac15f90077" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-x86_64.sh#4766d85b5f7d235ce250e998ebb5a8a8210cbd4f2b0fea4d2177b3ed9ea87884" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-MacOSX-arm64.sh#16e7eea739d470d0c3451e9bb779bbfa169b98cfb283d2d6508945e0c6b36ada" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-MacOSX-x86_64.sh#0df9f4b7d063a78d18fd02af2b0a97121879af00b535ea79ee23d68d1005e6f8" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 new file mode 100644 index 0000000000..f299266da2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-aarch64.sh#5afee04df06c923462341cfc87727100a67fa854550d0d7a2e6295005168e6b7" "miniconda" verify_py39 + ;; +"Linux-s390x" ) + install_script "Miniconda3-py39_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-s390x.sh#94a10a8a43dfd0360ecad9df24ef768db1b776d1a76fc2df1928d76c0bbb5535" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-x86_64.sh#b40682cedf1e1755c02555f8d3d98aadb4607a68da7caf72a9bbe1fb9ae0b904" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-MacOSX-arm64.sh#b50b4c46b481d3c9cb4befdbcf18087748d85eee9148c56a35f199940d607933" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-MacOSX-x86_64.sh#92109afe5edcc06d3a3c61b0faf1edd3e3e2539eaad637d2711305ccd0065046" "miniconda" verify_py39 + ;; +* ) + { 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 From 2f4bdcdb43229575ebfe245b8f31d87bfb1081a2 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Fri, 28 Feb 2025 11:05:57 -0800 Subject: [PATCH 0925/1324] Add PyPy v7.3.19. (#3205) The release blog entry is here: https://pypy.org/posts/2025/02/pypy-v7319-release.html --- .../share/python-build/pypy2.7-7.3.19 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.19-src | 14 ++++ .../share/python-build/pypy3.10-7.3.19 | 77 +++++++++++++++++++ .../share/python-build/pypy3.10-7.3.19-src | 14 ++++ .../share/python-build/pypy3.11-7.3.19 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-7.3.19-src | 14 ++++ 6 files changed, 273 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.19 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.19-src create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.19 create mode 100644 plugins/python-build/share/python-build/pypy3.10-7.3.19-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.19 create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.19-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.19 b/plugins/python-build/share/python-build/pypy2.7-7.3.19 new file mode 100644 index 0000000000..9bbba97f02 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.19 @@ -0,0 +1,77 @@ +VERSION='7.3.19' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=fe89d4fd4af13f76dfe7315975003518cf176520e3ccec1544a88d174f50910e +linux32_hash=cc52df02b6926bd8645c1651cd7f6637ce51c2f352d0fb3c6b9330d15194b409 +linux64_hash=d38445508c2eaf14ebb380d9c1ded321c5ebeae31c7e66800173d83cb8ddf423 +osarm64_hash=28780e0b908ad6db4b4e096f4237124be79ecc9731946d840d9c8749eb67a759 +osx64_hash=6be28d448d8e64fffc586d9b0ae4d09064a83ccaeb5b8060c651c5cd9ae06878 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.19-src b/plugins/python-build/share/python-build/pypy2.7-7.3.19-src new file mode 100644 index 0000000000..30aec5e6a6 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.19-src @@ -0,0 +1,14 @@ +VERSION='7.3.19' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=8703cdcb01f9f82966dd43b6a6018f140399db51ebb43c125c1f9a215e7bb003 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.19 b/plugins/python-build/share/python-build/pypy3.10-7.3.19 new file mode 100644 index 0000000000..13df1c38fc --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.19 @@ -0,0 +1,77 @@ +VERSION='7.3.19' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +aarch64_hash=af27a589178f11198e2244ab65ca510630ba97c131d7ccc4021eb5bc58de7f57 +linux32_hash=e63a4fcad2641ee541e852918befb513abf04ce7070f743a50778cae9f9da80e +linux64_hash=c73ac2cc2380ac9227fd297482bf2a3e17a80618ba46db7544d535515321ec1e +osarm64_hash=3db8a03fc496164801646844d7f3b12baa0adb3ad9a0b7cb124521bc2e168a36 +osx64_hash=2c5e5c2a33ac882551d7f28b98d19d486b8995aa50824a73b4edcc6aeec35c63 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.19-src b/plugins/python-build/share/python-build/pypy3.10-7.3.19-src new file mode 100644 index 0000000000..625d016f6b --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.19-src @@ -0,0 +1,14 @@ +VERSION='7.3.19' +PYVER='3.10' + +# https://www.pypy.org/checksums.html +hash=a7c22930b918f40870865ed8a74147f4434ef84d3d6ca2b3c1eba9355d4929c8 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.19 b/plugins/python-build/share/python-build/pypy3.11-7.3.19 new file mode 100644 index 0000000000..1f737eed07 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.19 @@ -0,0 +1,77 @@ +VERSION='7.3.19' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=13207dbf81ce24e96da760b1b863627b77bb20b1fb4c95191e02a0b72383df74 +linux32_hash=5c6cdafd0a0abd14ca59926ed1b6aeb13b228c18b4b46de655aae48734c731ad +linux64_hash=9177d9e0bb91b05f921c642cb0ff71a0f3653b5d29a42d40d6a078c15b75720f +osarm64_hash=7704e0d5302e53920d32dcfe9afeeb10436d4c94233e8830cf603aa955a861c1 +osx64_hash=a2439f9d30dfdae96a5e9101c7dc54a8a68b56c9d7314ea399b0a25d3e87ebb2 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.19-src b/plugins/python-build/share/python-build/pypy3.11-7.3.19-src new file mode 100644 index 0000000000..3944137988 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.19-src @@ -0,0 +1,14 @@ +VERSION='7.3.19' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=4817c044bb469a3274e60aa3645770f81eb4f9166ea7fdc4e6c351345554c8d8 + +### 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' From 44172d69f2034782fd621044434102634adf067b Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Fri, 14 Mar 2025 11:26:03 -0600 Subject: [PATCH 0926/1324] Add CPython 3.14.0a6 (#3213) --- plugins/python-build/share/python-build/3.14.0a5t | 2 -- .../python-build/share/python-build/{3.14.0a5 => 3.14.0a6} | 4 ++-- plugins/python-build/share/python-build/3.14.0a6t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0a5t rename plugins/python-build/share/python-build/{3.14.0a5 => 3.14.0a6} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0a6t diff --git a/plugins/python-build/share/python-build/3.14.0a5t b/plugins/python-build/share/python-build/3.14.0a5t deleted file mode 100644 index d84606a47c..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a5t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a5 diff --git a/plugins/python-build/share/python-build/3.14.0a5 b/plugins/python-build/share/python-build/3.14.0a6 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0a5 rename to plugins/python-build/share/python-build/3.14.0a6 index 14b1a1dee0..a674689e71 100644 --- a/plugins/python-build/share/python-build/3.14.0a5 +++ b/plugins/python-build/share/python-build/3.14.0a6 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tar.xz#74e83f26de1e4fb9eef1b56492cff92508834bb71ac13f5c580438ce9f093682" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a6" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a6.tar.xz#8d6181e5331d9a2cd6ca405ae1230e88589a043f4768ebb443d3889d45c1c35c" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.14.0a5" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a5.tgz#fba0418c29c6ff0c1e7b3c6872a8a611aab472373adbdb831b99456f87549800" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a6" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a6.tgz#8129cdb891958eb644856317f91fd1d2f1019745a983b2b01d2506584eb5be3e" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0a6t b/plugins/python-build/share/python-build/3.14.0a6t new file mode 100644 index 0000000000..ab4fc8b298 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a6t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a6 From abf1376487544fd6059d2c72e099a0b4b621206c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 15 Mar 2025 02:06:16 +0300 Subject: [PATCH 0927/1324] 2.5.4 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2132befeb7..907e43a337 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.5.4 +* Add anaconda3-2025.1.1-2 by @binbjz in https://github.com/pyenv/pyenv/pull/3198 +* Add PyPy v7.3.19 by @jsirois in https://github.com/pyenv/pyenv/pull/3205 +* Add CPython 3.14.0a6 by @nedbat in https://github.com/pyenv/pyenv/pull/3213 + ## Release v2.5.3 * Add PyPy v7.3.18 by @dand-oss in https://github.com/pyenv/pyenv/pull/3184 * Add Miniconda3 25.1.1-0 by @binbjz in https://github.com/pyenv/pyenv/pull/3190 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 26e7396a7a..4b074e801e 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.3" +version="2.5.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From c579b636967184c5748096c00beae348779663cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 18 Mar 2025 17:18:33 +0100 Subject: [PATCH 0928/1324] Add graalpy 24.2 (#3215) --- .../share/python-build/graalpy-24.2.0 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.2.0 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.2.0 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.2.0 diff --git a/plugins/python-build/share/python-build/graalpy-24.2.0 b/plugins/python-build/share/python-build/graalpy-24.2.0 new file mode 100644 index 0000000000..05d212a937 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.2.0 @@ -0,0 +1,64 @@ +# Copyright (c) 2025, 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='24.2.0' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="06381ebe89a242bbb66afdc7dc35d21ae537f7eb130f16db1f0e94c2a65249ba" + ;; +"linux-aarch64" ) + checksum="a80f4fe8c4b2ad53af6e5090bab462c7d0797b9b281e35bfc8284b703610c5cf" + ;; +"macos-amd64" ) + checksum="dafd706de39041887d016ef84413f5252d085b03ad47a44a6f680f40ed1a87e4" + ;; +"macos-aarch64" ) + checksum="108ad4c15b814aecc5b69b83a10a3a5e8982c656c4b639740d034a4783eb3839" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.2.0 b/plugins/python-build/share/python-build/graalpy-community-24.2.0 new file mode 100644 index 0000000000..7f102744a0 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.2.0 @@ -0,0 +1,54 @@ +# Copyright (c) 2025, 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='24.2.0' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="a3be9d91af186e270819cd3983507e073eeba33a303c5e5bec05ed1ac6078262" + ;; +"linux-aarch64" ) + checksum="6d5792eaebdf7847e1e75089f5d1f15f3762e55b8c69ea5631108c0e737cbf45" + ;; +"macos-amd64" ) + checksum="4a16be069341bdb3597d39c09eb11bfb994504f1c4c4b114cbb4489555229b6f" + ;; +"macos-aarch64" ) + checksum="bed8b15bc260a899766a2051d87c6fe9172c30751fa9c2e9a7ea2f5c8c49b781" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 004f6706a19072caf4132ddbbb3ef9fff7e97244 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 27 Mar 2025 23:35:50 +0300 Subject: [PATCH 0929/1324] Switch 3.9+ to OpenSSL 3 (#3223) --- plugins/python-build/share/python-build/3.10-dev | 2 +- plugins/python-build/share/python-build/3.10.0 | 2 +- plugins/python-build/share/python-build/3.10.1 | 2 +- plugins/python-build/share/python-build/3.10.10 | 2 +- plugins/python-build/share/python-build/3.10.11 | 2 +- plugins/python-build/share/python-build/3.10.12 | 2 +- plugins/python-build/share/python-build/3.10.13 | 2 +- plugins/python-build/share/python-build/3.10.14 | 2 +- plugins/python-build/share/python-build/3.10.15 | 2 +- plugins/python-build/share/python-build/3.10.16 | 2 +- plugins/python-build/share/python-build/3.10.2 | 2 +- plugins/python-build/share/python-build/3.10.3 | 2 +- plugins/python-build/share/python-build/3.10.4 | 2 +- plugins/python-build/share/python-build/3.10.5 | 2 +- plugins/python-build/share/python-build/3.10.6 | 2 +- plugins/python-build/share/python-build/3.10.7 | 2 +- plugins/python-build/share/python-build/3.10.8 | 2 +- plugins/python-build/share/python-build/3.10.9 | 2 +- plugins/python-build/share/python-build/3.11-dev | 2 +- plugins/python-build/share/python-build/3.11.0 | 2 +- plugins/python-build/share/python-build/3.11.1 | 2 +- plugins/python-build/share/python-build/3.11.2 | 2 +- plugins/python-build/share/python-build/3.11.3 | 2 +- plugins/python-build/share/python-build/3.11.4 | 2 +- plugins/python-build/share/python-build/3.9-dev | 2 +- plugins/python-build/share/python-build/3.9.0 | 2 +- plugins/python-build/share/python-build/3.9.1 | 2 +- plugins/python-build/share/python-build/3.9.10 | 2 +- plugins/python-build/share/python-build/3.9.11 | 2 +- plugins/python-build/share/python-build/3.9.12 | 2 +- plugins/python-build/share/python-build/3.9.13 | 2 +- plugins/python-build/share/python-build/3.9.14 | 2 +- plugins/python-build/share/python-build/3.9.15 | 2 +- plugins/python-build/share/python-build/3.9.16 | 2 +- plugins/python-build/share/python-build/3.9.17 | 2 +- plugins/python-build/share/python-build/3.9.18 | 2 +- plugins/python-build/share/python-build/3.9.19 | 2 +- plugins/python-build/share/python-build/3.9.2 | 2 +- plugins/python-build/share/python-build/3.9.20 | 2 +- plugins/python-build/share/python-build/3.9.21 | 2 +- plugins/python-build/share/python-build/3.9.4 | 2 +- plugins/python-build/share/python-build/3.9.5 | 2 +- plugins/python-build/share/python-build/3.9.6 | 2 +- plugins/python-build/share/python-build/3.9.7 | 2 +- plugins/python-build/share/python-build/3.9.8 | 2 +- plugins/python-build/share/python-build/3.9.9 | 2 +- 46 files changed, 46 insertions(+), 46 deletions(-) diff --git a/plugins/python-build/share/python-build/3.10-dev b/plugins/python-build/share/python-build/3.10-dev index a7088bfbf9..daa21f39d4 100644 --- a/plugins/python-build/share/python-build/3.10-dev +++ b/plugins/python-build/share/python-build/3.10-dev @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 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 diff --git a/plugins/python-build/share/python-build/3.10.0 b/plugins/python-build/share/python-build/3.10.0 index b55ce42a50..9eec8f5fcf 100644 --- a/plugins/python-build/share/python-build/3.10.0 +++ b/plugins/python-build/share/python-build/3.10.0 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 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 diff --git a/plugins/python-build/share/python-build/3.10.1 b/plugins/python-build/share/python-build/3.10.1 index 7a2f71a411..74568c15b3 100644 --- a/plugins/python-build/share/python-build/3.10.1 +++ b/plugins/python-build/share/python-build/3.10.1 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 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 diff --git a/plugins/python-build/share/python-build/3.10.10 b/plugins/python-build/share/python-build/3.10.10 index bdab1b7596..b30b38fa81 100644 --- a/plugins/python-build/share/python-build/3.10.10 +++ b/plugins/python-build/share/python-build/3.10.10 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.11 b/plugins/python-build/share/python-build/3.10.11 index 2c84bd8fe4..3376dead7a 100644 --- a/plugins/python-build/share/python-build/3.10.11 +++ b/plugins/python-build/share/python-build/3.10.11 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.12 b/plugins/python-build/share/python-build/3.10.12 index 3d97afed1c..01aeace33e 100644 --- a/plugins/python-build/share/python-build/3.10.12 +++ b/plugins/python-build/share/python-build/3.10.12 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.13 b/plugins/python-build/share/python-build/3.10.13 index ccd3f79121..af2f2a085c 100644 --- a/plugins/python-build/share/python-build/3.10.13 +++ b/plugins/python-build/share/python-build/3.10.13 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.14 b/plugins/python-build/share/python-build/3.10.14 index 0b062fec93..6bbe017bff 100644 --- a/plugins/python-build/share/python-build/3.10.14 +++ b/plugins/python-build/share/python-build/3.10.14 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.15 b/plugins/python-build/share/python-build/3.10.15 index a42cd11853..b161333760 100644 --- a/plugins/python-build/share/python-build/3.10.15 +++ b/plugins/python-build/share/python-build/3.10.15 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.16 b/plugins/python-build/share/python-build/3.10.16 index c5b61f4612..6a1d62b551 100644 --- a/plugins/python-build/share/python-build/3.10.16 +++ b/plugins/python-build/share/python-build/3.10.16 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.2 b/plugins/python-build/share/python-build/3.10.2 index 9e92b000b1..e0bd41891c 100644 --- a/plugins/python-build/share/python-build/3.10.2 +++ b/plugins/python-build/share/python-build/3.10.2 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 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 diff --git a/plugins/python-build/share/python-build/3.10.3 b/plugins/python-build/share/python-build/3.10.3 index 116a3a8a68..306a770bf3 100644 --- a/plugins/python-build/share/python-build/3.10.3 +++ b/plugins/python-build/share/python-build/3.10.3 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 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 diff --git a/plugins/python-build/share/python-build/3.10.4 b/plugins/python-build/share/python-build/3.10.4 index 16bf24c735..58ccc89705 100644 --- a/plugins/python-build/share/python-build/3.10.4 +++ b/plugins/python-build/share/python-build/3.10.4 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 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 diff --git a/plugins/python-build/share/python-build/3.10.5 b/plugins/python-build/share/python-build/3.10.5 index 71be01eb8b..ecaa5082d5 100644 --- a/plugins/python-build/share/python-build/3.10.5 +++ b/plugins/python-build/share/python-build/3.10.5 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.6 b/plugins/python-build/share/python-build/3.10.6 index 6a9c84abec..8f19a0d431 100644 --- a/plugins/python-build/share/python-build/3.10.6 +++ b/plugins/python-build/share/python-build/3.10.6 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.7 b/plugins/python-build/share/python-build/3.10.7 index 0e1b04bf5b..9d5eb3f146 100644 --- a/plugins/python-build/share/python-build/3.10.7 +++ b/plugins/python-build/share/python-build/3.10.7 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.8 b/plugins/python-build/share/python-build/3.10.8 index b5d4773985..02d9162fd6 100644 --- a/plugins/python-build/share/python-build/3.10.8 +++ b/plugins/python-build/share/python-build/3.10.8 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.10.9 b/plugins/python-build/share/python-build/3.10.9 index 2486eaba41..a18d67c444 100644 --- a/plugins/python-build/share/python-build/3.10.9 +++ b/plugins/python-build/share/python-build/3.10.9 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1o" "https://www.openssl.org/source/openssl-1.1.1o.tar.gz#9384a2b0570dd80358841464677115df785edb941c71211f75076d72fe6b438f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.11-dev b/plugins/python-build/share/python-build/3.11-dev index 904f2138ed..9aa935bf8e 100644 --- a/plugins/python-build/share/python-build/3.11-dev +++ b/plugins/python-build/share/python-build/3.11-dev @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.11.0 b/plugins/python-build/share/python-build/3.11.0 index f96cb69d4d..1dc73d5910 100644 --- a/plugins/python-build/share/python-build/3.11.0 +++ b/plugins/python-build/share/python-build/3.11.0 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/3.11.1 b/plugins/python-build/share/python-build/3.11.1 index 23a3c31079..2ff94135f8 100644 --- a/plugins/python-build/share/python-build/3.11.1 +++ b/plugins/python-build/share/python-build/3.11.1 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.2 b/plugins/python-build/share/python-build/3.11.2 index ab048e365e..20122d1771 100644 --- a/plugins/python-build/share/python-build/3.11.2 +++ b/plugins/python-build/share/python-build/3.11.2 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.3 b/plugins/python-build/share/python-build/3.11.3 index f9fd9d906e..4b1ab6f5b6 100644 --- a/plugins/python-build/share/python-build/3.11.3 +++ b/plugins/python-build/share/python-build/3.11.3 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.4 b/plugins/python-build/share/python-build/3.11.4 index ee1462320c..b6819e943b 100644 --- a/plugins/python-build/share/python-build/3.11.4 +++ b/plugins/python-build/share/python-build/3.11.4 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.9-dev b/plugins/python-build/share/python-build/3.9-dev index 8133804206..d42b3bdac6 100644 --- a/plugins/python-build/share/python-build/3.9-dev +++ b/plugins/python-build/share/python-build/3.9-dev @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/share/python-build/3.9.0 b/plugins/python-build/share/python-build/3.9.0 index 28e2ca1a8e..91e79e166f 100644 --- a/plugins/python-build/share/python-build/3.9.0 +++ b/plugins/python-build/share/python-build/3.9.0 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/share/python-build/3.9.1 b/plugins/python-build/share/python-build/3.9.1 index 237743a5dc..18cfb476fa 100644 --- a/plugins/python-build/share/python-build/3.9.1 +++ b/plugins/python-build/share/python-build/3.9.1 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/share/python-build/3.9.10 b/plugins/python-build/share/python-build/3.9.10 index 283c543df3..5191c8f08e 100644 --- a/plugins/python-build/share/python-build/3.9.10 +++ b/plugins/python-build/share/python-build/3.9.10 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.11 b/plugins/python-build/share/python-build/3.9.11 index 50ddeb174c..7dfbc80425 100644 --- a/plugins/python-build/share/python-build/3.9.11 +++ b/plugins/python-build/share/python-build/3.9.11 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.12 b/plugins/python-build/share/python-build/3.9.12 index 2a0bcc84ee..eed5c9106a 100644 --- a/plugins/python-build/share/python-build/3.9.12 +++ b/plugins/python-build/share/python-build/3.9.12 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.13 b/plugins/python-build/share/python-build/3.9.13 index 2dfd878476..bae24465b7 100644 --- a/plugins/python-build/share/python-build/3.9.13 +++ b/plugins/python-build/share/python-build/3.9.13 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.14 b/plugins/python-build/share/python-build/3.9.14 index 586743a943..a347e9670d 100644 --- a/plugins/python-build/share/python-build/3.9.14 +++ b/plugins/python-build/share/python-build/3.9.14 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.15 b/plugins/python-build/share/python-build/3.9.15 index a62ad1597e..8fb1309a87 100644 --- a/plugins/python-build/share/python-build/3.9.15 +++ b/plugins/python-build/share/python-build/3.9.15 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.16 b/plugins/python-build/share/python-build/3.9.16 index 11345f10db..5a184522c8 100644 --- a/plugins/python-build/share/python-build/3.9.16 +++ b/plugins/python-build/share/python-build/3.9.16 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.17 b/plugins/python-build/share/python-build/3.9.17 index 32aecb8dde..3964ce5586 100644 --- a/plugins/python-build/share/python-build/3.9.17 +++ b/plugins/python-build/share/python-build/3.9.17 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.18 b/plugins/python-build/share/python-build/3.9.18 index 5d524e95c2..57cacd37ca 100644 --- a/plugins/python-build/share/python-build/3.9.18 +++ b/plugins/python-build/share/python-build/3.9.18 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.19 b/plugins/python-build/share/python-build/3.9.19 index b6c1e5baf1..a30911d218 100644 --- a/plugins/python-build/share/python-build/3.9.19 +++ b/plugins/python-build/share/python-build/3.9.19 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.2 b/plugins/python-build/share/python-build/3.9.2 index e4456eca47..d72cba6263 100644 --- a/plugins/python-build/share/python-build/3.9.2 +++ b/plugins/python-build/share/python-build/3.9.2 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1i" "https://www.openssl.org/source/old/1.1.1/openssl-1.1.1i.tar.gz#e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242" 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 diff --git a/plugins/python-build/share/python-build/3.9.20 b/plugins/python-build/share/python-build/3.9.20 index a3af19d8a9..e405f827fe 100644 --- a/plugins/python-build/share/python-build/3.9.20 +++ b/plugins/python-build/share/python-build/3.9.20 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.21 b/plugins/python-build/share/python-build/3.9.21 index 4a317c638c..021f9dddae 100644 --- a/plugins/python-build/share/python-build/3.9.21 +++ b/plugins/python-build/share/python-build/3.9.21 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.4 b/plugins/python-build/share/python-build/3.9.4 index 2e5cd7bf9c..f4440e69b9 100644 --- a/plugins/python-build/share/python-build/3.9.4 +++ b/plugins/python-build/share/python-build/3.9.4 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-1.1.1k" "https://www.openssl.org/source/openssl-1.1.1k.tar.gz#892a0875b9872acd04a9fde79b1f943075d5ea162415de3047c327df33fbaee5" 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 diff --git a/plugins/python-build/share/python-build/3.9.5 b/plugins/python-build/share/python-build/3.9.5 index cbf1b53f91..bcebf5a417 100644 --- a/plugins/python-build/share/python-build/3.9.5 +++ b/plugins/python-build/share/python-build/3.9.5 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.6 b/plugins/python-build/share/python-build/3.9.6 index 20e42dddbe..e7eb862262 100644 --- a/plugins/python-build/share/python-build/3.9.6 +++ b/plugins/python-build/share/python-build/3.9.6 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.7 b/plugins/python-build/share/python-build/3.9.7 index 659d388e6d..dcdec7f2dd 100644 --- a/plugins/python-build/share/python-build/3.9.7 +++ b/plugins/python-build/share/python-build/3.9.7 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.8 b/plugins/python-build/share/python-build/3.9.8 index 10ac89e662..3d90c3bcb3 100644 --- a/plugins/python-build/share/python-build/3.9.8 +++ b/plugins/python-build/share/python-build/3.9.8 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" diff --git a/plugins/python-build/share/python-build/3.9.9 b/plugins/python-build/share/python-build/3.9.9 index bdd1579b28..d6445a3ae9 100644 --- a/plugins/python-build/share/python-build/3.9.9 +++ b/plugins/python-build/share/python-build/3.9.9 @@ -1,4 +1,4 @@ -prefer_openssl11 +prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 # Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" From 67f474d3e30dda469a6e181a0de0657176587c46 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 28 Mar 2025 00:03:17 +0300 Subject: [PATCH 0930/1324] Add miniforge3-24.11.3-1, miniforge3-24.11.3-2, miniforge3-25.1.1 (#3224) --- .../share/python-build/miniforge3-24.11.3-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-24.11.3-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.1.1-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.1.1-2 | 25 +++++++++++++++++++ 4 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.3-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-24.11.3-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.1.1-2 diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.3-1 b/plugins/python-build/share/python-build/miniforge3-24.11.3-1 new file mode 100644 index 0000000000..f81d46e7e2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.3-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.3-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-1/Miniforge3-24.11.3-1-Linux-aarch64.sh#64ee999aaa1e81968345382569780dae499bdc680751b1b408e2030c51397d49" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.3-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-1/Miniforge3-24.11.3-1-Linux-ppc64le.sh#db36c2024ca0b7216a91faebb20de11bca3d8baa4e3c8b253a65e3d9149f6e72" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.3-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-1/Miniforge3-24.11.3-1-Linux-x86_64.sh#2163c5c29661ae2850c00a9d03af82db795b822d391ae68a5f8cce62a7483a54" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.3-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-1/Miniforge3-24.11.3-1-MacOSX-arm64.sh#a2c3cfe749325634b2c29103f7c65a160e9c0ddc6b3c35528b0921ba3f6e9a91" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.3-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-1/Miniforge3-24.11.3-1-MacOSX-x86_64.sh#304bb96966caeb96e7ccd1859bf81f6abf15de667c144bf3600cbeaf3491033c" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-24.11.3-2 b/plugins/python-build/share/python-build/miniforge3-24.11.3-2 new file mode 100644 index 0000000000..541db6a123 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-24.11.3-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-24.11.3-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-2/Miniforge3-24.11.3-2-Linux-aarch64.sh#d61942220d28e2103ad6303de808fec52d2e276fa698e2ae5d8ab865e194c504" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-24.11.3-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-2/Miniforge3-24.11.3-2-Linux-ppc64le.sh#7e312337a1a34c88802ff300a50ff785c6db85a8e518ee1cdc0d58085e0ad08e" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-24.11.3-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-2/Miniforge3-24.11.3-2-Linux-x86_64.sh#65af53dad30b3fcbd1cb1d4ad62fd3a86221464754844544558aae3a28795189" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-24.11.3-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-2/Miniforge3-24.11.3-2-MacOSX-arm64.sh#a20f9dd033fcdb26329abab726bfddf22de44bf1d37030bb212cf52120b26618" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-24.11.3-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/24.11.3-2/Miniforge3-24.11.3-2-MacOSX-x86_64.sh#164f9891ca2338d9c748d1d007d081d1206ae255264df201493204b93b8ba484" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.1.1-1 b/plugins/python-build/share/python-build/miniforge3-25.1.1-1 new file mode 100644 index 0000000000..0424ed2c68 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.1.1-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.1.1-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-1/Miniforge3-25.1.1-1-Linux-aarch64.sh#2e9889a77e32b322ce4aef26e465ff44f6493de66243faae9528c1d57c2a91e9" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.1.1-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-1/Miniforge3-25.1.1-1-Linux-ppc64le.sh#2e47c220ff4c6f074c30ec977bb925861597e588c63dbb8df7c4aebf89c70c38" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.1.1-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-1/Miniforge3-25.1.1-1-Linux-x86_64.sh#73ccbf68c018df3f30bbe15cd69235b5994d8b32b62d50d9389be89736d0a08d" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.1.1-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-1/Miniforge3-25.1.1-1-MacOSX-arm64.sh#288dcf12f3c9a054ba004e4d7b38467653e0084949ded152145079047ae8f94e" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.1.1-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-1/Miniforge3-25.1.1-1-MacOSX-x86_64.sh#02500e29f3956211fcbfeda20756fd5d05c537ff5e6d0f530d9003729105fae2" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.1.1-2 b/plugins/python-build/share/python-build/miniforge3-25.1.1-2 new file mode 100644 index 0000000000..30bf4658ee --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.1.1-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.1.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-2/Miniforge3-25.1.1-2-Linux-aarch64.sh#99e5b987d6662ce956db33beab94b330a7024561b7f14e79f7ee413100f20927" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.1.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-2/Miniforge3-25.1.1-2-Linux-ppc64le.sh#47f8bdffef0bb72e31db2bf26764bb64956528f792db33e03e4c414fee69c629" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.1.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-2/Miniforge3-25.1.1-2-Linux-x86_64.sh#d1090d98cbae7ed8a9ae19a92cfba6fc47cdc48c8c9b679df78408dba6820eff" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.1.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-2/Miniforge3-25.1.1-2-MacOSX-arm64.sh#a85a688a7b5a536974b939e2b774c0e98b1f9417a81ab01d0ae4ff192d98e2ac" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.1.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.1.1-2/Miniforge3-25.1.1-2-MacOSX-x86_64.sh#172d0445149d85abd266e59d7d829106ab503cd6fba131819c9a1db9daa4e7ea" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 323bd16fbf555ea902a1149a1e896da5e6a84106 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 9 Apr 2025 21:56:48 +0300 Subject: [PATCH 0931/1324] Add CPython 3.9.22, 3.10.17, 3.11.12, 3.12.10, 3.13.3, 3.14.0a7 (#3233) Co-authored-by: Ned Batchelder --- plugins/python-build/share/python-build/3.10.17 | 9 +++++++++ plugins/python-build/share/python-build/3.11.12 | 10 ++++++++++ plugins/python-build/share/python-build/3.12.10 | 9 +++++++++ plugins/python-build/share/python-build/3.13.3 | 9 +++++++++ plugins/python-build/share/python-build/3.13.3t | 2 ++ plugins/python-build/share/python-build/3.14.0a6t | 2 -- .../share/python-build/{3.14.0a6 => 3.14.0a7} | 4 ++-- plugins/python-build/share/python-build/3.14.0a7t | 2 ++ plugins/python-build/share/python-build/3.9.22 | 12 ++++++++++++ 9 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.10.17 create mode 100644 plugins/python-build/share/python-build/3.11.12 create mode 100644 plugins/python-build/share/python-build/3.12.10 create mode 100644 plugins/python-build/share/python-build/3.13.3 create mode 100644 plugins/python-build/share/python-build/3.13.3t delete mode 100644 plugins/python-build/share/python-build/3.14.0a6t rename plugins/python-build/share/python-build/{3.14.0a6 => 3.14.0a7} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0a7t create mode 100644 plugins/python-build/share/python-build/3.9.22 diff --git a/plugins/python-build/share/python-build/3.10.17 b/plugins/python-build/share/python-build/3.10.17 new file mode 100644 index 0000000000..26e4817fc9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.17 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.17" "https://www.python.org/ftp/python/3.10.17/Python-3.10.17.tar.xz#4c68050f049d1b4ac5aadd0df5f27941c0350d2a9e7ab0907ee5eb5225d9d6b0" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.17" "https://www.python.org/ftp/python/3.10.17/Python-3.10.17.tgz#8fcda0fbdc131859a4a4223abb925fd522a77e3fb3b52c46cea5f3bc2ae0cd9f" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.12 b/plugins/python-build/share/python-build/3.11.12 new file mode 100644 index 0000000000..ca860cc946 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.12 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" 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.11.12" "https://www.python.org/ftp/python/3.11.12/Python-3.11.12.tar.xz#849da87af4df137710c1796e276a955f7a85c9f971081067c8f565d15c352a09" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.12" "https://www.python.org/ftp/python/3.11.12/Python-3.11.12.tgz#379c9929a989a9d65a1f5d854e011f4872b142259f4fc0a8c4062d2815ed7fba" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.12.10 b/plugins/python-build/share/python-build/3.12.10 new file mode 100644 index 0000000000..75258a1d9c --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.10 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.3" "https://github.com/openssl/openssl/releases/download/openssl-3.3.3/openssl-3.3.3.tar.gz#712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539" 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.10" "https://www.python.org/ftp/python/3.12.10/Python-3.12.10.tar.xz#07ab697474595e06f06647417d3c7fa97ded07afc1a7e4454c5639919b46eaea" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.10" "https://www.python.org/ftp/python/3.12.10/Python-3.12.10.tgz#15d9c623abfd2165fe816ea1fb385d6ed8cf3c664661ab357f1782e3036a6dac" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.3 b/plugins/python-build/share/python-build/3.13.3 new file mode 100644 index 0000000000..32f5c79a3a --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.3 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.3" "https://www.python.org/ftp/python/3.13.3/Python-3.13.3.tar.xz#40f868bcbdeb8149a3149580bb9bfd407b3321cd48f0be631af955ac92c0e041" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.3" "https://www.python.org/ftp/python/3.13.3/Python-3.13.3.tgz#988d735a6d33568cbaff1384a65cb22a1fb18a9ecb73d43ef868000193ce23ed" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.3t b/plugins/python-build/share/python-build/3.13.3t new file mode 100644 index 0000000000..a3bb97b87a --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.3t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.3 diff --git a/plugins/python-build/share/python-build/3.14.0a6t b/plugins/python-build/share/python-build/3.14.0a6t deleted file mode 100644 index ab4fc8b298..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a6t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a6 diff --git a/plugins/python-build/share/python-build/3.14.0a6 b/plugins/python-build/share/python-build/3.14.0a7 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0a6 rename to plugins/python-build/share/python-build/3.14.0a7 index a674689e71..742117b0db 100644 --- a/plugins/python-build/share/python-build/3.14.0a6 +++ b/plugins/python-build/share/python-build/3.14.0a7 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0a6" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a6.tar.xz#8d6181e5331d9a2cd6ca405ae1230e88589a043f4768ebb443d3889d45c1c35c" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a7" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a7.tar.xz#71adbcec3ac9edf93308e55cfb4184f2eb4b16fda2bb0a5a382929ed29c8386d" standard verify_py313 copy_python_gdb ensurepip else - install_package "Python-3.14.0a6" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a6.tgz#8129cdb891958eb644856317f91fd1d2f1019745a983b2b01d2506584eb5be3e" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0a7" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a7.tgz#381cc699c1dff5153ab76bff4c6d1f916069be39d0231ee20390f42785b9c046" standard verify_py313 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0a7t b/plugins/python-build/share/python-build/3.14.0a7t new file mode 100644 index 0000000000..8ec827fc22 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0a7t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a7 diff --git a/plugins/python-build/share/python-build/3.9.22 b/plugins/python-build/share/python-build/3.9.22 new file mode 100644 index 0000000000..0e03b4b253 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.22 @@ -0,0 +1,12 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-3.0.16" "https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz#57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.22" "https://www.python.org/ftp/python/3.9.22/Python-3.9.22.tar.xz#8c136d199d3637a1fce98a16adc809c1d83c922d02d41f3614b34f8b6e7d38ec" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.22" "https://www.python.org/ftp/python/3.9.22/Python-3.9.22.tgz#76f4daef4ffce6fd107280a0db8d108b1f896c1c22f09d8300efd90a69c4298b" standard verify_py39 copy_python_gdb ensurepip +fi From 97993fcc26999fb9f9d2172afd6914738df274d8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 9 Apr 2025 23:00:35 +0300 Subject: [PATCH 0932/1324] 2.5.5 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 907e43a337..b2e344087a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.5.5 +* Add graalpy 24.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3215 +* Switch 3.9+ to OpenSSL 3 by @native-api in https://github.com/pyenv/pyenv/pull/3223 +* Add miniforge3-24.11.3-1, miniforge3-24.11.3-2, miniforge3-25.1.1 by @native-api in https://github.com/pyenv/pyenv/pull/3224 +* Add CPython 3.9.22, 3.10.17, 3.11.12, 3.12.10, 3.13.3, 3.14.0a7 by @native-api in https://github.com/pyenv/pyenv/pull/3233 + ## Release v2.5.4 * Add anaconda3-2025.1.1-2 by @binbjz in https://github.com/pyenv/pyenv/pull/3198 * Add PyPy v7.3.19 by @jsirois in https://github.com/pyenv/pyenv/pull/3205 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 4b074e801e..bd7a205c76 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.4" +version="2.5.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 323af282db0a7798090b612065632f7dcef7246c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 16 Apr 2025 20:08:46 +0200 Subject: [PATCH 0933/1324] Add GraalPy 24.2.1 (#3238) --- .../share/python-build/graalpy-24.2.1 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.2.1 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.2.1 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.2.1 diff --git a/plugins/python-build/share/python-build/graalpy-24.2.1 b/plugins/python-build/share/python-build/graalpy-24.2.1 new file mode 100644 index 0000000000..0cf664df80 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.2.1 @@ -0,0 +1,64 @@ +# Copyright (c) 2025, 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='24.2.1' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="55872af24819cb99efa2338db057aeda0c8f9dd412a4a6f5ea19b256ee82fd9e" + ;; +"linux-aarch64" ) + checksum="2a80800a76ee6b737d6458ba9ab30ce386dfdd5b2b2bec3ee6bc51fd8e51e7c2" + ;; +"macos-amd64" ) + checksum="4bc42b36117c9ab09c4f411ec5a7a85ed58521dd20b529d971bb0ed3d0b7c363" + ;; +"macos-aarch64" ) + checksum="61e11d5176d5bb709b919979ef3525f4db1e39c404b59aa54d887f56bf8fab44" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.2.1 b/plugins/python-build/share/python-build/graalpy-community-24.2.1 new file mode 100644 index 0000000000..ca2ee6d7e0 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.2.1 @@ -0,0 +1,54 @@ +# Copyright (c) 2025, 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='24.2.1' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="96c1f332604f8425df0bb694d435d932cdf21c302e452cd10cf78a1626ba90a0" + ;; +"linux-aarch64" ) + checksum="676eefe6011a1a2c01997c7a3cea92817f0d9de7e608d561eb5255a1e5350eff" + ;; +"macos-amd64" ) + checksum="0d0a50cc93457bdebab992af287a275d0b364fcbd90b68cdf08ae9c64e3a1aca" + ;; +"macos-aarch64" ) + checksum="ec31fc1f024938e6dc193013a365c23ad3d532498c93c80c3af607a853964909" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From ee40ad2253c83b317825dba88947bbaa62de1e34 Mon Sep 17 00:00:00 2001 From: David Lawson Date: Tue, 29 Apr 2025 18:58:49 +0100 Subject: [PATCH 0934/1324] Fix get-pip URLs for 3.7, 3.8 and Pyston (#3242) Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index de698ce431..03f03ec459 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2434,6 +2434,12 @@ if [ -z "${GET_PIP_URL}" ]; then 3.6 | 3.6.* | pypy3.6 | pypy3.6-* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/3.6/get-pip.py" ;; + 3.7 | 3.7.* | pypy3.7 | pypy3.7-* ) + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.7/get-pip.py" + ;; + 3.8 | 3.8.* | pypy3.8 | pypy3.8-* | pyston* ) + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.8/get-pip.py" + ;; * ) GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py" ;; From bc7b6cb6b50c1bf86891b1a34c43203919fe7ed3 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 6 May 2025 19:17:36 +0300 Subject: [PATCH 0935/1324] Cache `uname` and `sw_vers` output (#3244) Mainly for tests, to avoid having to adjust call counts for stubs when the logic changes --- plugins/python-build/bin/python-build | 30 ++++---- plugins/python-build/test/build.bats | 91 +++++++++++------------- plugins/python-build/test/compiler.bats | 12 ++-- plugins/python-build/test/pyenv_ext.bats | 22 +++--- 4 files changed, 76 insertions(+), 79 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 03f03ec459..661f43711b 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -106,7 +106,7 @@ os_information() { if type -p lsb_release >/dev/null; then lsb_release -sir | xargs echo elif type -p sw_vers >/dev/null; then - echo "OS X $(sw_vers -productVersion)" + echo "OS X ${_PYTHON_BUILD_CACHE_SW_VERS:=$(sw_vers -productVersion)}" elif [ -r /etc/os-release ]; then source /etc/os-release echo "$NAME" $VERSION_ID @@ -117,7 +117,7 @@ os_information() { } is_mac() { - [ "$(uname -s)" = "Darwin" ] || return 1 + [ "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" = "Darwin" ] || return 1 [ $# -eq 0 ] || [ "$(osx_version)" "$@" ] } @@ -140,7 +140,7 @@ can_use_homebrew() { # 10.10 -> 1010 osx_version() { local -a ver - IFS=. ver=( `sw_vers -productVersion` ) + IFS=. ver=( ${_PYTHON_BUILD_CACHE_SW_VERS:=$(sw_vers -productVersion)} ) IFS="$OLDIFS" echo $(( ${ver[0]}*100 + ${ver[1]} )) } @@ -179,7 +179,7 @@ file_is_not_empty() { num_cpu_cores() { local num - case "$(uname -s)" in + case "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" in Darwin | *BSD ) num="$(sysctl -n hw.ncpu 2>/dev/null || true)" ;; @@ -971,7 +971,7 @@ build_package_micropython() { } pypy_architecture() { - case "$(uname -s)" in + case "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" in "Darwin" ) case "$(uname -m)" in "arm64" ) echo "osarm64" ;; @@ -1003,7 +1003,7 @@ pypy_architecture() { } graalpy_architecture() { - case "$(uname -s)" in + case "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" in "Darwin" ) case "$(uname -m)" in "x86_64" ) echo "macos-amd64" ;; @@ -1084,7 +1084,7 @@ build_package_pypy_builder() { } activepython_architecture() { - case "$(uname -s)" in + case "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" in "Darwin" ) echo "macosx10.9-i386-x86_64" ;; "Linux" ) case "$(uname -m)" in @@ -1104,7 +1104,7 @@ build_package_activepython() { } anaconda_architecture() { - case "$(uname -s)" in + case "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" in "Darwin" ) case "$(uname -m)" in "arm64" ) echo "MacOSX-arm64" ;; @@ -1381,7 +1381,7 @@ require_osx_version() { function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; } local required_version="$@" - local osx_version="$(sw_vers -productVersion)" + local osx_version="${_PYTHON_BUILD_CACHE_SW_VERS:=$(sw_vers -productVersion)}" if [[ $(version $osx_version) -ge $(version $required_version) ]]; then return 0 fi @@ -1457,14 +1457,14 @@ use_homebrew_yaml() { use_freebsd_pkg() { # check if FreeBSD - if [ "FreeBSD" = "$(uname -s)" ]; then + if [ "FreeBSD" = "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" ]; then # use openssl if installed from Ports Collection if pkg info -e openssl; then package_option python configure --with-openssl="/usr/local" fi # check if 11-R or later - release="$(uname -r)" + release="${_PYTHON_BUILD_CACHE_UNAME_R:=$(uname -r)}" if [ "${release%%.*}" -ge 11 ]; then # Use packages from Ports Collection. # @@ -2251,11 +2251,13 @@ if [ -n "$noexec" ]; then fi if [ -z "$MAKE" ]; then - if [ "FreeBSD" = "$(uname -s)" ]; then + if [ "FreeBSD" = "${_PYTHON_BUILD_CACHE_UNAME_S:=$(uname -s)}" ]; then if [ "$(echo $1 | sed 's/-.*$//')" = "jruby" ]; then export MAKE="gmake" else - if [ "$(uname -r | sed 's/[^[:digit:]].*//')" -lt 10 ]; then + # var assignment inside $() does not propagate due to being in subshell + : "${_PYTHON_BUILD_CACHE_UNAME_R:=$(uname -r)}" + if [ "$(echo "$_PYTHON_BUILD_CACHE_UNAME_R" | sed 's/[^[:digit:]].*//')" -lt 10 ]; then export MAKE="gmake" else export MAKE="make" @@ -2450,7 +2452,7 @@ fi # Set MACOSX_DEPLOYMENT_TARGET from the product version of OS X (#219, #220) if is_mac; then if [ -z "${MACOSX_DEPLOYMENT_TARGET}" ]; then - MACOS_VERSION="$(sw_vers -productVersion 2>/dev/null || true)" + MACOS_VERSION="${_PYTHON_BUILD_CACHE_SW_VERS:=$(sw_vers -productVersion)}" MACOS_VERSION_ARRAY=(${MACOS_VERSION//\./ }) if [ "${#MACOS_VERSION_ARRAY[@]}" -ge 2 ]; then export MACOSX_DEPLOYMENT_TARGET="${MACOS_VERSION_ARRAY[0]}.${MACOS_VERSION_ARRAY[1]}" diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 8e3ce566b9..b0b054cf0e 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -62,7 +62,7 @@ assert_build_log() { cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub brew false stub_make_install stub_make_install @@ -104,7 +104,7 @@ OUT cached_tarball "yaml-0.1.6" "$yaml_configure" cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub brew false stub_make_install stub_make_install "$PYTHON_MAKE_INSTALL_TARGET" @@ -132,7 +132,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub brew false stub_make_install stub_make_install @@ -162,7 +162,7 @@ OUT cached_tarball "yaml-0.1.6" cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub brew false stub_make_install stub_make_install @@ -194,8 +194,8 @@ OUT BREW_PREFIX="$TMP/homebrew-prefix" mkdir -p "$BREW_PREFIX" - for i in {1..9}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' stub brew "--prefix : echo '$BREW_PREFIX'" false stub_make_install @@ -222,8 +222,8 @@ OUT brew_libdir="$TMP/homebrew-yaml" mkdir -p "$brew_libdir" - for i in {1..10}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' stub brew "--prefix libyaml : echo '$brew_libdir'" for i in {1..6}; do stub brew false; done stub_make_install @@ -249,8 +249,8 @@ OUT readline_libdir="$TMP/homebrew-readline" mkdir -p "$readline_libdir" - for i in {1..8}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' for i in {1..3}; do stub brew false; done stub brew "--prefix readline : echo '$readline_libdir'" for i in {1..2}; do stub brew false; done @@ -279,8 +279,8 @@ OUT ncurses_libdir="$TMP/homebrew-ncurses" mkdir -p "$ncurses_libdir" - for i in {1..9}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' for i in {1..4}; do stub brew false; done stub brew "--prefix ncurses : echo '$ncurses_libdir'" stub brew false @@ -307,9 +307,8 @@ OUT @test "openssl is linked from Ports in FreeBSD if present" { cached_tarball "Python-3.6.2" - for i in {1..7}; do stub uname '-s : echo FreeBSD'; done + stub uname '-s : echo FreeBSD' stub uname '-r : echo 11.0-RELEASE' - for i in {1..3}; do stub uname '-s : echo FreeBSD'; done stub sysctl '-n hw.ncpu : echo 1' stub pkg "info -e openssl : true" @@ -341,9 +340,8 @@ OUT for lib in readline sqlite3; do - for i in {1..7}; do stub uname '-s : echo FreeBSD'; done + stub uname '-s : echo FreeBSD' stub uname '-r : echo 11.0-RELEASE' - for i in {1..3}; do stub uname '-s : echo FreeBSD'; done stub sysctl '-n hw.ncpu : echo 1' stub pkg false @@ -376,8 +374,8 @@ OUT @test "homebrew is not touched if PYTHON_BUILD_SKIP_HOMEBREW is set" { cached_tarball "Python-3.6.2" - for i in {1..4}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' stub brew true; brew stub_make_install export PYTHON_BUILD_SKIP_HOMEBREW=1 @@ -405,7 +403,7 @@ OUT BREW_PREFIX="$TMP/homebrew-prefix" mkdir -p "$BREW_PREFIX" - for i in {1..4}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub brew "--prefix : echo '$BREW_PREFIX'" for i in {1..5}; do stub brew false; done stub_make_install @@ -435,7 +433,7 @@ OUT BREW_PREFIX="${BREW_PREFIX%/*}" BREW_PREFIX="${BREW_PREFIX%/*}" - for i in {1..4}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub brew "--prefix : echo '$BREW_PREFIX'" for i in {1..5}; do stub brew false; done stub_make_install @@ -464,7 +462,7 @@ OUT BREW_PREFIX="$TMP/homebrew-prefix" mkdir -p "$BREW_PREFIX" - for i in {1..9}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' for i in {1..5}; do stub brew "--prefix : echo '$BREW_PREFIX'"; done stub_make_install @@ -493,8 +491,8 @@ OUT mkdir -p "$readline_libdir/include/readline" touch "$readline_libdir/include/readline/rlconf.h" - for i in {1..8}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' for i in {1..5}; do stub brew false; done stub_make_install @@ -525,8 +523,8 @@ OUT mkdir -p "$tcl_tk_libdir/lib" echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh" - for i in {1..9}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' stub brew false stub brew "--prefix tcl-tk@8 : echo '$tcl_tk_libdir'" @@ -559,8 +557,8 @@ OUT tcl_tk_version_long="8.6.10" tcl_tk_version="${tcl_tk_version_long%.*}" - for i in {1..8}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' for i in {1..4}; do stub brew false; done stub_make_install @@ -587,8 +585,8 @@ OUT @test "tcl-tk is linked from Homebrew via pkgconfig only when envvar is set" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' tcl_tk_libdir="$TMP/homebrew-tcl-tk" mkdir -p "$tcl_tk_libdir/lib" @@ -620,8 +618,8 @@ OUT @test "number of CPU cores defaults to 2" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.10' stub sysctl false stub_make_install @@ -647,8 +645,8 @@ OUT @test "number of CPU cores is detected on Mac" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.10' stub sysctl '-n hw.ncpu : echo 4' stub_make_install @@ -675,9 +673,8 @@ OUT @test "number of CPU cores is detected on FreeBSD" { cached_tarball "Python-3.6.2" - for i in {1..7}; do stub uname '-s : echo FreeBSD'; done + stub uname '-s : echo FreeBSD' stub uname '-r : echo 11.0-RELEASE' - for i in {1..3}; do stub uname '-s : echo FreeBSD'; done for i in {1..3}; do stub pkg false; done stub sysctl '-n hw.ncpu : echo 1' @@ -704,7 +701,7 @@ OUT @test "setting PYTHON_MAKE_INSTALL_OPTS to a multi-word string" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub_make_install @@ -728,7 +725,7 @@ OUT @test "--enable-shared is not added if --disable-shared is passed" { cached_tarball "Python-3.6.2" - for i in {1..9}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub_make_install @@ -752,8 +749,8 @@ OUT @test "configuring with dSYM in MacOS" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 1010'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' for i in {1..6}; do stub brew false; done stub_make_install @@ -779,7 +776,7 @@ OUT @test "configuring with dSYM has no effect in non-MacOS" { cached_tarball "Python-3.6.2" - for i in {1..10}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' stub_make_install run_inline_definition <> build.log' stub_make_install diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index 61ff22be95..9ca1735c18 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -9,8 +9,8 @@ export -n PYTHON_CONFIGURE_OPTS @test "require_gcc on OS X 10.9" { - for i in {1..3}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 10.9.5'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.9.5' stub gcc '--version : echo 4.2.1' @@ -31,8 +31,8 @@ OUT } @test "require_gcc on OS X 10.10" { - for i in {1..3}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.10' stub gcc '--version : echo 4.2.1' @@ -69,8 +69,8 @@ DEF mkdir -p "$INSTALL_ROOT" cd "$INSTALL_ROOT" - for i in {1..10}; do stub uname '-s : echo Darwin'; done - for i in {1..3}; do stub sw_vers '-productVersion : echo 10.10'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.10' stub cc 'false' stub brew 'false' diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index a4d45901e9..1c4b47a706 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -144,7 +144,7 @@ OUT echo "bar" | install_patch definitions/vanilla-python "Python-3.6.2/bar.patch" echo "baz" | install_patch definitions/vanilla-python "Python-3.6.2/baz.patch" - for i in {1..2}; do stub uname '-s : echo Linux'; done + stub uname '-s : echo Linux' TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null assert_success @@ -171,7 +171,7 @@ OUT " : echo \"$MAKE \$@\" >> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" - for i in {1..4}; do stub uname '-s : echo Darwin'; done + stub uname '-s : echo Darwin' PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null assert_success @@ -253,7 +253,8 @@ OUT done unset framework_path executable - for i in {1..3}; do stub uname '-s : echo Darwin'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.10' PYTHON_CONFIGURE_OPTS="--enable-framework" TMPDIR="$TMP" run_inline_definition <> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" @@ -346,8 +350,8 @@ OUT @test "default MACOSX_DEPLOYMENT_TARGET" { # yyuu/pyenv#257 - for i in {1..3}; do stub uname '-s : echo Darwin'; done - for i in {1..2}; do stub sw_vers '-productVersion : echo 10.10'; done + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 10.10' TMPDIR="$TMP" run_inline_definition < Date: Wed, 7 May 2025 13:07:33 -0600 Subject: [PATCH 0936/1324] Add CPython 3.14.0b1 --- plugins/python-build/bin/python-build | 7 ++++++- plugins/python-build/share/python-build/3.14.0a7t | 2 -- .../python-build/share/python-build/{3.14.0a7 => 3.14.0b1} | 4 ++-- plugins/python-build/share/python-build/3.14.0b1t | 2 ++ 4 files changed, 10 insertions(+), 5 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0a7t rename plugins/python-build/share/python-build/{3.14.0a7 => 3.14.0b1} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0b1t diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 661f43711b..b8b1b922cd 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2040,7 +2040,12 @@ build_package_verify_py313() { # Post-install check for Python 3.14.x build_package_verify_py314() { - build_package_verify_py313 "$1" "${2:-3.13}" + build_package_verify_py313 "$1" "${2:-3.14}" +} + +# Post-install check for Python 3.15.x +build_package_verify_py315() { + build_package_verify_py314 "$1" "${2:-3.15}" } # Post-install check for Python 3.x rolling release scripts diff --git a/plugins/python-build/share/python-build/3.14.0a7t b/plugins/python-build/share/python-build/3.14.0a7t deleted file mode 100644 index 8ec827fc22..0000000000 --- a/plugins/python-build/share/python-build/3.14.0a7t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0a7 diff --git a/plugins/python-build/share/python-build/3.14.0a7 b/plugins/python-build/share/python-build/3.14.0b1 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0a7 rename to plugins/python-build/share/python-build/3.14.0b1 index 742117b0db..bf9853851d 100644 --- a/plugins/python-build/share/python-build/3.14.0a7 +++ b/plugins/python-build/share/python-build/3.14.0b1 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0a7" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a7.tar.xz#71adbcec3ac9edf93308e55cfb4184f2eb4b16fda2bb0a5a382929ed29c8386d" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0b1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b1.tar.xz#2ddd30a77c9f62e065ce648664a254b9b0c011bcdaa8c1c2787087e644cbeb39" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.0a7" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0a7.tgz#381cc699c1dff5153ab76bff4c6d1f916069be39d0231ee20390f42785b9c046" standard verify_py313 copy_python_gdb ensurepip + install_package "Python-3.14.0b1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b1.tgz#d6c4473fce72fb6b881c1f50fbfcf157be2caa56102f01bd9dda8a459b880a37" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0b1t b/plugins/python-build/share/python-build/3.14.0b1t new file mode 100644 index 0000000000..3ef12c7f62 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0b1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0b1 From f4b94c14a6a17373b09ba19373103c96a0558d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez-Mondrag=C3=B3n?= Date: Wed, 7 May 2025 13:53:53 -0600 Subject: [PATCH 0937/1324] Add CPython 3.15-dev --- plugins/python-build/share/python-build/3.15-dev | 7 +++++++ plugins/python-build/share/python-build/3.15t-dev | 2 ++ 2 files changed, 9 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.15-dev create mode 100644 plugins/python-build/share/python-build/3.15t-dev diff --git a/plugins/python-build/share/python-build/3.15-dev b/plugins/python-build/share/python-build/3.15-dev new file mode 100644 index 0000000000..52ddebf899 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15-dev @@ -0,0 +1,7 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 +install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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 +install_git "Python-3.15-dev" "https://github.com/python/cpython" main standard verify_py315 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.15t-dev b/plugins/python-build/share/python-build/3.15t-dev new file mode 100644 index 0000000000..f86423c3a7 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15t-dev @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.15-dev From 6fff3d29d475b879955476ad1899ce5078631d05 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 8 May 2025 17:12:28 +0300 Subject: [PATCH 0938/1324] 2.5.6 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2e344087a..fafd4240e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.5.6 +* Add GraalPy 24.2.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3238 +* Fix get-pip URLs for 3.7, 3.8 and Pyston by @dmrlawson in https://github.com/pyenv/pyenv/pull/3242 +* [CI] Cache `uname` and `sw_vers` output in Python-Build for easier mocking in tests by @native-api in https://github.com/pyenv/pyenv/pull/3244 +* Add CPython 3.14.0b1 and 3.15-dev by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3245 + ## Release v2.5.5 * Add graalpy 24.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3215 * Switch 3.9+ to OpenSSL 3 by @native-api in https://github.com/pyenv/pyenv/pull/3223 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index bd7a205c76..e6fdf7783f 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.5" +version="2.5.6" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 54fd0106f86f477dd37387140351579ed67aed34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 8 May 2025 15:51:24 -0600 Subject: [PATCH 0939/1324] Point 3.14-dev to `3.14` branch (#3246) --- plugins/python-build/share/python-build/3.14-dev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/share/python-build/3.14-dev b/plugins/python-build/share/python-build/3.14-dev index 9ce786be74..71a74ac588 100644 --- a/plugins/python-build/share/python-build/3.14-dev +++ b/plugins/python-build/share/python-build/3.14-dev @@ -4,4 +4,4 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" 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 "Python-3.14-dev" "https://github.com/python/cpython" main standard verify_py314 copy_python_gdb ensurepip +install_git "Python-3.14-dev" "https://github.com/python/cpython" 3.14 standard verify_py314 copy_python_gdb ensurepip From f216b4bfb1598347137ecb3c4a8f893baf9ea37f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 May 2025 00:52:54 +0300 Subject: [PATCH 0940/1324] 2.5.7 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fafd4240e2..8f70111ef0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.5.7 +* Point 3.14-dev to `3.14` branch by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3246 + ## Release v2.5.6 * Add GraalPy 24.2.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3238 * Fix get-pip URLs for 3.7, 3.8 and Pyston by @dmrlawson in https://github.com/pyenv/pyenv/pull/3242 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e6fdf7783f..fa9a2df31c 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.6" +version="2.5.7" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 9656bcf0b95dd08df008d1043a65ceab838f77b5 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 17 May 2025 08:58:06 +0300 Subject: [PATCH 0941/1324] python-build: Support patch paths with spaces/special characters (#3251) This is now possible because all non-EOL MacOS versions now support `find -print0`/`sort -z`/`xargs -0` --- plugins/python-build/bin/python-build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b8b1b922cd..32a7040cd6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1160,8 +1160,8 @@ setup_builtin_patches() { cat >"${package_name}.patch" HAS_PATCH=true elif [[ -d "${package_patch_path}" ]]; then - { find "${package_patch_path}" -maxdepth 1 -type f - } 2>/dev/null | sort | xargs cat 1>"${package_name}.patch" + { find "${package_patch_path}" -maxdepth 1 -type f -print0 + } 2>/dev/null | sort -z | xargs -0 cat 1>"${package_name}.patch" HAS_PATCH=true fi } From 2d8bd15ccd7cc511273ed209fc76099f468c577c Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 17 May 2025 15:38:33 +0300 Subject: [PATCH 0942/1324] Add CODEOWNERS file (#3247) to get notifications of pull requests ready for review [no ci] --- .github/CODEOWNERS | 1 + 1 file changed, 1 insertion(+) create mode 100644 .github/CODEOWNERS diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000000..da2b02fd8e --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @pyenv/pyenv-core-maintainers @pyenv/pyenv-core-committers \ No newline at end of file From 90fa430ecad460d564fc6b4d6ea56eb1ddead20e Mon Sep 17 00:00:00 2001 From: Tom Godkin Date: Sat, 17 May 2025 14:13:12 +0100 Subject: [PATCH 0943/1324] README: make fish PATH add conditional on the directory existing (#2786) --- README.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 134341ea94..316cc1b49f 100644 --- a/README.md +++ b/README.md @@ -83,7 +83,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and
The Homebrew option from the [MacOS section below](#macos) would also work if you have Homebrew installed. - + ##### 1. Automatic installer (Recommended) ```bash @@ -114,7 +114,7 @@ easy to fork and contribute any changes back upstream. #### MacOS
- + The options from the [Linux section above](#linuxunix) also work but Homebrew is recommended for basic usage. ##### [Homebrew](https://brew.sh) in macOS @@ -229,27 +229,27 @@ See [Advanced configuration](#advanced-configuration) for details and more confi If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`.
- + #### Fish - +
- + 1. If you have Fish 3.2.0 or newer, execute this interactively: - ~~~ fish + ```fish set -Ux PYENV_ROOT $HOME/.pyenv - fish_add_path $PYENV_ROOT/bin - ~~~ + test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin + ``` 2. Otherwise, execute the snippet below: - ~~~ fish + ```fish set -Ux PYENV_ROOT $HOME/.pyenv - set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths - ~~~ + test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths + ``` 3. Now, add this to `~/.config/fish/config.fish`: - ~~~ fish + ```fish pyenv init - fish | source - ~~~ + ```
### C. Restart your shell From 018ca73444e8ccd10f88079f7cf786fd2ddeb42d Mon Sep 17 00:00:00 2001 From: Jesse Wattenbarger Date: Sat, 17 May 2025 11:23:25 -0400 Subject: [PATCH 0944/1324] Add --bare option to `pyenv version` (#2783) --- COMMANDS.md | 7 +++++++ libexec/pyenv-version | 24 ++++++++++++++++++++---- test/version.bats | 9 +++++++++ 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 1d63447185..c062175fd3 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -272,8 +272,15 @@ version of Python, or install a package that provides binaries. Displays the currently active Python version, along with information on how it was set. + Usage: pyenv version [--bare] + + --bare show just the version name. An alias to `pyenv version-name' + + $ pyenv version 2.7.6 (set by /home/yyuu/.pyenv/version) + $ pyenv version --bare + 2.7.6 ## `pyenv versions` diff --git a/libexec/pyenv-version b/libexec/pyenv-version index 33de93253f..75e2287c65 100755 --- a/libexec/pyenv-version +++ b/libexec/pyenv-version @@ -1,9 +1,8 @@ #!/usr/bin/env bash # Summary: Show the current Python version(s) and its origin +# Usage: pyenv version [--bare] # -# Shows the currently selected Python version(s) and how it was -# selected. To obtain only the version string, use `pyenv -# version-name'. +# --bare show just the version name. An alias to `pyenv version-name' set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -13,8 +12,25 @@ OLDIFS="$IFS" IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) || exitcode=$? IFS="$OLDIFS" +unset bare +for arg; do + case "$arg" in + --complete ) + echo --bare + exit ;; + --bare ) bare=1 ;; + * ) + pyenv-help --usage version >&2 + exit 1 + ;; + esac +done for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do - echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))" + if [[ -n $bare ]]; then + echo "$PYENV_VERSION_NAME" + else + echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))" + fi done exit $exitcode diff --git a/test/version.bats b/test/version.bats index 451fc3a741..78c6681b9d 100644 --- a/test/version.bats +++ b/test/version.bats @@ -70,3 +70,12 @@ pyenv-version-without-stderr() { 3.3.3 (set by PYENV_VERSION environment variable) OUT } + +@test "--bare prints just the name" { + create_version "3.3.3" + PYENV_VERSION=3.3.3 run pyenv-version --bare + assert_success + assert_output < Date: Sun, 18 May 2025 19:20:30 +1000 Subject: [PATCH 0945/1324] README: Add shell setup instructions for nushell (#2916) --- README.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/README.md b/README.md index 316cc1b49f..f2c1b840c7 100644 --- a/README.md +++ b/README.md @@ -252,6 +252,24 @@ See [Advanced configuration](#advanced-configuration) for details and more confi ```
+#### Nushell + +
+ + Add the following lines to your `config.nu` to add Pyenv and its shims to your `PATH`. + Shell integration (completions and subcommands changing the shell's state) + isn't currently supported. + + ~~~ nu + $env.PYENV_ROOT = "~/.pyenv" | path expand + if (( $"($env.PYENV_ROOT)/bin" | path type ) == "dir") { + $env.PATH = $env.PATH | prepend $"($env.PYENV_ROOT)/bin" } + $env.PATH = $env.PATH | prepend $"(pyenv root)/shims" + ~~~ + +
+ + ### C. Restart your shell ---- From 6c86ae417569d561768ade99512dfe7449460c10 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 18 May 2025 12:26:50 +0300 Subject: [PATCH 0946/1324] README: fix erroneous extra indents in code blocks --- README.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 316cc1b49f..b3cd52d742 100644 --- a/README.md +++ b/README.md @@ -222,9 +222,9 @@ See [Advanced configuration](#advanced-configuration) for details and more confi
```zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc - echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc + echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc ``` If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. @@ -236,19 +236,19 @@ See [Advanced configuration](#advanced-configuration) for details and more confi 1. If you have Fish 3.2.0 or newer, execute this interactively: ```fish - set -Ux PYENV_ROOT $HOME/.pyenv - test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin + set -Ux PYENV_ROOT $HOME/.pyenv + test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin ``` 2. Otherwise, execute the snippet below: ```fish - set -Ux PYENV_ROOT $HOME/.pyenv - test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths + set -Ux PYENV_ROOT $HOME/.pyenv + test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths ``` 3. Now, add this to `~/.config/fish/config.fish`: ```fish - pyenv init - fish | source + pyenv init - fish | source ```
From f24ff8d152214ebf61167fdd2da83dd9244f1911 Mon Sep 17 00:00:00 2001 From: Alexander Studnitskiy <25719+studnitskiy@users.noreply.github.com> Date: Sun, 18 May 2025 08:24:38 -0700 Subject: [PATCH 0947/1324] Add MacPorts support for python-build (#3186) Did not implement customizable priority due to unclear use feedback and more compilation in the code, can decide and do that separately Tcl/Tk from MacPorts support is omitted due to CPython's only being compatible with Tcl/Tk 9 since 3.12.5 and 3.13.0. Co-authored-by: Ivan Pozdeev --- plugins/python-build/README.md | 13 ++ plugins/python-build/bin/python-build | 231 ++++++++++++++++-- plugins/python-build/test/build.bats | 260 +++++++++++++++++++-- plugins/python-build/test/definitions.bats | 2 +- 4 files changed, 471 insertions(+), 35 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index e6b7b4f806..2b8852cf2f 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -138,6 +138,17 @@ would break all Pyenv-managed installations that depend on it. You can use a [community plugin `fix-version`](https://github.com/pyenv/pyenv/wiki/Plugins#community-plugins) to fix installations in such a case. +##### MacPorts + +MacPorts Homebrew is used to find dependency packages if `port` is found on `PATH` in MacOS. + +Set `PYTHON_BUILD_USE_MACPORTS` or `PYTHON_BUILD_SKIP_MACPORTS` to override this default. + +###### Interaction with Homebrew + +If both Homebrew and MacPorts are installed and allowed to be used, Homebrew takes preference. +There first ecosystem where any of the required dependency packages is found is used. + ##### Portage In FreeBSD, if `pkg` is on PATH, Ports are searched for some dependencies that Configure is known to not search for via `pkg-config`. @@ -164,6 +175,8 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will. * `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. +* `PYTHON_BUILD_SKIP_MACPORTS`, if set, will not search for libraries installed by MacPorts when it would normally will. +* `PYTHON_BUILD_USE_MACPORTS`, if set, will search for libraries installed by MacPorts when it would normally not. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions in `share/python-build/` are looked up. * `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 32a7040cd6..a5dd3e6aa1 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -27,7 +27,6 @@ shopt -s extglob exec 3<&2 # preserve original stderr at fd 3 - lib() { parse_options() { OPTIONS=() @@ -81,7 +80,12 @@ abs_dirname() { cd "$cd_path" fi name="${path##*/}" - path="$(resolve_link "$name" || true)" + if [[ $name == ".." ]]; then + cd .. + path="$PWD" + else + path="$(resolve_link "$name" || true)" + fi done echo "$PWD" @@ -122,17 +126,56 @@ is_mac() { } can_use_homebrew() { + if locked_in; then + locked_in homebrew && rc=$? || rc=$?; return $rc + fi [[ -n "$PYTHON_BUILD_USE_HOMEBREW" && -n "$PYTHON_BUILD_SKIP_HOMEBREW" ]] && { echo "error: mutually exclusive environment variables PYTHON_BUILD_USE_HOMEBREW and PYTHON_BUILD_SKIP_HOMEBREW are set" >&3 exit 1 } [[ -n "$PYTHON_BUILD_USE_HOMEBREW" ]] && return 0 [[ -n "$PYTHON_BUILD_SKIP_HOMEBREW" ]] && return 1 - is_mac && return 0 + is_mac && command -v brew &>/dev/null && return 0 # In Linux, if Pyenv itself is installed with Homebrew, # we assume the user wants to take dependencies from there as well by default - command -v brew &>/dev/null && [[ $(abs_dirname "${BASH_SOURCE}") == "$(abs_dirname "$(brew --prefix 2>/dev/null ||true)")"/* ]] && return 0 - return 1 + local brew_prefix + command -v brew &>/dev/null && \ + # tests can have non-functional `brew' stub aliased to `false' + # in Bash 3.2, var="$(cmd)" errexits on failure even if part of a conditional chain + brew_prefix="$(brew --prefix || true)" && [[ -n "$brew_prefix" ]] && \ + [[ $(abs_dirname "${BASH_SOURCE}") == "$(abs_dirname "${brew_prefix}")"/* ]] && \ + { lock_in homebrew; return 0; } + + # do not check the same stuff multiple times + PYTHON_BUILD_SKIP_HOMEBREW=1; return 1 +} + +can_use_macports() { + if locked_in; then + locked_in macports && rc=$? || rc=$?; return $rc + fi + [[ -n "$PYTHON_BUILD_USE_MACPORTS" && -n "$PYTHON_BUILD_SKIP_MACPORTS" ]] && { + echo "error: mutually exclusive environment variables PYTHON_BUILD_USE_MACPORTS and PYTHON_BUILD_SKIP_MACPORTS are set" >&3 + exit 1 + } + [[ -n "$PYTHON_BUILD_USE_MACPORTS" ]] && return 0 + [[ -n "$PYTHON_BUILD_SKIP_MACPORTS" ]] && return 1 + is_mac && command -v port &>/dev/null && return 0 + + # do not check the same stuff multiple times + PYTHON_BUILD_SKIP_MACPORTS=1; return 1 +} + +locked_in() { + if [[ -z "$1" ]]; then + [[ -n $_PYTHON_BUILD_ECOSYSTEM_LOCKED_IN ]] + else + [[ $_PYTHON_BUILD_ECOSYSTEM_LOCKED_IN == "$1" ]] + fi +} + +lock_in() { + _PYTHON_BUILD_ECOSYSTEM_LOCKED_IN=${1:?} } # 9.1 -> 901 @@ -815,15 +858,35 @@ build_package_standard_build() { local PACKAGE_LDFLAGS="${package_var_name}_LDFLAGS" if [ "$package_var_name" = "PYTHON" ]; then - use_homebrew || true - use_custom_tcltk || use_homebrew_tcltk || true - use_homebrew_readline || use_freebsd_pkg || true - use_homebrew_ncurses || true - if is_mac -ge 1014; then - use_xcode_sdk_zlib || use_homebrew_zlib || true - else - use_homebrew_zlib || true + if can_use_homebrew; then + use_custom_tcltk || use_homebrew_tcltk || true + use_homebrew_readline || true + use_homebrew_ncurses || true + if is_mac -ge 1014; then + use_xcode_sdk_zlib || use_homebrew_zlib || true + else + use_homebrew_zlib || true + fi fi + if can_use_macports; then + use_custom_tcltk || true + use_macports_readline || true + use_macports_ncurses || true + if is_mac -ge 1014; then + use_xcode_sdk_zlib || use_macports_zlib || true + else + use_macports_zlib || true + fi + fi + if can_use_homebrew; then + use_homebrew || true + fi + if can_use_macports; then + use_macports || true + fi + + use_freebsd_pkg || true + use_dsymutil || true use_free_threading || true fi @@ -1434,13 +1497,30 @@ use_homebrew() { if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${brew_prefix}/include" append_ldflags_libs "-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" + lock_in homebrew fi fi } +use_macports() { + can_use_macports || return 1 + local port_location="$(command -v port)" + if [ -n "$port_location" ]; then + local prefix="${port_location%/bin/port}" + export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${prefix}/include" + append_ldflags_libs "-L${prefix}/lib -Wl,-rpath,${prefix}/lib" + lock_in macports + fi +} + needs_yaml() { - ! configured_with_package_dir "python" "yaml.h" && - ! use_homebrew_yaml + if ! configured_with_package_dir "python" "yaml.h"; then + if can_use_homebrew; then + use_homebrew_yaml && return 1 + elif can_use_macports; then + use_macports_yaml && return 1 + fi + fi } use_homebrew_yaml() { @@ -1450,6 +1530,23 @@ use_homebrew_yaml() { echo "python-build: use libyaml from homebrew" export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" export LDFLAGS="-L$libdir/lib${LDFLAGS:+ ${LDFLAGS% }}" + lock_in homebrew + else + return 1 + fi +} + +use_macports_yaml() { + can_use_macports || return 1 + local prefix="$(port -q location libyaml 2>/dev/null || true)" + if [ -n "$prefix" ]; then + local libdir="$prefix/opt/local" + if [ -d "$libdir" ]; then + echo "python-build: use libyaml from MacPorts" + export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$libdir/lib${LDFLAGS:+ ${LDFLAGS% }}" + lock_in macports + fi else return 1 fi @@ -1488,9 +1585,14 @@ use_freebsd_pkg() { has_broken_mac_readline() { # Mac OS X 10.4 has broken readline. # https://github.com/pyenv/pyenv/issues/23 - is_mac && - ! configured_with_package_dir "python" "readline/rlconf.h" && - ! use_homebrew_readline + if is_mac && ! configured_with_package_dir "python" "readline/rlconf.h"; then + if can_use_homebrew; then + use_homebrew_readline && return 1 + fi + if can_use_macports; then + use_macports_readline && return 1 + fi + fi } use_homebrew_readline() { @@ -1501,6 +1603,25 @@ use_homebrew_readline() { echo "python-build: use readline from homebrew" export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" + lock_in homebrew + else + return 1 + fi + fi +} + +use_macports_readline() { + can_use_macports || return 1 + if ! configured_with_package_dir "python" "readline/rlconf.h"; then + local prefix="$(port -q location readline 2>/dev/null || true)" + if [ -n "$prefix" ]; then + local libdir="$prefix/opt/local" + if [ -d "$libdir" ]; then + echo "python-build: use readline from MacPorts" + export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" + lock_in macports + fi else return 1 fi @@ -1514,6 +1635,23 @@ use_homebrew_ncurses() { echo "python-build: use ncurses from homebrew" export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" + lock_in homebrew + else + return 1 + fi +} + +use_macports_ncurses() { + can_use_macports || return 1 + local prefix="$(port -q location ncurses 2>/dev/null || true)" + if [[ -n "$prefix" ]]; then + local libdir="$prefix/opt/local" + if [ -d "$libdir" ]; then + echo "python-build: use ncurses from MacPorts" + export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" + lock_in macports + fi else return 1 fi @@ -1548,8 +1686,14 @@ build_package_mac_readline() { has_broken_mac_openssl() { is_mac || return 1 local openssl_version="$(/usr/bin/openssl version 2>/dev/null || true)" - [[ $openssl_version = "OpenSSL 0.9.8"?* || $openssl_version = "LibreSSL"* ]] && - ! use_homebrew_openssl + if [[ $openssl_version = "OpenSSL 0.9.8"?* || $openssl_version = "LibreSSL"* ]]; then + if can_use_homebrew; then + use_homebrew_openssl && return 1 + fi + if can_use_macports; then + use_macports_openssl && return 1 + fi + fi } use_homebrew_openssl() { @@ -1568,7 +1712,34 @@ use_homebrew_openssl() { export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}" fi export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}" - return + lock_in homebrew + return 0 + fi + done + return 1 +} + +use_macports_openssl() { + can_use_macports || return 1 + command -v port >/dev/null || return 1 + for openssl in ${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl}; do + local ssldir="$(port -q location "${openssl}" 2>/dev/null || true)" + if [ -n "$ssldir" ]; then + ssldir="${ssldir}/opt/local" + if [ -d "$ssldir" ]; then + echo "python-build: use ${openssl} from MacPorts" + if [[ -n "${PYTHON_BUILD_CONFIGURE_WITH_OPENSSL:-}" ]]; then + # configure script of newer CPython versions support `--with-openssl` + # https://bugs.python.org/issue21541 + package_option python configure --with-openssl="${ssldir}" + else + export CPPFLAGS="-I$ssldir/include ${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}" + fi + fi + export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}" + lock_in macports + return 0 fi done return 1 @@ -1668,6 +1839,7 @@ use_homebrew_zlib() { if [ -d "$brew_zlib" ]; then echo "python-build: use zlib from homebrew" export CFLAGS="-I${brew_zlib} ${CFLAGS}" + lock_in homebrew fi } @@ -1687,6 +1859,22 @@ use_xcode_sdk_zlib() { fi } +use_macports_zlib() { + can_use_macports || return 1 + local prefix="$(port -q location zlib 2>/dev/null || true)" + if [[ -n "$prefix" ]]; then + local libdir="$prefix/opt/local" + if [[ -d "$libdir" ]]; then + echo "python-build: use zlib from MacPorts" + export CPPFLAGS="-I$prefix/include ${CPPFLAGS}" + export LDFLAGS="-L$prefix/lib ${LDFLAGS}" + lock_in macports + fi + else + return 1 + fi +} + use_homebrew_tcltk() { can_use_homebrew || return 1 # Since https://github.com/Homebrew/homebrew-core/commit/f10e88617b41555193c22fdcba6109fe82155ee2 (10.11.2024), @@ -1711,6 +1899,7 @@ use_homebrew_tcltk() { fi fi export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + lock_in homebrew return 0 fi done diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index b0b054cf0e..0f2aab0e63 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -188,15 +188,49 @@ make install OUT } +@test "Homebrew and port are tried if both are present in PATH in MacOS" { + cached_tarball "Python-3.6.2" + + BREW_PREFIX="$TMP/homebrew-prefix" + + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' + for i in {1..5}; do stub brew false; done + stub brew "--prefix : echo '$BREW_PREFIX'" + for i in {1..3}; do stub port false; done + stub_make_install + + export PYENV_DEBUG=1 + run_inline_definition < "${TMP}/definitions/2.7.8-test" mkdir -p "${TMP}/other" echo false > "${TMP}/other/2.7.8-test" - run bin/python-build "2.7.8-test" "${TMP}/install" + run python-build "2.7.8-test" "${TMP}/install" assert_success "" } From 70b973fdd474d1761aa64b033e1bb772a1461eaa Mon Sep 17 00:00:00 2001 From: Pedro Fonini Date: Thu, 22 May 2025 01:58:25 -0300 Subject: [PATCH 0948/1324] Fix python-build's `has_broken_mac_readline` when Readline is explicitly configured (#3254) --- plugins/python-build/bin/python-build | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a5dd3e6aa1..e76ac01cdc 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1585,13 +1585,15 @@ use_freebsd_pkg() { has_broken_mac_readline() { # Mac OS X 10.4 has broken readline. # https://github.com/pyenv/pyenv/issues/23 - if is_mac && ! configured_with_package_dir "python" "readline/rlconf.h"; then - if can_use_homebrew; then - use_homebrew_readline && return 1 - fi - if can_use_macports; then - use_macports_readline && return 1 - fi + if ! is_mac || configured_with_package_dir "python" "readline/rlconf.h"; then + # Not applicable. + return 1 + fi + if can_use_homebrew; then + use_homebrew_readline && return 1 + fi + if can_use_macports; then + use_macports_readline && return 1 fi } From d88de115439db903849619512d49a195861df80f Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Mon, 26 May 2025 15:15:12 -0400 Subject: [PATCH 0949/1324] Add CPython 3.14.0b2 (#3259) --- plugins/python-build/share/python-build/3.14.0b1t | 2 -- .../python-build/share/python-build/{3.14.0b1 => 3.14.0b2} | 4 ++-- plugins/python-build/share/python-build/3.14.0b2t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0b1t rename plugins/python-build/share/python-build/{3.14.0b1 => 3.14.0b2} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0b2t diff --git a/plugins/python-build/share/python-build/3.14.0b1t b/plugins/python-build/share/python-build/3.14.0b1t deleted file mode 100644 index 3ef12c7f62..0000000000 --- a/plugins/python-build/share/python-build/3.14.0b1t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0b1 diff --git a/plugins/python-build/share/python-build/3.14.0b1 b/plugins/python-build/share/python-build/3.14.0b2 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0b1 rename to plugins/python-build/share/python-build/3.14.0b2 index bf9853851d..b618b24e2a 100644 --- a/plugins/python-build/share/python-build/3.14.0b1 +++ b/plugins/python-build/share/python-build/3.14.0b2 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0b1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b1.tar.xz#2ddd30a77c9f62e065ce648664a254b9b0c011bcdaa8c1c2787087e644cbeb39" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0b2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b2.tar.xz#7ac9e84844bbc0a5a8f1f79a37a68b3b8caf2a58b4aa5999c49227cb36e70ea6" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.0b1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b1.tgz#d6c4473fce72fb6b881c1f50fbfcf157be2caa56102f01bd9dda8a459b880a37" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0b2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b2.tgz#395e0daf993ddd6010dddef9ac6851996f69c2681a88c20190fa0dfe3e633930" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0b2t b/plugins/python-build/share/python-build/3.14.0b2t new file mode 100644 index 0000000000..109b1e8ba9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0b2t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0b2 From bfbe76e6a9bb8daf22ecfd8e4676a17c23679973 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 26 May 2025 22:59:51 +0300 Subject: [PATCH 0950/1324] 2.6.0 --- CHANGELOG.md | 10 ++++++++++ libexec/pyenv---version | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8f70111ef0..3c1258697a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # Version History +## Release v2.6.0 +* python-build: Support patch paths with spaces/special characters by @native-api in https://github.com/pyenv/pyenv/pull/3251 +* Add CODEOWNERS file by @native-api in https://github.com/pyenv/pyenv/pull/3247 +* README: make fish PATH add conditional on the directory existing by @BooleanCat in https://github.com/pyenv/pyenv/pull/2786 +* Add --bare option to `pyenv version` by @jjwatt in https://github.com/pyenv/pyenv/pull/2783 +* README: Add shell setup instructions for nushell by @jordanst3wart in https://github.com/pyenv/pyenv/pull/2916 +* Add MacPorts support for python-build by @studnitskiy in https://github.com/pyenv/pyenv/pull/3186 +* python-build: fix `has_broken_mac_readline` when Readline is explicitly configured by @fofoni in https://github.com/pyenv/pyenv/pull/3254 +* Add CPython 3.14.0b2 by @nedbat in https://github.com/pyenv/pyenv/pull/3259 + ## Release v2.5.7 * Point 3.14-dev to `3.14` branch by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3246 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index fa9a2df31c..9ea5ede76b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.5.7" +version="2.6.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 0e05ee8694b48e0e6df5f88f7bfc3b3e91dd0705 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 4 Jun 2025 02:15:55 -0400 Subject: [PATCH 0951/1324] Add CPython 3.9.23, 3.10.18, 3.11.13, 3.12.11, 3.13.4 (#3266) --- plugins/python-build/share/python-build/3.10.18 | 9 +++++++++ plugins/python-build/share/python-build/3.11.13 | 10 ++++++++++ plugins/python-build/share/python-build/3.12.11 | 9 +++++++++ plugins/python-build/share/python-build/3.13.4 | 9 +++++++++ plugins/python-build/share/python-build/3.13.4t | 2 ++ plugins/python-build/share/python-build/3.9.23 | 12 ++++++++++++ 6 files changed, 51 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.18 create mode 100644 plugins/python-build/share/python-build/3.11.13 create mode 100644 plugins/python-build/share/python-build/3.12.11 create mode 100644 plugins/python-build/share/python-build/3.13.4 create mode 100644 plugins/python-build/share/python-build/3.13.4t create mode 100644 plugins/python-build/share/python-build/3.9.23 diff --git a/plugins/python-build/share/python-build/3.10.18 b/plugins/python-build/share/python-build/3.10.18 new file mode 100644 index 0000000000..8e44e54256 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.18 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.18" "https://www.python.org/ftp/python/3.10.18/Python-3.10.18.tar.xz#ae665bc678abd9ab6a6e1573d2481625a53719bc517e9a634ed2b9fefae3817f" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.18" "https://www.python.org/ftp/python/3.10.18/Python-3.10.18.tgz#1b19ab802518eb36a851f5ddef571862c7a31ece533109a99df6d5af0a1ceb99" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.13 b/plugins/python-build/share/python-build/3.11.13 new file mode 100644 index 0000000000..f3c344b773 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.13 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" 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.11.13" "https://www.python.org/ftp/python/3.11.13/Python-3.11.13.tar.xz#8fb5f9fbc7609fa822cb31549884575db7fd9657cbffb89510b5d7975963a83a" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.13" "https://www.python.org/ftp/python/3.11.13/Python-3.11.13.tgz#0f1a22f4dfd34595a29cf69ee7ea73b9eff8b1cc89d7ab29b3ab0ec04179dad8" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.12.11 b/plugins/python-build/share/python-build/3.12.11 new file mode 100644 index 0000000000..67c429e6e0 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.11 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.3.3" "https://github.com/openssl/openssl/releases/download/openssl-3.3.3/openssl-3.3.3.tar.gz#712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539" 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.11" "https://www.python.org/ftp/python/3.12.11/Python-3.12.11.tar.xz#c30bb24b7f1e9a19b11b55a546434f74e739bb4c271a3e3a80ff4380d49f7adb" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.11" "https://www.python.org/ftp/python/3.12.11/Python-3.12.11.tgz#7b8d59af8216044d2313de8120bfc2cc00a9bd2e542f15795e1d616c51faf3d6" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.4 b/plugins/python-build/share/python-build/3.13.4 new file mode 100644 index 0000000000..f07d8f326e --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.4 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.4" "https://www.python.org/ftp/python/3.13.4/Python-3.13.4.tar.xz#27b15a797562a2971dce3ffe31bb216042ce0b995b39d768cf15f784cc757365" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.4" "https://www.python.org/ftp/python/3.13.4/Python-3.13.4.tgz#2666038f1521b7a8ec34bf2997b363778118d6f3979282c93723e872bcd464e0" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.4t b/plugins/python-build/share/python-build/3.13.4t new file mode 100644 index 0000000000..dc361f82b5 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.4t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.4 diff --git a/plugins/python-build/share/python-build/3.9.23 b/plugins/python-build/share/python-build/3.9.23 new file mode 100644 index 0000000000..b50064d306 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.23 @@ -0,0 +1,12 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-3.0.16" "https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz#57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.23" "https://www.python.org/ftp/python/3.9.23/Python-3.9.23.tar.xz#61a42919e13d539f7673cf11d1c404380e28e540510860b9d242196e165709c9" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.23" "https://www.python.org/ftp/python/3.9.23/Python-3.9.23.tgz#9a69aad184dc1d06f6819930741da3a328d34875a41f8ba33875774dbfc51b51" standard verify_py39 copy_python_gdb ensurepip +fi From b9ede4ae0e66b29f07401de2db097984ca84034a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 Jun 2025 20:22:49 +0300 Subject: [PATCH 0952/1324] 2.6.1 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c1258697a..594b6bb71d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.1 +* Add CPython 3.9.23, 3.10.18, 3.11.13, 3.12.11, 3.13.4 by @nedbat in https://github.com/pyenv/pyenv/pull/3266 + ## Release v2.6.0 * python-build: Support patch paths with spaces/special characters by @native-api in https://github.com/pyenv/pyenv/pull/3251 * Add CODEOWNERS file by @native-api in https://github.com/pyenv/pyenv/pull/3247 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 9ea5ede76b..521eddbe87 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.0" +version="2.6.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 807a4e0cacbc5e2cc9864a59ceb06cf5c8c4641d Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 12 Jun 2025 05:47:09 -0400 Subject: [PATCH 0953/1324] Add CPython 3.13.5 (#3269) --- plugins/python-build/share/python-build/3.13.5 | 9 +++++++++ plugins/python-build/share/python-build/3.13.5t | 2 ++ 2 files changed, 11 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.5 create mode 100644 plugins/python-build/share/python-build/3.13.5t diff --git a/plugins/python-build/share/python-build/3.13.5 b/plugins/python-build/share/python-build/3.13.5 new file mode 100644 index 0000000000..8ab201eb85 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.5 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.5" "https://www.python.org/ftp/python/3.13.5/Python-3.13.5.tar.xz#93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.5" "https://www.python.org/ftp/python/3.13.5/Python-3.13.5.tgz#e6190f52699b534ee203d9f417bdbca05a92f23e35c19c691a50ed2942835385" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.5t b/plugins/python-build/share/python-build/3.13.5t new file mode 100644 index 0000000000..19a26d51b8 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.5t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.5 From a71a378dacd210f5673550ff923715bf4d04324f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 12 Jun 2025 13:19:45 +0300 Subject: [PATCH 0954/1324] 2.6.2 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 594b6bb71d..37ca67bffb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.2 +* Add CPython 3.13.5 by @nedbat in https://github.com/pyenv/pyenv/pull/3269 + ## Release v2.6.1 * Add CPython 3.9.23, 3.10.18, 3.11.13, 3.12.11, 3.13.4 by @nedbat in https://github.com/pyenv/pyenv/pull/3266 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 521eddbe87..a44905389d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.1" +version="2.6.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From bf19366669b2d547547685c327c25c55b35e7de1 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 13 Jun 2025 22:19:06 +0300 Subject: [PATCH 0955/1324] Re-promote "Python versions with extended support" to a section (#3276) It's a valuable asset of Pyenv and https://github.com/pyenv/pyenv/issues/3275 showed it has stoppped being discoverable [no ci] --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 16c76c8ff3..835029141d 100644 --- a/README.md +++ b/README.md @@ -50,6 +50,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * **[Usage](#usage)** * [Install additional Python versions](#install-additional-python-versions) * [Prefix auto-resolution to the latest version](#prefix-auto-resolution-to-the-latest-version) + * [Python versions with extended support](#python-versions-with-extended-support) * [Switch between Python versions](#switch-between-python-versions) * [Making multiple versions available](#making-multiple-versions-available) * [Uninstall Python versions](#uninstall-python-versions) @@ -367,8 +368,9 @@ You can run [`pyenv latest -k `](COMMANDS.md#pyenv-latest) to see how `p See the [`pyenv latest` documentation](COMMANDS.md#pyenv-latest) for details. +---- -
Python versions with extended support +#### Python versions with extended support For the following Python releases, Pyenv applies user-provided patches that add support for some newer environments. Though we don't actively maintain those patches, since existing releases never change, From e13b5848bee22c8055cedbb513aa03da698c988c Mon Sep 17 00:00:00 2001 From: Danny Kim <0916dhkim@gmail.com> Date: Sat, 14 Jun 2025 02:38:35 -0400 Subject: [PATCH 0956/1324] Support linking to MacPorts ports installed from binary archives (#3272) --- plugins/python-build/bin/python-build | 75 ++++++++------------------- plugins/python-build/test/build.bats | 25 +++------ 2 files changed, 31 insertions(+), 69 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index e76ac01cdc..3e0f5421f7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1507,8 +1507,9 @@ use_macports() { local port_location="$(command -v port)" if [ -n "$port_location" ]; then local prefix="${port_location%/bin/port}" - export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${prefix}/include" - append_ldflags_libs "-L${prefix}/lib -Wl,-rpath,${prefix}/lib" + export CPPFLAGS="-I${prefix}/include${CPPFLAGS:+ $CPPFLAGS}" + prepend_ldflags_libs "-L${prefix}/lib -Wl,-rpath,${prefix}/lib" + export PKG_CONFIG_PATH="$prefix/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" lock_in macports fi } @@ -1538,15 +1539,9 @@ use_homebrew_yaml() { use_macports_yaml() { can_use_macports || return 1 - local prefix="$(port -q location libyaml 2>/dev/null || true)" - if [ -n "$prefix" ]; then - local libdir="$prefix/opt/local" - if [ -d "$libdir" ]; then - echo "python-build: use libyaml from MacPorts" - export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" - export LDFLAGS="-L$libdir/lib${LDFLAGS:+ ${LDFLAGS% }}" - lock_in macports - fi + if [[ $(port -q installed libyaml | awk '{print $3}') == "(active)" ]]; then + echo "python-build: use libyaml from MacPorts" + lock_in macports else return 1 fi @@ -1615,15 +1610,9 @@ use_homebrew_readline() { use_macports_readline() { can_use_macports || return 1 if ! configured_with_package_dir "python" "readline/rlconf.h"; then - local prefix="$(port -q location readline 2>/dev/null || true)" - if [ -n "$prefix" ]; then - local libdir="$prefix/opt/local" - if [ -d "$libdir" ]; then - echo "python-build: use readline from MacPorts" - export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" - export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" - lock_in macports - fi + if [[ $(port -q installed readline | awk '{print $3}') == "(active)" ]]; then + echo "python-build: use readline from MacPorts" + lock_in macports else return 1 fi @@ -1645,15 +1634,9 @@ use_homebrew_ncurses() { use_macports_ncurses() { can_use_macports || return 1 - local prefix="$(port -q location ncurses 2>/dev/null || true)" - if [[ -n "$prefix" ]]; then - local libdir="$prefix/opt/local" - if [ -d "$libdir" ]; then - echo "python-build: use ncurses from MacPorts" - export CPPFLAGS="-I$libdir/include${CPPFLAGS:+ $CPPFLAGS}" - export LDFLAGS="-L$libdir/lib${LDFLAGS:+ $LDFLAGS}" - lock_in macports - fi + if [[ $(port -q installed ncurses | awk '{print $3}') == "(active)" ]]; then + echo "python-build: use ncurses from MacPorts" + lock_in macports else return 1 fi @@ -1724,22 +1707,16 @@ use_homebrew_openssl() { use_macports_openssl() { can_use_macports || return 1 command -v port >/dev/null || return 1 + local port_location="$(command -v port)" + local prefix="${port_location%/bin/port}" for openssl in ${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl}; do - local ssldir="$(port -q location "${openssl}" 2>/dev/null || true)" - if [ -n "$ssldir" ]; then - ssldir="${ssldir}/opt/local" - if [ -d "$ssldir" ]; then - echo "python-build: use ${openssl} from MacPorts" - if [[ -n "${PYTHON_BUILD_CONFIGURE_WITH_OPENSSL:-}" ]]; then - # configure script of newer CPython versions support `--with-openssl` - # https://bugs.python.org/issue21541 - package_option python configure --with-openssl="${ssldir}" - else - export CPPFLAGS="-I$ssldir/include ${CPPFLAGS:+ $CPPFLAGS}" - export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}" - fi + if [[ $(port -q installed ${openssl} | awk '{print $3}') == "(active)" ]]; then + echo "python-build: use ${openssl} from MacPorts" + if [[ -n "${PYTHON_BUILD_CONFIGURE_WITH_OPENSSL:-}" ]]; then + # configure script of newer CPython versions support `--with-openssl` + # https://bugs.python.org/issue21541 + package_option python configure --with-openssl="${prefix}" fi - export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}" lock_in macports return 0 fi @@ -1863,15 +1840,9 @@ use_xcode_sdk_zlib() { use_macports_zlib() { can_use_macports || return 1 - local prefix="$(port -q location zlib 2>/dev/null || true)" - if [[ -n "$prefix" ]]; then - local libdir="$prefix/opt/local" - if [[ -d "$libdir" ]]; then - echo "python-build: use zlib from MacPorts" - export CPPFLAGS="-I$prefix/include ${CPPFLAGS}" - export LDFLAGS="-L$prefix/lib ${LDFLAGS}" - lock_in macports - fi + if [[ $(port -q installed zlib | awk '{print $3}') == "(active)" ]]; then + echo "python-build: use zlib from MacPorts" + lock_in macports else return 1 fi diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 0f2aab0e63..01e48630df 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -275,7 +275,7 @@ DEF unstub make assert_build_log < Date: Wed, 18 Jun 2025 15:02:01 -0400 Subject: [PATCH 0957/1324] Add CPython 3.14.0b3 (#3278) * remove the need for explicit versions in the python-build free-threading files --- plugins/python-build/share/python-build/3.14.0b2t | 2 -- .../python-build/share/python-build/{3.14.0b2 => 3.14.0b3} | 4 ++-- plugins/python-build/share/python-build/3.14.0b3t | 2 ++ 3 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0b2t rename plugins/python-build/share/python-build/{3.14.0b2 => 3.14.0b3} (59%) create mode 100644 plugins/python-build/share/python-build/3.14.0b3t diff --git a/plugins/python-build/share/python-build/3.14.0b2t b/plugins/python-build/share/python-build/3.14.0b2t deleted file mode 100644 index 109b1e8ba9..0000000000 --- a/plugins/python-build/share/python-build/3.14.0b2t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "$(dirname "${BASH_SOURCE[0]}")"/3.14.0b2 diff --git a/plugins/python-build/share/python-build/3.14.0b2 b/plugins/python-build/share/python-build/3.14.0b3 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0b2 rename to plugins/python-build/share/python-build/3.14.0b3 index b618b24e2a..938ecdbc80 100644 --- a/plugins/python-build/share/python-build/3.14.0b2 +++ b/plugins/python-build/share/python-build/3.14.0b3 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0b2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b2.tar.xz#7ac9e84844bbc0a5a8f1f79a37a68b3b8caf2a58b4aa5999c49227cb36e70ea6" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0b3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b3.tar.xz#c6f48bf51f01f50d87007a445dd7afe4a4c7a87ab482570be924c1ddfd0d3682" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.0b2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b2.tgz#395e0daf993ddd6010dddef9ac6851996f69c2681a88c20190fa0dfe3e633930" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0b3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b3.tgz#ac25adf76484728527fb621bc14a83c1ddd43f9a7a0a7fdbb07d09722fec5f3d" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0b3t b/plugins/python-build/share/python-build/3.14.0b3t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0b3t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From f1c5371752c6dccecac612d5bac840203f72e5d8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 18 Jun 2025 22:05:08 +0300 Subject: [PATCH 0958/1324] 2.6.3 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37ca67bffb..f1580d4245 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.6.3 +* README: Re-promote "Python versions with extended support" to a section by @native-api in https://github.com/pyenv/pyenv/pull/3276 +* Support linking to MacPorts ports installed from binary archives by @0916dhkim in https://github.com/pyenv/pyenv/pull/3272 +* Add CPython 3.14.0b3 by @nedbat in https://github.com/pyenv/pyenv/pull/3278 + ## Release v2.6.2 * Add CPython 3.13.5 by @nedbat in https://github.com/pyenv/pyenv/pull/3269 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a44905389d..12d92e3ab3 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.2" +version="2.6.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 9114929e4fe46bdcbe25ecac1e0df921ec57ee82 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 22 Jun 2025 14:22:17 +0300 Subject: [PATCH 0959/1324] Backport bpo_36106 to 3.5.10 and 3.6.15 (#3280) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes "error: static declaration of ‘sinpi’ follows non-static declaration" with newer libm --- ...e-sinpi-name-clash-with-libm-IEEE-75.patch | 68 +++++++++++++++++++ ...e-sinpi-name-clash-with-libm-IEEE-75.patch | 68 +++++++++++++++++++ 2 files changed, 136 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0010-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0011-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0010-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0010-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch new file mode 100644 index 0000000000..9a40901803 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0010-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch @@ -0,0 +1,68 @@ +From f57cd8288dbe6aba99c057f37ad6d58f8db75350 Mon Sep 17 00:00:00 2001 +From: Dima Pasechnik +Date: Tue, 26 Feb 2019 06:36:11 +0000 +Subject: [PATCH] bpo-36106: Resolve sinpi name clash with libm (IEEE-754 + violation). (GH-12027) + +The standard math library (libm) may follow IEEE-754 recommendation to +include an implementation of sinPi(), i.e. sinPi(x):=sin(pi*x). +And this triggers a name clash, found by FreeBSD developer +Steve Kargl, who worken on putting sinpi into libm used on FreeBSD +(it has to be named "sinpi", not "sinPi", cf. e.g. +https://en.cppreference.com/w/c/experimental/fpext4). +--- + .../next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst | 1 + + Modules/mathmodule.c | 8 ++++---- + 2 files changed, 5 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst + +diff --git a/Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst b/Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst +new file mode 100644 +index 00000000000..36e17508cd4 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst +@@ -0,0 +1 @@ ++Resolve potential name clash with libm's sinpi(). Patch by Dmitrii Pasechnik. +diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c +index 2272f622f0b..fd0eb327c74 100644 +--- a/Modules/mathmodule.c ++++ b/Modules/mathmodule.c +@@ -100,7 +100,7 @@ static const double sqrtpi = 1.772453850905516027298167483341145182798; + } + + static double +-sinpi(double x) ++m_sinpi(double x) + { + double y, r; + int n; +@@ -328,7 +328,7 @@ m_tgamma(double x) + integer. */ + if (absx > 200.0) { + if (x < 0.0) { +- return 0.0/sinpi(x); ++ return 0.0/m_sinpi(x); + } + else { + errno = ERANGE; +@@ -352,7 +352,7 @@ m_tgamma(double x) + } + z = z * lanczos_g / y; + if (x < 0.0) { +- r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx); ++ r = -pi / m_sinpi(absx) / absx * exp(y) / lanczos_sum(absx); + r -= z * r; + if (absx < 140.0) { + r /= pow(y, absx - 0.5); +@@ -423,7 +423,7 @@ m_lgamma(double x) + r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1); + if (x < 0.0) + /* Use reflection formula to get value for negative x. */ +- r = logpi - log(fabs(sinpi(absx))) - log(absx) - r; ++ r = logpi - log(fabs(m_sinpi(absx))) - log(absx) - r; + if (Py_IS_INFINITY(r)) + errno = ERANGE; + return r; +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0011-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0011-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch new file mode 100644 index 0000000000..9a40901803 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/0011-bpo-36106-Resolve-sinpi-name-clash-with-libm-IEEE-75.patch @@ -0,0 +1,68 @@ +From f57cd8288dbe6aba99c057f37ad6d58f8db75350 Mon Sep 17 00:00:00 2001 +From: Dima Pasechnik +Date: Tue, 26 Feb 2019 06:36:11 +0000 +Subject: [PATCH] bpo-36106: Resolve sinpi name clash with libm (IEEE-754 + violation). (GH-12027) + +The standard math library (libm) may follow IEEE-754 recommendation to +include an implementation of sinPi(), i.e. sinPi(x):=sin(pi*x). +And this triggers a name clash, found by FreeBSD developer +Steve Kargl, who worken on putting sinpi into libm used on FreeBSD +(it has to be named "sinpi", not "sinPi", cf. e.g. +https://en.cppreference.com/w/c/experimental/fpext4). +--- + .../next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst | 1 + + Modules/mathmodule.c | 8 ++++---- + 2 files changed, 5 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst + +diff --git a/Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst b/Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst +new file mode 100644 +index 00000000000..36e17508cd4 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2019-02-25-13-21-43.bpo-36106.VuhEiQ.rst +@@ -0,0 +1 @@ ++Resolve potential name clash with libm's sinpi(). Patch by Dmitrii Pasechnik. +diff --git a/Modules/mathmodule.c b/Modules/mathmodule.c +index 2272f622f0b..fd0eb327c74 100644 +--- a/Modules/mathmodule.c ++++ b/Modules/mathmodule.c +@@ -100,7 +100,7 @@ static const double sqrtpi = 1.772453850905516027298167483341145182798; + } + + static double +-sinpi(double x) ++m_sinpi(double x) + { + double y, r; + int n; +@@ -328,7 +328,7 @@ m_tgamma(double x) + integer. */ + if (absx > 200.0) { + if (x < 0.0) { +- return 0.0/sinpi(x); ++ return 0.0/m_sinpi(x); + } + else { + errno = ERANGE; +@@ -352,7 +352,7 @@ m_tgamma(double x) + } + z = z * lanczos_g / y; + if (x < 0.0) { +- r = -pi / sinpi(absx) / absx * exp(y) / lanczos_sum(absx); ++ r = -pi / m_sinpi(absx) / absx * exp(y) / lanczos_sum(absx); + r -= z * r; + if (absx < 140.0) { + r /= pow(y, absx - 0.5); +@@ -423,7 +423,7 @@ m_lgamma(double x) + r += (absx - 0.5) * (log(absx + lanczos_g - 0.5) - 1); + if (x < 0.0) + /* Use reflection formula to get value for negative x. */ +- r = logpi - log(fabs(sinpi(absx))) - log(absx) - r; ++ r = logpi - log(fabs(m_sinpi(absx))) - log(absx) - r; + if (Py_IS_INFINITY(r)) + errno = ERANGE; + return r; +-- +2.36.1.windows.1 + From 798d21e0ca350be54df95532bd904b391f4ca277 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 29 Jun 2025 19:51:25 +0300 Subject: [PATCH 0960/1324] (regression) Use Zlib from XCode SDK in MacOS without Homebrew or Macports (#3282) --- plugins/python-build/bin/python-build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 3e0f5421f7..891605b93d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -884,6 +884,9 @@ build_package_standard_build() { if can_use_macports; then use_macports || true fi + if is_mac -ge 1014 && ! can_use_homebrew && ! can_use_macports; then + use_xcode_sdk_zlib || true + fi use_freebsd_pkg || true From e150257413f46d6ca27e50b7a1ceea790e42cafb Mon Sep 17 00:00:00 2001 From: John Sirois Date: Sat, 5 Jul 2025 23:22:51 -0700 Subject: [PATCH 0961/1324] Add PyPy v7.3.20 (#3284) The release blog entry is here: https://pypy.org/posts/2025/07/pypy-v7320-release.html --- .../share/python-build/pypy2.7-7.3.20 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.20-src | 14 ++++ .../share/python-build/pypy3.11-7.3.20 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-7.3.20-src | 14 ++++ 4 files changed, 182 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.20 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.20-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.20 create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.20-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.20 b/plugins/python-build/share/python-build/pypy2.7-7.3.20 new file mode 100644 index 0000000000..4e1d62fc80 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.20 @@ -0,0 +1,77 @@ +VERSION='7.3.20' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=f22a1be607deeaa4f9be6bc63aae09fe4fb5b990d6a23aa4e7c5960dc5d93c96 +linux32_hash=9d554c5efcb6ef80146bb82965f5d8404d6848e6f04b25c378852a095768a69c +linux64_hash=aa3bb92dbb529fa2d4920895b16d67a810b0c709207857d56cfe4a6e3b41e02a +osarm64_hash=be3ffbb243316b1ffbf63ac60d72e099d5b64702e4429eeeb18a0608fb3b8dcc +osx64_hash=9e7cf34e9d4c8d890439fcd10b09a2c0825d8709c63dd4cbf85645711bfb15b7 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.20-src b/plugins/python-build/share/python-build/pypy2.7-7.3.20-src new file mode 100644 index 0000000000..b4a81b426e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.20-src @@ -0,0 +1,14 @@ +VERSION='7.3.20' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=bf958498445f7bf78338723c8d86bd6711e8792461725d2481df77a9566a3e62 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.20 b/plugins/python-build/share/python-build/pypy3.11-7.3.20 new file mode 100644 index 0000000000..63249f1bab --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.20 @@ -0,0 +1,77 @@ +VERSION='7.3.20' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=9347fe691a07fd9df17a1b186554fb9d9e6210178ffef19520a579ce1f9eb741 +linux32_hash=d08ce15dd61e9ace5e010b047104f0137110a258184e448ea8239472f10cf99b +linux64_hash=1410db3a7ae47603e2b7cbfd7ff6390b891b2e041c9eb4f1599f333677bccb3e +osarm64_hash=84a48e09c97f57df62cc9f01b7a6d8c3e306b6270671d871aa8ab8c06945940d +osx64_hash=bb3ae80cf5fca5044af2e42933e7692c7c5e76a828ce0eb6404a5d5da83b313c + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.20-src b/plugins/python-build/share/python-build/pypy3.11-7.3.20-src new file mode 100644 index 0000000000..fddb57ff35 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.20-src @@ -0,0 +1,14 @@ +VERSION='7.3.20' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=7786dda760003e2ea7409c1037e50200c578ec427ce0245ac4cd758710b206fb + +### 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' From d8384fcc054947ad436608fa8f29aa532ed61690 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 6 Jul 2025 23:29:49 +0300 Subject: [PATCH 0962/1324] Install issue templates It looks like Github have dropped support for https://github.com/pyenv/pyenv/edit/master/.github/ISSUE_TEMPLATE.md entirely. --- .github/ISSUE_TEMPLATE/bug_report.md | 54 ++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000000..a35d985713 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,54 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +### Prerequisites +* [ ] Make sure your problem is not listed in [the common build problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). +* [ ] Make sure no duplicated issue has already been reported in [the pyenv issues](https://github.com/pyenv/pyenv/issues?q=is%3Aissue). For build errors, a reported issue typically mentions a key error message. This key error message is often not in the 10 last build log lines reported to the console but is rather earlier in the build log -- typically, it's the first error message encountered in the log. +* [ ] Make sure you are reporting a problem in Pyenv and not seeking consultation with Pyenv usage. + * GitHub issues are intended mainly for Pyenv development purposes. If you are seeking help with Pyenv usage, check [Pyenv documentation](https://github.com/pyenv/pyenv?tab=readme-ov-file#simple-python-version-management-pyenv), go to a user community site like [Gitter](https://gitter.im/yyuu/pyenv), [StackOverflow](https://stackoverflow.com/questions/tagged/pyenv), etc, or to [Discussions](https://github.com/orgs/pyenv/discussions). +* [ ] Make sure your problem is not derived from packaging (e.g. [Homebrew](https://brew.sh)). + * Please refer to the package documentation for the installation issues, etc. +* [ ] Make sure your problem is not derived from plugins. + * This repository is maintaining `pyenv` and the default `python-build` plugin only. Please refrain from reporting issues of other plugins here. + +### Describe the bug +A clear and concise description of what the bug is. +Do specify what the expected behaviour is if that's not obvious from the bug's nature. + +#### Reproduction steps +Listing the commands to run in a new console session and their output is usually sufficient. +Please use a Markdown code block (three backticks on a line by themselves before and after the text) to denote a console output excerpt. +Usually not needed for build errors (since the arguments can already be seen in the debug trace) unless you are using an unusual invocation (e.g. setting environment variables that affect the build). + +#### Diagnostic details +- [ ] Platform information (e.g. Ubuntu Linux 24.04): +- [ ] OS architecture (e.g. amd64): +- [ ] pyenv version: +- [ ] Python version: +- [ ] C Compiler information (e.g. gcc 7.3): +- [ ] Please attach the debug trace of the failing command as a [gist](https://gist.github.com/): + * Run `env PYENV_DEBUG=1 2>&1 | tee trace.log` and attach `trace.log`. E.g. if you have a problem with installing Python, run `env PYENV_DEBUG=1 pyenv install -v 2>&1 | tee trace.log` (note the `-v` option to `pyenv install`). +- [ ] If you have a problem with installing Python, please also attach `config.log` from the build directory + * The build directory is reported after the "BUILD FAILED" message and is usually under `/tmp`. +- [ ] If the build succeeds but the problem is still with the build process (e.g. the resulting Python is missing a feature), please attach + * the debug trace from reinstalling the faulty version with `env PYENV_DEBUG=1 pyenv install -f -k -v 2>&1 | tee trace.log` + * `config.log` from the build directory. When using `pyenv install` with `-k` as per above, the build directory will be under `$PYENV_ROOT/sources`. +- [ ] If the problem happens in another Pyenv invocation, turn on debug logging by setting `PYENV_DEBUG=1`, e.g. `env PYENV_DEBUG=1 pyenv local 3.6.4`, and attach the resulting trace as a gist +- [ ] If the problem happens outside of a Pyenv invocation, get the debug trace like this: + ``` + export PYENV_DEBUG=1 + # for Bash + export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + # for Zsh + export PS4='+(%x:%I): %N(%i): ' + + set -x + + set +x + ``` From 7725fe2cf29293875454ee23b0fc003d916a2788 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 6 Jul 2025 23:46:48 +0300 Subject: [PATCH 0963/1324] Install feature request templates [no ci] --- .github/ISSUE_TEMPLATE/feature_request.md | 24 +++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..00c109d1ea --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,24 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: '' +assignees: '' + +--- + +**Describe the intended use case** +* What your general environment is if it's relevant to the feature request and is not a generic console with a typical Pyenv installation (CI, server with a custom setup, cloud environment, IDE) +* What you are trying to achieve +* What specifically you are doing for that regarding Pyenv +* Where you are stuck + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. +[ ] In particular, did you consider [writing a plugin](https://github.com/pyenv/pyenv/blob/master/README.md#pyenv-plugins)? Note that if your plugin has general applicability, you can publish it in the 3rd-party plugin catalog on the Pyenv Wiki as per the link above. + +**Additional context** +Add any other context or screenshots about the feature request here. From 20296fc53a5f089929550b6fdc7004d0aee0f1ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Tue, 8 Jul 2025 12:10:52 -0600 Subject: [PATCH 0964/1324] Add CPython 3.14.0b4 (#3285) * Bump CPython 3.14 OpenSSL to 3.4.2 --- plugins/python-build/share/python-build/3.14.0b3 | 9 --------- plugins/python-build/share/python-build/3.14.0b4 | 9 +++++++++ .../share/python-build/{3.14.0b3t => 3.14.0b4t} | 0 3 files changed, 9 insertions(+), 9 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.0b3 create mode 100644 plugins/python-build/share/python-build/3.14.0b4 rename plugins/python-build/share/python-build/{3.14.0b3t => 3.14.0b4t} (100%) diff --git a/plugins/python-build/share/python-build/3.14.0b3 b/plugins/python-build/share/python-build/3.14.0b3 deleted file mode 100644 index 938ecdbc80..0000000000 --- a/plugins/python-build/share/python-build/3.14.0b3 +++ /dev/null @@ -1,9 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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.14.0b3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b3.tar.xz#c6f48bf51f01f50d87007a445dd7afe4a4c7a87ab482570be924c1ddfd0d3682" standard verify_py314 copy_python_gdb ensurepip -else - install_package "Python-3.14.0b3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b3.tgz#ac25adf76484728527fb621bc14a83c1ddd43f9a7a0a7fdbb07d09722fec5f3d" standard verify_py314 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.14.0b4 b/plugins/python-build/share/python-build/3.14.0b4 new file mode 100644 index 0000000000..90341f48ac --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0b4 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.4.2" "https://github.com/openssl/openssl/releases/download/openssl-3.4.2/openssl-3.4.2.tar.gz#17b02459fc28be415470cccaae7434f3496cac1306b86b52c83886580e82834c" 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.14.0b4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b4.tar.xz#15e123e056abebba6de5e73cfa304459a8c82cafa85d4fc7fc6de80e6a3e1b39" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.0b4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b4.tgz#bd46b9bf6c1552542e8d36afc7661a3101ded03665228cf3f78c929737bb8ddb" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.0b3t b/plugins/python-build/share/python-build/3.14.0b4t similarity index 100% rename from plugins/python-build/share/python-build/3.14.0b3t rename to plugins/python-build/share/python-build/3.14.0b4t From 0c680e8ede8488ce71bcebc5811ccd3ac639708a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 8 Jul 2025 21:12:30 +0300 Subject: [PATCH 0965/1324] 2.6.4 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1580d4245..46bd95661c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.6.4 +* Backport bpo_36106 to 3.5.10 and 3.6.15 by @native-api in https://github.com/pyenv/pyenv/pull/3280 +* (regression) Use Zlib from XCode SDK in MacOS without Homebrew or Macports by @native-api in https://github.com/pyenv/pyenv/pull/3282 +* Add PyPy v7.3.20 by @jsirois in https://github.com/pyenv/pyenv/pull/3284 +* Add CPython 3.14.0b4 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3285 + ## Release v2.6.3 * README: Re-promote "Python versions with extended support" to a section by @native-api in https://github.com/pyenv/pyenv/pull/3276 * Support linking to MacPorts ports installed from binary archives by @0916dhkim in https://github.com/pyenv/pyenv/pull/3272 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 12d92e3ab3..6878530ab1 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.3" +version="2.6.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then From 945f4b216d83530a3d3251e41d3876ff96174330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Thu, 10 Jul 2025 10:49:03 -0600 Subject: [PATCH 0966/1324] Bump OpenSSL to 3.5.1 in the latest releases and branch tips in CPython 3.12 - 3.15 (#3287) --- plugins/python-build/share/python-build/3.12.11 | 2 +- plugins/python-build/share/python-build/3.13-dev | 2 +- plugins/python-build/share/python-build/3.13.5 | 2 +- plugins/python-build/share/python-build/3.14-dev | 2 +- plugins/python-build/share/python-build/3.14.0b4 | 2 +- plugins/python-build/share/python-build/3.15-dev | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/share/python-build/3.12.11 b/plugins/python-build/share/python-build/3.12.11 index 67c429e6e0..85bd7d109f 100644 --- a/plugins/python-build/share/python-build/3.12.11 +++ b/plugins/python-build/share/python-build/3.12.11 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.3.3" "https://github.com/openssl/openssl/releases/download/openssl-3.3.3/openssl-3.3.3.tar.gz#712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.11" "https://www.python.org/ftp/python/3.12.11/Python-3.12.11.tar.xz#c30bb24b7f1e9a19b11b55a546434f74e739bb4c271a3e3a80ff4380d49f7adb" standard verify_py312 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.13-dev b/plugins/python-build/share/python-build/3.13-dev index 088f8927f9..3fa7508a35 100644 --- a/plugins/python-build/share/python-build/3.13-dev +++ b/plugins/python-build/share/python-build/3.13-dev @@ -2,6 +2,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 -install_package "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.5.1" "https://www.openssl.org/source/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 "Python-3.13-dev" "https://github.com/python/cpython" 3.13 standard verify_py313 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.13.5 b/plugins/python-build/share/python-build/3.13.5 index 8ab201eb85..d867c4eb84 100644 --- a/plugins/python-build/share/python-build/3.13.5 +++ b/plugins/python-build/share/python-build/3.13.5 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.5" "https://www.python.org/ftp/python/3.13.5/Python-3.13.5.tar.xz#93e583f243454e6e9e4588ca2c2662206ad961659863277afcdb96801647d640" standard verify_py313 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.14-dev b/plugins/python-build/share/python-build/3.14-dev index 71a74ac588..8823e93990 100644 --- a/plugins/python-build/share/python-build/3.14-dev +++ b/plugins/python-build/share/python-build/3.14-dev @@ -2,6 +2,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 -install_package "openssl-3.3.0" "https://www.openssl.org/source/openssl-3.3.0.tar.gz#53e66b043322a606abf0087e7699a0e033a37fa13feb9742df35c3a33b18fb02" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.5.1" "https://www.openssl.org/source/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 "Python-3.14-dev" "https://github.com/python/cpython" 3.14 standard verify_py314 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.14.0b4 b/plugins/python-build/share/python-build/3.14.0b4 index 90341f48ac..19d5caf905 100644 --- a/plugins/python-build/share/python-build/3.14.0b4 +++ b/plugins/python-build/share/python-build/3.14.0b4 @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -install_package "openssl-3.4.2" "https://github.com/openssl/openssl/releases/download/openssl-3.4.2/openssl-3.4.2.tar.gz#17b02459fc28be415470cccaae7434f3496cac1306b86b52c83886580e82834c" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.14.0b4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b4.tar.xz#15e123e056abebba6de5e73cfa304459a8c82cafa85d4fc7fc6de80e6a3e1b39" standard verify_py314 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.15-dev b/plugins/python-build/share/python-build/3.15-dev index 52ddebf899..ce92a386bf 100644 --- a/plugins/python-build/share/python-build/3.15-dev +++ b/plugins/python-build/share/python-build/3.15-dev @@ -2,6 +2,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 -install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" mac_openssl --if has_broken_mac_openssl +install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 install_git "Python-3.15-dev" "https://github.com/python/cpython" main standard verify_py315 copy_python_gdb ensurepip From 16508177fb7fd53e6726ba847443285e66cea9f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Rom=C3=A1n?= Date: Thu, 17 Jul 2025 11:40:12 -0700 Subject: [PATCH 0967/1324] Add Jython 2.7.4 (#3290) --- .../python-build/share/python-build/jython-2.7.4 | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 plugins/python-build/share/python-build/jython-2.7.4 diff --git a/plugins/python-build/share/python-build/jython-2.7.4 b/plugins/python-build/share/python-build/jython-2.7.4 new file mode 100644 index 0000000000..e84ba426ed --- /dev/null +++ b/plugins/python-build/share/python-build/jython-2.7.4 @@ -0,0 +1,14 @@ +require_java +unrequire_python27 +install_jar "jython-2.7.4" "https://repo1.maven.org/maven2/org/python/jython-installer/2.7.4/jython-installer-2.7.4.jar#6001f0741ed5f4a474e5c5861bcccf38dc65819e25d46a258cbc0278394a070b" jython + +case "$(pypy_architecture 2>/dev/null || true)" in +"osx64"|"win32" ) + # Jython does not seem to work properly on OSX/windows unless JAVA_HOME is set + if [ -z "${JAVA_HOME+defined}" ]; then + colorize 1 "WARNING: " + echo "Please ensure that your JAVA_HOME environment variable is set correctly!" + echo "See http://bugs.jython.org/issue2346 for details." + fi + ;; +esac From 418a61b7b842aebc4dfda5623ad3384384ef314a Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 19 Jul 2025 18:34:11 +0300 Subject: [PATCH 0968/1324] Update README.md Explicitly specify how to use the Zsh shell snippet It turns out to be unclear to some users --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 835029141d..5d43b41572 100644 --- a/README.md +++ b/README.md @@ -221,6 +221,7 @@ See [Advanced configuration](#advanced-configuration) for details and more confi #### Zsh
+ Add Pyenv startup commands to `~/.zshrc` by running the following in your terminal: ```zsh echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc From 40f46083dbf4a86f876907194fc26771b9ad75c7 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 23 Jul 2025 14:11:40 -0400 Subject: [PATCH 0969/1324] Add CPython 3.14.0rc1 (#3293) --- .../python-build/share/python-build/{3.14.0b4 => 3.14.0rc1} | 4 ++-- .../python-build/share/python-build/{3.14.0b4t => 3.14.0rc1t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.14.0b4 => 3.14.0rc1} (54%) rename plugins/python-build/share/python-build/{3.14.0b4t => 3.14.0rc1t} (100%) diff --git a/plugins/python-build/share/python-build/3.14.0b4 b/plugins/python-build/share/python-build/3.14.0rc1 similarity index 54% rename from plugins/python-build/share/python-build/3.14.0b4 rename to plugins/python-build/share/python-build/3.14.0rc1 index 19d5caf905..7ab37ba830 100644 --- a/plugins/python-build/share/python-build/3.14.0b4 +++ b/plugins/python-build/share/python-build/3.14.0rc1 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.14.0b4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b4.tar.xz#15e123e056abebba6de5e73cfa304459a8c82cafa85d4fc7fc6de80e6a3e1b39" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0rc1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tar.xz#8707780ae9f19c5bf5b9f27827181ba11cdad7bb292ea49cad5424331e40ee8b" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.0b4" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0b4.tgz#bd46b9bf6c1552542e8d36afc7661a3101ded03665228cf3f78c929737bb8ddb" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0rc1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tgz#b83dad08c6cdab9af945a063fd6a16b5ed232771a0eb9baad8e45e31185f4d46" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0b4t b/plugins/python-build/share/python-build/3.14.0rc1t similarity index 100% rename from plugins/python-build/share/python-build/3.14.0b4t rename to plugins/python-build/share/python-build/3.14.0rc1t From 609daca27c6d5b5bd5af0be95fd79aaffee38cde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 23 Jul 2025 20:17:19 +0200 Subject: [PATCH 0970/1324] Add GraalPy 24.2.2 (#3291) --- .../share/python-build/graalpy-24.2.2 | 64 +++++++++++++++++++ .../python-build/graalpy-community-24.2.2 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-24.2.2 create mode 100644 plugins/python-build/share/python-build/graalpy-community-24.2.2 diff --git a/plugins/python-build/share/python-build/graalpy-24.2.2 b/plugins/python-build/share/python-build/graalpy-24.2.2 new file mode 100644 index 0000000000..04bb87f4af --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-24.2.2 @@ -0,0 +1,64 @@ +# Copyright (c) 2025, 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='24.2.2' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="604b7abf6c58038a30866e52da43818af63bcd97909af8b1a96523c7f0e01414" + ;; +"linux-aarch64" ) + checksum="c9be459ab9479892b88dd63f8f88cbc7b1067f4cb27ff17f4761b36de6bd73af" + ;; +"macos-amd64" ) + checksum="2f4d5e7dbdf90e38778dfcb8ca3e1ec7eee257ef726b1937d5bc91b54cdddf9b" + ;; +"macos-aarch64" ) + checksum="f4a2ae01bae0fa53ec0d19f86d73c6dcc2a162d245552030183b84bfdd8f7635" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-24.2.2 b/plugins/python-build/share/python-build/graalpy-community-24.2.2 new file mode 100644 index 0000000000..a2a13e518f --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-24.2.2 @@ -0,0 +1,54 @@ +# Copyright (c) 2025, 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='24.2.2' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="384642677b76c26d6be1cf6bce2bc94d49df53845dd506414d95e2322bc9ac5d" + ;; +"linux-aarch64" ) + checksum="b91dbf13945443320c7ed0c806af174689f94125b5708d3818cbd8d99ee18b40" + ;; +"macos-amd64" ) + checksum="46b8800a675f27745705c4db363306836fd7e706d4c01d75582f535ed1cea6c0" + ;; +"macos-aarch64" ) + checksum="c280e6c629c45e00bd91f038c001ce02956e92ad206e6582c2a1634751695468" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 23fe500a3357874edec6e69b84c226fc12729594 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 23 Jul 2025 21:20:29 +0300 Subject: [PATCH 0971/1324] Push version in Python-Build as well --- MAINTENANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MAINTENANCE.md b/MAINTENANCE.md index 42debf224c..db53f17853 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -8,7 +8,7 @@ Release checklist: Type the would-be tag name in the "Choose a tag" field and press "Generate release notes" * The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI) * Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section) -* Push the version number in `libexec/pyenv---version` +* Push the version number in `libexec/pyenv---version` and `plugins/python-build/bin/python-build` * Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases). * Major version is pushed if there are breaking changes * Commit the changes locally into `master` From df84c4265319adc775957eb16b714fcec526fcc7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 23 Jul 2025 21:20:39 +0300 Subject: [PATCH 0972/1324] 2.6.5 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46bd95661c..2b5d647e64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.6.5 +* Bump OpenSSL to 3.5.1 in the latest releases and branch tips in CPython 3.12 - 3.15 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3287 +* Add Jython 2.7.4 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/3290 +* Add CPython 3.14.0rc1 by @nedbat in https://github.com/pyenv/pyenv/pull/3293 +* Add GraalPy 24.2.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3291 + ## Release v2.6.4 * Backport bpo_36106 to 3.5.10 and 3.6.15 by @native-api in https://github.com/pyenv/pyenv/pull/3280 * (regression) Use Zlib from XCode SDK in MacOS without Homebrew or Macports by @native-api in https://github.com/pyenv/pyenv/pull/3282 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 6878530ab1..ffa0d9aaea 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.4" +version="2.6.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 891605b93d..eacf565893 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="20180424" +PYTHON_BUILD_VERSION="2.6.5" OLDIFS="$IFS" From 05cc41d273fd9d2ccac902ba0c730e760ad04a14 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 3 Aug 2025 09:29:21 +0300 Subject: [PATCH 0973/1324] CI: change macos_build to -latest --- .github/workflows/macos_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index fdd424bb53..143c8c4127 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -15,7 +15,7 @@ jobs: - "3.11" - "3.12" - "3.13" - runs-on: macos-14 + runs-on: macos-latest steps: - uses: actions/checkout@v4 # Normally, we would use the superbly maintained... From bd9d13b9fec94adf8a6d50e5436a7360e3bc89ac Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 3 Aug 2025 09:29:54 +0300 Subject: [PATCH 0974/1324] Add anaconda3-2025.06-0, anaconda3-2025.06-1, miniconda3-25.3.1-1, miniconda3-25.5.1-0, miniconda3-25.5.1-1 (#3295) --- .../share/python-build/anaconda3-2025.06-0 | 22 +++++++++++++++++++ .../share/python-build/anaconda3-2025.06-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.10-25.3.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.10-25.5.1-0 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.10-25.5.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.3.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.5.1-0 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.5.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.3.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.5.1-0 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.5.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.3.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.5.1-0 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.5.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.3.1-1 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.5.1-0 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.5.1-1 | 22 +++++++++++++++++++ 17 files changed, 374 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2025.06-0 create mode 100644 plugins/python-build/share/python-build/anaconda3-2025.06-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 diff --git a/plugins/python-build/share/python-build/anaconda3-2025.06-0 b/plugins/python-build/share/python-build/anaconda3-2025.06-0 new file mode 100644 index 0000000000..2ad64f9467 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2025.06-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2025.06-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-aarch64.sh#e6177f844f6156f07978c85b1f18ca3b7724d5ab5dba44b88a7f6b2452ba6271" "anaconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2025.06-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh#08db13f6db5dd4f99b3a6db96c68d064d50ea23742013b70f588e3a27a5204da" "anaconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2025.06-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-MacOSX-arm64.sh#195f234204e2f18803cea38bbebefcaac5a3d8d95e2e4ee106d1b87b23b9fc4a" "anaconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2025.06-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-MacOSX-x86_64.sh#8625a155ff1d2848afa360e70357e14c25f0ac7ac21e4e4bf15015bc58b08d06" "anaconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/anaconda3-2025.06-1 b/plugins/python-build/share/python-build/anaconda3-2025.06-1 new file mode 100644 index 0000000000..10f343c753 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2025.06-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2025.06-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-Linux-aarch64.sh#98dfb82732991f3f4d385a265da5fd2190d65ec31ceafa0b93f3c5edf4431a5b" "anaconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2025.06-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-Linux-x86_64.sh#82976426a2c91fe1453281def386f9ebebd8fdb45dc6c970b54cfef4e9120857" "anaconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2025.06-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-MacOSX-arm64.sh#f9366a024ac6f043dc224986c54f1b4e1226e6ccb6291d83bdadb489f159d847" "anaconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Anaconda3-2025.06-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-MacOSX-x86_64.sh#58139fe195337f3041259e3a611339ed3afa4d164cc9aa2a7e8e84c0673e3670" "anaconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 new file mode 100644 index 0000000000..66d105e528 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.3.1-1-Linux-aarch64.sh#7879e8e2c89d26d8c4776fbad72656afda697e67e2e70b9b8eef368b111d2253" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.3.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.3.1-1-Linux-x86_64.sh#fa277fc23e40625d4c12a00c0378b4bbb2baee96660796431ee76185fe1b5025" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.3.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.3.1-1-MacOSX-arm64.sh#79036d813ac3035b8d833ea427df6ccd02d25798d7abb5e5b4423f6642088a33" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.3.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.3.1-1-MacOSX-x86_64.sh#adf482eea0ffa1f6ead1cb217ee0a2cc8c0732399782a609c4333dc96bf9d6a6" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 new file mode 100644 index 0000000000..ca482d37ea --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-0-Linux-aarch64.sh#6886af5e5db79dfb4429cde937b6f806d02b0e98dd11249c74917661fc7b1f4b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-0-Linux-x86_64.sh#aa8cbd6aa7ef85d0528616d2dffce8bd0b51924e7ddd18734ede6c1c63c462d0" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-0-MacOSX-arm64.sh#169baa18136f7ee46052ec4e1719401e1b99427bba3cf0507da0a6980b7e32a1" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-0-MacOSX-x86_64.sh#7d7aa6302fe696afa5b46b3c8f6eaf80fcf3c1355df0c3a8910514cf02bf02af" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 new file mode 100644 index 0000000000..ce3d7e7bb4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-1-Linux-aarch64.sh#630f724622a3f45f66b3b08f708bc44e2cb595ad147f68750271c6352cb4d734" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.5.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-1-Linux-x86_64.sh#84bd8f60fea2e09f1fa72f258132337aff7a20ec1e12dea9d1eff96830cf3d8c" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.5.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-1-MacOSX-arm64.sh#4e8309e9c0ed87fe5f5ffc77ae71201f51939f5c163d00f6867154f1b9cee41a" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.5.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-1-MacOSX-x86_64.sh#564e63a326cf73b2ab9a4a8be5bdf51996388f10a8eb4170071cb74f836d1e4e" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 new file mode 100644 index 0000000000..a1b88cfbf3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.3.1-1-Linux-aarch64.sh#8d2470bdbee7e93d9b4972a3272b63673ba62113282378f98f23b423cc61ef59" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.3.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.3.1-1-Linux-x86_64.sh#6239d42dacc169e290ac37516b2eb6751763edbd977b237e9688884c7b4ea706" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.3.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.3.1-1-MacOSX-arm64.sh#dc08b8f6fb2acb4f1c8b076a59226e29acf0a9dbeb7b5f643a8c19eb0d14a294" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.3.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.3.1-1-MacOSX-x86_64.sh#2494921f81db2c9b72e26e4aced35d5c58ea2a61ce040efd77ed2957ba4d8d3f" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 new file mode 100644 index 0000000000..37ed9ef99e --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-0-Linux-aarch64.sh#3862c5ecba0949c3bdbeeb7d072664215924fbccb25f0d3f33782362c5405e22" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-0-Linux-x86_64.sh#a921abd74e16f5dee8a4d79b124635fac9b939c465ba2e942ea61b3fcd1451d8" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-0-MacOSX-arm64.sh#23a6d150c1fc7426147f9458c20ec73fa97aa369e19152997b7206f23b983d66" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-0-MacOSX-x86_64.sh#cc23ad95d62e1d3c5754c2ead09f2c56bfe1112b38b69a4edc140a0a2c8d5300" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 new file mode 100644 index 0000000000..ca4940e950 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-1-Linux-aarch64.sh#39a6d853df41b74aabe37dd666732f7556f81584af789693d7e3005d7a04c64f" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.5.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-1-Linux-x86_64.sh#94b4cb34b583ce549fb17e3b5e93b6e4adfd4605cf0aa4d5f00bd06f620182e2" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.5.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-1-MacOSX-arm64.sh#73b8ef14c88fa2bf9b74c70f7a888a0a19941a67929e4879850a67c948d4ac58" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.5.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-1-MacOSX-x86_64.sh#1060cbd0001c12c3e89bf39413c430cc481a894f065923a03e599c8426020229" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 new file mode 100644 index 0000000000..98a6bc271b --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.3.1-1-Linux-aarch64.sh#4b8078ef311bad880b2497c098d734cd0e7316410a4f4fa1a8dbf6ab9ade98ea" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.3.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.3.1-1-Linux-x86_64.sh#8937a2c9a86cfc5495ba2234476f89686beff5c8e0569b1ed5771a927c75107b" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.3.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.3.1-1-MacOSX-arm64.sh#a0986857f44b8e22eaa65965d462921cf22c0624fef0fb9ad005811e43152ab8" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.3.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.3.1-1-MacOSX-x86_64.sh#ef6583760e507a08006618c4c425075989a7c9b990ec463538bd95e329ac07f8" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 new file mode 100644 index 0000000000..1f046692a3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-0-Linux-aarch64.sh#9bd5765f163568f4ac85b8189aa2b260d1febb1080d085bb2535a3cae2d7f0e4" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-0-Linux-x86_64.sh#b99e5bcdf8cd2df9ffd11019eac8a20cf84598267941500935d62e14a0e2a6f6" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-0-MacOSX-arm64.sh#016845b69dc9476cc3aa950b6577c9d596aae705258ee30b3261b4d258033426" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-0-MacOSX-x86_64.sh#bf9f441d20e6af3f6035e07e892e245161a4dc4962cae3346ef77c75a62b033d" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 new file mode 100644 index 0000000000..8d2b79cad9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-1-Linux-aarch64.sh#b007c6307c9a2081b8abfa0ff16caf0117226a7a9485031853fea125795de7ca" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.5.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-1-Linux-x86_64.sh#e3228df32afc6d43cb190a416b91937cdcd1c6308d9fe652274539a07142966f" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.5.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-1-MacOSX-arm64.sh#b7fef84af2ae88c395e29bde17707b9b33e34a36e431a083f5f38348c75fa89f" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.5.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-1-MacOSX-x86_64.sh#f9501093dc8a509179fb7ac6c230ae5c35405fca47d8c95bfa97d9327781727a" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 new file mode 100644 index 0000000000..af30da494f --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-Linux-aarch64.sh#4caa0c266ab726b440ccad40a74774167494e001da5de281b74f2d5673e4ace9" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.3.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-Linux-x86_64.sh#53a86109463cfd70ba7acab396d416e623012914eee004729e1ecd6fe94e8c69" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.3.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-MacOSX-arm64.sh#d54b27ed4a6d3c31fedbad6f9f488377702196b0d8d89854e8e7d01f701f225b" "miniconda" verify_py313 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py313_25.3.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-MacOSX-x86_64.sh#614c455b74d85abe98c2d0fb9b00628bbf2d48932ea4b49ec05b5c4bee7e9239" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 new file mode 100644 index 0000000000..2f0fcd47d4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-0-Linux-aarch64.sh#368d5250682c12d3e1810e8cf5ce4f08e95ccc56c96dcf559567a6b4f72b203d" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-0-Linux-x86_64.sh#ae15e3f987bdf93edfd6f9dd35b122c34ac72555822f80f5c7c8642595a13197" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-0-MacOSX-arm64.sh#2559c460b128c0c1c0ce5e9d00fd03160baa7c15ae9f758eaaaab5506d442416" "miniconda" verify_py313 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py313_25.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-0-MacOSX-x86_64.sh#8507e1fcea7f744af3c858b8df4666d60ed42d383442fd560fe8f97949249d88" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 new file mode 100644 index 0000000000..f0d9115d33 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-Linux-aarch64.sh#b7d611dcaa638efd700a4a4eb24fbcb9f7b94cc1773d7c655959c330d0b68e16" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.5.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-Linux-x86_64.sh#612af113b49db0368e2be41ac4d51b7088eebd5f31daeeb89f23fff8f920db58" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.5.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-MacOSX-arm64.sh#2ec6f7981770b3396a9ab426e07ac8ef5b12b4393aa2e4bcc984376fe3aa327e" "miniconda" verify_py313 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py313_25.5.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-MacOSX-x86_64.sh#4152f260040d452bfe00c67ac6b429aec7ff3b98f62bab8abe4c468e98e51891" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 new file mode 100644 index 0000000000..63a64094d3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.3.1-1-Linux-aarch64.sh#435f9b5640716dd770e9abe404c54db7d3493cb61a814c5de1fe345ea017d4a6" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.3.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.3.1-1-Linux-x86_64.sh#2d94390e8858c72f6a28080954fd640ae4449d08d7b9d4ff8c94ad39beaf5f46" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.3.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.3.1-1-MacOSX-arm64.sh#5838abb6f108de3f42aaaf3c3bb0747879b4202f70332e7ffb81dc3fa6b518a4" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.3.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.3.1-1-MacOSX-x86_64.sh#51e293033a02582295e5795b7ec440ac322251a46894c20bca65dd15399bd447" "miniconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 new file mode 100644 index 0000000000..c89582fde5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-0-Linux-aarch64.sh#e4311fcce812cce6a914e7a82fb1180d278eaa705e40be6789795781d375fe53" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.5.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-0-Linux-x86_64.sh#eac177f8c3bf584c1816aded4a0e2d9201253a4305cd0cbc8c1d4adbe6bde96d" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.5.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-0-MacOSX-arm64.sh#562d7f0632a9f6ee636c6457b45daa200ca44890d920f6d671dfa44c6150b052" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.5.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-0-MacOSX-x86_64.sh#47b52b6c817c5cb41877e24f78d34add775065f8815e5205a9c3d7dada3306c7" "miniconda" verify_py39 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 new file mode 100644 index 0000000000..f41114c582 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-1-Linux-aarch64.sh#a1078a803928d8f8f1fd29a2bdad6689f19239844ee3beb84372f66f00cbfb19" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.5.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-1-Linux-x86_64.sh#33778762cb69381ce01de7f60bf4350935d3b31169e541fc9fbffbab5712670a" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.5.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-1-MacOSX-arm64.sh#8c6968889bbebb3df94ce441775c1e7cfecae2fefb3955b09ac3b7b619bf7208" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.5.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-1-MacOSX-x86_64.sh#83884da278a084d5d1923613af229aa4c384eebe197b48cb996a4c862d850e7f" "miniconda" verify_py39 + ;; +* ) + { 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 From 73b7420b3d6a155f583119b73ca7f2c12ce2d971 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Rom=C3=A1n?= Date: Thu, 7 Aug 2025 13:15:37 -0700 Subject: [PATCH 0975/1324] Add CPython 3.13.6 (#3297) --- plugins/python-build/share/python-build/3.13.6 | 9 +++++++++ plugins/python-build/share/python-build/3.13.6t | 2 ++ 2 files changed, 11 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.6 create mode 100644 plugins/python-build/share/python-build/3.13.6t diff --git a/plugins/python-build/share/python-build/3.13.6 b/plugins/python-build/share/python-build/3.13.6 new file mode 100644 index 0000000000..f474fcb471 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.6 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.6" "https://www.python.org/ftp/python/3.13.6/Python-3.13.6.tar.xz#17ba5508819d8736a14fbfc47d36e184946a877851b2e9c4b6c43acb44a3b104" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.6" "https://www.python.org/ftp/python/3.13.6/Python-3.13.6.tgz#6cf50672cc03928488817d45af24bc927a48f910fe7893d6f388130e59ba98d7" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.6t b/plugins/python-build/share/python-build/3.13.6t new file mode 100644 index 0000000000..ebd946f4a6 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.6t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.6 From d56241330c3caa695042bf382587713ce7366a93 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 7 Aug 2025 23:17:54 +0300 Subject: [PATCH 0976/1324] 2.6.6 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2b5d647e64..43545cbeff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.6.6 +* Add anaconda3-2025.06-0, anaconda3-2025.06-1, miniconda3-25.3.1-1, miniconda3-25.5.1-0, miniconda3-25.5.1-1 by @native-api in https://github.com/pyenv/pyenv/pull/3295 +* Add CPython 3.13.6 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/3297 + ## Release v2.6.5 * Bump OpenSSL to 3.5.1 in the latest releases and branch tips in CPython 3.12 - 3.15 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3287 * Add Jython 2.7.4 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/3290 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index ffa0d9aaea..d473793dd2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.5" +version="2.6.6" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index eacf565893..69b617e36a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.5" +PYTHON_BUILD_VERSION="2.6.6" OLDIFS="$IFS" From 685f2815265c9c0fbdb92544de6c476fb8a33f3d Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 8 Aug 2025 23:05:49 +0300 Subject: [PATCH 0977/1324] Skip Zlib from XCode for XCode 16+ (#3298) It breaks the build due to yet unknown structural changes from XCode 15 --- plugins/python-build/bin/python-build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 69b617e36a..60ace1869c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1826,8 +1826,13 @@ use_homebrew_zlib() { } use_xcode_sdk_zlib() { + local xcode_major; # If a custom compiler is used, including XCode SDK will likely break it [[ "${CC:-clang}" != "clang" || "$(command -v clang 2>/dev/null || true)" != "/usr/bin/clang" ]] && return 1 + # The flags set by this function break the build in XCode 16 due to unknown changes from XCode 15 + # For future-proofing, also disable it if we cannot determine the version + [[ $(xcodebuild -version) =~ ^Xcode\ ([[:digit:]]+) ]] && xcode_major="${BASH_REMATCH[1]}" + [[ -z $xcode_major || $xcode_major -ge 16 ]] && return 1 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" From 10675af5a67bd9b753cab54319ec121237e03c88 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 14 Aug 2025 22:40:54 +0300 Subject: [PATCH 0978/1324] Don't fail the build if `xcodebuild` fails (#3302) --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 60ace1869c..4615131419 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1831,7 +1831,7 @@ use_xcode_sdk_zlib() { [[ "${CC:-clang}" != "clang" || "$(command -v clang 2>/dev/null || true)" != "/usr/bin/clang" ]] && return 1 # The flags set by this function break the build in XCode 16 due to unknown changes from XCode 15 # For future-proofing, also disable it if we cannot determine the version - [[ $(xcodebuild -version) =~ ^Xcode\ ([[:digit:]]+) ]] && xcode_major="${BASH_REMATCH[1]}" + [[ $(xcodebuild -version 2>/dev/null || true) =~ ^Xcode\ ([[:digit:]]+) ]] && xcode_major="${BASH_REMATCH[1]}" [[ -z $xcode_major || $xcode_major -ge 16 ]] && return 1 local xc_sdk_path="$(xcrun --show-sdk-path 2>/dev/null || true)" if [ -d "$xc_sdk_path" ]; then From 43da49d6dfd1f25fe22a6f78fe0159730a66591b Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Fri, 15 Aug 2025 14:13:33 -0400 Subject: [PATCH 0979/1324] Add CPython 3.14.0rc2 and 3.13.7 (#3303) --- plugins/python-build/share/python-build/3.13.7 | 9 +++++++++ plugins/python-build/share/python-build/3.13.7t | 2 ++ .../share/python-build/{3.14.0rc1 => 3.14.0rc2} | 4 ++-- .../share/python-build/{3.14.0rc1t => 3.14.0rc2t} | 0 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.13.7 create mode 100644 plugins/python-build/share/python-build/3.13.7t rename plugins/python-build/share/python-build/{3.14.0rc1 => 3.14.0rc2} (59%) rename plugins/python-build/share/python-build/{3.14.0rc1t => 3.14.0rc2t} (100%) diff --git a/plugins/python-build/share/python-build/3.13.7 b/plugins/python-build/share/python-build/3.13.7 new file mode 100644 index 0000000000..8d9b3c1fa8 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.7 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.7" "https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tar.xz#5462f9099dfd30e238def83c71d91897d8caa5ff6ebc7a50f14d4802cdaaa79a" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.7" "https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tgz#6c9d80839cfa20024f34d9a6dd31ae2a9cd97ff5e980e969209746037a5153b2" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.7t b/plugins/python-build/share/python-build/3.13.7t new file mode 100644 index 0000000000..42c67b0c89 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.7t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.13.7 diff --git a/plugins/python-build/share/python-build/3.14.0rc1 b/plugins/python-build/share/python-build/3.14.0rc2 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0rc1 rename to plugins/python-build/share/python-build/3.14.0rc2 index 7ab37ba830..bedbd19e64 100644 --- a/plugins/python-build/share/python-build/3.14.0rc1 +++ b/plugins/python-build/share/python-build/3.14.0rc2 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.14.0rc1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tar.xz#8707780ae9f19c5bf5b9f27827181ba11cdad7bb292ea49cad5424331e40ee8b" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0rc2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc2.tar.xz#bc62854cf232345bd22c9091a68464e01e056c6473a3fffa84572c8a342da656" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.0rc1" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc1.tgz#b83dad08c6cdab9af945a063fd6a16b5ed232771a0eb9baad8e45e31185f4d46" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0rc2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc2.tgz#b336f5d76fcf2725b29108f253d4338fbe4cc6a17cd8baf059deebb5a343dd8f" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0rc1t b/plugins/python-build/share/python-build/3.14.0rc2t similarity index 100% rename from plugins/python-build/share/python-build/3.14.0rc1t rename to plugins/python-build/share/python-build/3.14.0rc2t From 3dbdfdf39a4299261f1d6ae94d044036a89de930 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 15 Aug 2025 21:49:48 +0300 Subject: [PATCH 0980/1324] 2.6.7 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43545cbeff..8bcc10fcf5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.6.7 +* Skip Zlib from XCode for XCode 16+ by @native-api in https://github.com/pyenv/pyenv/pull/3298 +* Don't fail the build if `xcodebuild` fails by @native-api in https://github.com/pyenv/pyenv/pull/3302 +* Add CPython 3.14.0rc2 and 3.13.7 by @nedbat in https://github.com/pyenv/pyenv/pull/3303 + ## Release v2.6.6 * Add anaconda3-2025.06-0, anaconda3-2025.06-1, miniconda3-25.3.1-1, miniconda3-25.5.1-0, miniconda3-25.5.1-1 by @native-api in https://github.com/pyenv/pyenv/pull/3295 * Add CPython 3.13.6 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/3297 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index d473793dd2..79f6db093e 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.6" +version="2.6.7" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4615131419..294b167822 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.6" +PYTHON_BUILD_VERSION="2.6.7" OLDIFS="$IFS" From bc44cb8fc0cddf4163d9c507f82ea77893589312 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 16 Aug 2025 12:58:36 +0300 Subject: [PATCH 0981/1324] CI: run modified scripts in MacOS 15, too It turns out, macos-14 has XCode 15 rather than 16 as advertised in Github docs --- .github/workflows/modified_scripts_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index b9e24c714b..e20d5f1935 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -36,7 +36,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["macos-13", "macos-14"] + os: ["macos-13", "macos-14", "macos-15"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 @@ -96,7 +96,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["macos-13", "macos-14"] + os: ["macos-13", "macos-14", "macos-15"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 From 71a8d47b81bb6e8dd18b285c3116ab3a56fdda07 Mon Sep 17 00:00:00 2001 From: Jared Stever Date: Sat, 16 Aug 2025 10:17:53 -0700 Subject: [PATCH 0982/1324] Use Zlib from XCode SDK in a way compatible with XCode 16 and CLT (#3301) * use `xcrun` instead of `xcodebuild` which is absent in CLT * use an alternative way that's compatible with CPython's setup.py since 3.5.2 --------- Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 294b167822..f716237615 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1826,24 +1826,24 @@ use_homebrew_zlib() { } use_xcode_sdk_zlib() { - local xcode_major; # If a custom compiler is used, including XCode SDK will likely break it [[ "${CC:-clang}" != "clang" || "$(command -v clang 2>/dev/null || true)" != "/usr/bin/clang" ]] && return 1 - # The flags set by this function break the build in XCode 16 due to unknown changes from XCode 15 - # For future-proofing, also disable it if we cannot determine the version - [[ $(xcodebuild -version 2>/dev/null || true) =~ ^Xcode\ ([[:digit:]]+) ]] && xcode_major="${BASH_REMATCH[1]}" - [[ -z $xcode_major || $xcode_major -ge 16 ]] && return 1 - 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" - fi - fi + + local sdkroot="$(xcrun --sdk macosx --show-sdk-path 2>/dev/null || true)" + [[ -z ${sdkroot} || ! -d ${sdkroot} ]] && return 1 + + # Since Xcode 16 / macOS SDK 15, Apple tightened how the linker uses SDK content: + # forcing -L "$SDK/usr/lib" now leads to odd link failures. + echo "python-build: use zlib from xcode sdk" + # Since 3.9.1 (bpo-41116), CPython's setup.py logic can search default SDK's sysroot itself + # so we don't need to do anything + # Since 3.5.2 (Issue #25136), distutils knows to look for Apple XCode 7+ stub libraries (.tbd) + # when searching in the SDK + # Since 2.7.4 and 3.2.1 (issue #7724), setup.py and distutils can search in the MacOS SDK when + # it's explicitly specified with -isysroot + + export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-isysroot ${sdkroot}" + return 0 } use_macports_zlib() { From 89b8e5f8dabf337b84ff338eff98ffe2380fd886 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 23 Aug 2025 19:40:17 +0300 Subject: [PATCH 0983/1324] Add miniforge 25.3.0-1, 25.3.0-2, 25.3.0-3, 25.3.1-0, skip miniforge 25.3.0-0 (#3306) miniforge-25.3.0-0 is marked as prerelease, there's no Linux version. Probably recalled. --- plugins/python-build/scripts/add_miniforge.py | 1 + .../share/python-build/miniforge3-25.3.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.3.0-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.3.0-3 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.3.1-0 | 25 +++++++++++++++++++ 5 files changed, 101 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-25.3.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.3.0-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.3.0-3 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.3.1-0 diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 5612584a11..9c26e0c6d1 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -18,6 +18,7 @@ '22.11.1-0', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) '22.11.1-1', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) '22.11.1-2', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) + '25.3.0-0', #marked as prerelease, no Linux version ] install_script_fmt = """ diff --git a/plugins/python-build/share/python-build/miniforge3-25.3.0-1 b/plugins/python-build/share/python-build/miniforge3-25.3.0-1 new file mode 100644 index 0000000000..8ad63ecab4 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.3.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.3.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-aarch64.sh#e4459077f78a9a1fbaa0cd6812897623360ea8ba2e73094ed5df5b662cbb2491" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.3.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-ppc64le.sh#a5f77d8d45b530b6e583b6a9bd5aa33ea70b5b77bd7c61728e12bf11a8137a5c" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.3.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-Linux-x86_64.sh#defd7ea7e823257900d404dcf734762359e13bfff451f1bfc7cafa0f7c110247" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.3.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-MacOSX-arm64.sh#141da48a332295b34cd9207efeb7a0dbc7711c2de26bfaf2b9c3b7ac3ce36e73" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.3.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-1/Miniforge3-25.3.0-1-MacOSX-x86_64.sh#18eac9db50d23d6e84767bd170092759430c03ae66a928b3adf48d5c60e1614c" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.3.0-2 b/plugins/python-build/share/python-build/miniforge3-25.3.0-2 new file mode 100644 index 0000000000..44afc3f7ca --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.3.0-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.3.0-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-2/Miniforge3-25.3.0-2-Linux-aarch64.sh#79a8d3a5f8d3681855545d7f623443e30079e4d26732956ff2f07632e8d2a9ef" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.3.0-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-2/Miniforge3-25.3.0-2-Linux-ppc64le.sh#1ebc02ff29e346c4dc987cf2df52af6e9e57958c82df62c8839dfbdbf2366222" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.3.0-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-2/Miniforge3-25.3.0-2-Linux-x86_64.sh#40cbe16854f3a346cdc5ce6a4bcbbe25973172fa8117a5e6168038173890054b" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.3.0-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-2/Miniforge3-25.3.0-2-MacOSX-arm64.sh#e658f618ef81473ae71f056b19a83224d147e6b54cd2c6477bc130345d9385b3" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.3.0-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-2/Miniforge3-25.3.0-2-MacOSX-x86_64.sh#86c557f5c2517c9ade892c671e41df5cf3f3b8bb13bc4738dc6bee928d08597d" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.3.0-3 b/plugins/python-build/share/python-build/miniforge3-25.3.0-3 new file mode 100644 index 0000000000..f6035f90ab --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.3.0-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.3.0-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-Linux-aarch64.sh#ac89f17b0eec4e98d38a53d1ae688e0f22c77d8ea5b5f008c2455e90ef095339" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.3.0-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-Linux-ppc64le.sh#1ce4084983b899d2f895bd13085ba20ff787fbcc2f2c865c618bffc97dd877b8" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.3.0-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-Linux-x86_64.sh#1b57f8cb991982063f79b56176881093abb1dc76d73fda32102afde60585b5a1" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.3.0-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-MacOSX-arm64.sh#16205127ac2b5701881636229b7fe42e1f961007513b8673f8064da331e496a0" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.3.0-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.0-3/Miniforge3-25.3.0-3-MacOSX-x86_64.sh#c562e11d8f9caca3dcfb9ba6d5043b9238975d271751e12c3fbfc2a472b4b8fb" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.3.1-0 b/plugins/python-build/share/python-build/miniforge3-25.3.1-0 new file mode 100644 index 0000000000..843a9cbf81 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.3.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.3.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-Linux-aarch64.sh#a57c9e3d6c0c449c0283fd07e0bfa30d95eb8d547a14e8dc06c606405d01a7f0" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.3.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-Linux-ppc64le.sh#87eb7d349a0ed3ba964c5263d90663e3dff93f252305b7bf24c12e714117bdfe" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.3.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-Linux-x86_64.sh#376b160ed8130820db0ab0f3826ac1fc85923647f75c1b8231166e3d559ab768" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.3.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-MacOSX-arm64.sh#d9eabd1868030589a1d74017b8723b01cf81b5fec1b9da8021b6fa44be7bbeae" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.3.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.3.1-0/Miniforge3-25.3.1-0-MacOSX-x86_64.sh#6c09a3550bb65bdb6d3db6f6c2b890b987b57189f3b71c67a5af49943d2522e8" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From cd2f410f75eebfe41333739419134b27911d3579 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 23 Aug 2025 21:53:51 +0300 Subject: [PATCH 0984/1324] Clean up, skip looking for mambaforge after it's retired --- plugins/python-build/scripts/add_miniforge.py | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 9c26e0c6d1..d60c50368f 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -11,7 +11,8 @@ logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO')) MINIFORGE_REPO = 'conda-forge/miniforge' -DISTRIBUTIONS = ['miniforge', 'mambaforge'] +DISTRIBUTIONS = ['miniforge'] +DISTRIBUTIONS_PRE25 = ['miniforge', 'mambaforge'] SKIPPED_RELEASES = [ '4.13.0-0', #has no Mambaforge. We already generated scripts for Miniforge @@ -74,32 +75,36 @@ def create_spec(filename, sha, url): return spec -def py_version(release): +def version_tuple(version): + return tuple(int(part) for part in version.split('-')[0].split(".")) + +def py_version(version): """Suffix for `verify_pyXXX` to call in the generated build script""" - release_line = tuple(int(part) for part in release.split(".")[:2]) - # current version: mentioned under https://github.com/conda-forge/miniforge?tab=readme-ov-file#miniforge3 + version_tuple_ = version_tuple(version) + # current version: mentioned under https://github.com/conda-forge/miniforge?tab=readme-ov-file#requirements-and-installers # transition points: # https://github.com/conda-forge/miniforge/blame/main/Miniforge3/construct.yaml # look for "- python " in non-pypy branch and which tag the commit is first in - if release_line >= (24,5): + if version_tuple_ >= (24,5): # yes, they jumped from 3.10 directly to 3.12 # https://github.com/conda-forge/miniforge/commit/bddad0baf22b37cfe079e47fd1680fdfb2183590 return "312" - if release_line >= (4,14): + if version_tuple_ >= (4,14): return "310" - raise ValueError("Bundled Python version unknown for release `%s'"%release) + raise ValueError("Bundled Python version unknown for release `%s'"%version) def supported(filename): return ('pypy' not in filename) and ('Windows' not in filename) -def add_version(release): +def add_version(release, distributions): tag_name = release['tag_name'] download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] } # can assume that sha files are named similar to release files so can also check supported(on their names) shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and supported(os.path.basename(name)) and tag_name in name]) specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)] + - for distribution in DISTRIBUTIONS: + for distribution in distributions: distribution_specs = [spec for spec in specs if distribution in spec['flavor'].lower()] count = len(distribution_specs) @@ -121,15 +126,17 @@ def add_version(release): for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/releases').json(): version = release['tag_name'] - logger.info('Looking for %(version)s in %(out_dir)s', locals()) - - # This release has no mambaforge artifacts which causes the next check to always trigger. - # Build scripts for miniforge3-4.13.0-0 have already been generated. - # Assuming this was a fluke, we don't yet need to implement proactively checking all releases for contents - # or ignoring a release if _any_ of the flavors is already present in Pyenv. if version in SKIPPED_RELEASES: continue - if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in DISTRIBUTIONS): + logger.info('Looking for %(version)s in %(out_dir)s', locals()) + + # mambaforge is retired https://github.com/conda-forge/miniforge/releases/tag/24.11.2-0 + if version_tuple(version) >= (24,11,2): + distributions = DISTRIBUTIONS + else: + distributions = DISTRIBUTIONS_PRE25 + + if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in distributions): logger.info('Downloading %(version)s', locals()) - add_version(release) + add_version(release, distributions) From 25e5989261d5e44e7690b3f6f1b198b7d400b2fa Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 28 Aug 2025 09:36:13 +0300 Subject: [PATCH 0985/1324] Prefer ZLib from Homebrew/MacPorts if present Zlib from XCode is virtually always present now so it only makes sense to use it from elsewhere if it's preferred. Works around build failure for 2.7 that's incapable of using Zlib from XCode 7+ (see #3301) --- plugins/python-build/bin/python-build | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f716237615..4a6c6b9448 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -863,7 +863,7 @@ build_package_standard_build() { use_homebrew_readline || true use_homebrew_ncurses || true if is_mac -ge 1014; then - use_xcode_sdk_zlib || use_homebrew_zlib || true + use_homebrew_zlib || use_xcode_sdk_zlib || true else use_homebrew_zlib || true fi @@ -873,7 +873,7 @@ build_package_standard_build() { use_macports_readline || true use_macports_ncurses || true if is_mac -ge 1014; then - use_xcode_sdk_zlib || use_macports_zlib || true + use_macports_zlib || use_xcode_sdk_zlib || true else use_macports_zlib || true fi From 11c1898abbc18a9636fbb96fe2d8ec0f54fa530b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 28 Aug 2025 09:52:24 +0300 Subject: [PATCH 0986/1324] Fix using Zlib from Homebrew --- plugins/python-build/bin/python-build | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4a6c6b9448..27e793eb01 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1820,7 +1820,8 @@ use_homebrew_zlib() { local brew_zlib="$(brew --prefix zlib 2>/dev/null || true)" if [ -d "$brew_zlib" ]; then echo "python-build: use zlib from homebrew" - export CFLAGS="-I${brew_zlib} ${CFLAGS}" + export CPPFLAGS="-I${brew_zlib}/include${CPPFLAGS:+ ${CPPFLAGS}}" + export LDFLAGS="-L${brew_zlib}/lib${LDFLAGS:+ ${LDFLAGS}}" lock_in homebrew fi } From 7d3854b64d88dccf87106a3a8c51e1dfe8c27789 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 28 Aug 2025 10:49:32 +0300 Subject: [PATCH 0987/1324] CI: use ZLib from XCode SDK Everything since 3.5.2 (see #3301) can use it; it's now present in all non-EOL MacOS XCode versions --- .github/workflows/macos_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 143c8c4127..7450c679f2 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -24,7 +24,7 @@ jobs: # python-version: ${{ matrix.python-version }} # ... but in the repo, we want to test pyenv builds on macOS - run: | - brew install openssl readline sqlite3 xz zlib + brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd # https://github.com/pyenv/pyenv#installation - run: pwd - env: From 97eda4403f385f83f7688755c79c71e3fe647f0c Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 31 Aug 2025 21:48:24 +0300 Subject: [PATCH 0988/1324] Fix Readline and OpenSSL detection for MacPorts without the corresponding package (#3317) --- plugins/python-build/bin/python-build | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 27e793eb01..b932206373 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1593,6 +1593,7 @@ has_broken_mac_readline() { if can_use_macports; then use_macports_readline && return 1 fi + return 0 } use_homebrew_readline() { @@ -1682,6 +1683,7 @@ has_broken_mac_openssl() { use_macports_openssl && return 1 fi fi + return 0 } use_homebrew_openssl() { From 692ac775590fdae6308f28d00c8b75741534d346 Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 1 Sep 2025 01:09:57 +0300 Subject: [PATCH 0989/1324] Fix specifying XCode SDK for distutils; Revert to preferring XCode Zlib (#3316) * Fix specifying XCode SDK for distutils * Revert to preferring XCode Zlib It turns out, everything since 2.7.12 and 3.5.2 can use libs from modern XCode SDK which is always available unless we're using an alternate compiler --- plugins/python-build/bin/python-build | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b932206373..494fe5b8f1 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -863,7 +863,9 @@ build_package_standard_build() { use_homebrew_readline || true use_homebrew_ncurses || true if is_mac -ge 1014; then - use_homebrew_zlib || use_xcode_sdk_zlib || true + # While XCode SDK is "always available", + # still need a fallback in case we are using an alternate compiler + use_xcode_sdk_zlib || use_homebrew_zlib || true else use_homebrew_zlib || true fi @@ -873,7 +875,9 @@ build_package_standard_build() { use_macports_readline || true use_macports_ncurses || true if is_mac -ge 1014; then - use_macports_zlib || use_xcode_sdk_zlib || true + # While XCode SDK is "always available", + # still need a fallback in case we are using an alternate compiler + use_xcode_sdk_zlib || use_homebrew_zlib || true else use_macports_zlib || true fi @@ -1825,6 +1829,7 @@ use_homebrew_zlib() { export CPPFLAGS="-I${brew_zlib}/include${CPPFLAGS:+ ${CPPFLAGS}}" export LDFLAGS="-L${brew_zlib}/lib${LDFLAGS:+ ${LDFLAGS}}" lock_in homebrew + rc=0 fi } @@ -1840,12 +1845,13 @@ use_xcode_sdk_zlib() { echo "python-build: use zlib from xcode sdk" # Since 3.9.1 (bpo-41116), CPython's setup.py logic can search default SDK's sysroot itself # so we don't need to do anything - # Since 3.5.2 (Issue #25136), distutils knows to look for Apple XCode 7+ stub libraries (.tbd) + # Since 2.7.12 and 3.5.2 (Issue #25136), distutils knows to look for Apple XCode 7+ stub libraries (.tbd) # when searching in the SDK # Since 2.7.4 and 3.2.1 (issue #7724), setup.py and distutils can search in the MacOS SDK when # it's explicitly specified with -isysroot - export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-isysroot ${sdkroot}" + #distutils.unixcompiler and setup.py specifically search CFLAGS for "-isysroot" + export CFLAGS="${CFLAGS:+$CFLAGS }-isysroot ${sdkroot}" return 0 } From cd78412b80c1f26701d7d28363f7aef14f1f36d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Sep 2025 13:33:28 +0300 Subject: [PATCH 0990/1324] Bump actions/checkout from 4 to 5 in the github-actions group (#3318) Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 4 to 5 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '5' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 10 +++++----- .github/workflows/pyenv_tests.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 7450c679f2..39f879f6a5 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -17,7 +17,7 @@ jobs: - "3.13" runs-on: macos-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index e20d5f1935..88f28878c7 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -6,7 +6,7 @@ jobs: outputs: versions: ${{steps.modified-versions.outputs.versions}} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: git fetch origin "$GITHUB_BASE_REF" - shell: bash run: > @@ -39,7 +39,7 @@ jobs: os: ["macos-13", "macos-14", "macos-15"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -99,7 +99,7 @@ jobs: os: ["macos-13", "macos-14", "macos-15"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -160,7 +160,7 @@ jobs: os: ["ubuntu-22.04", "ubuntu-24.04"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -218,7 +218,7 @@ jobs: os: ["ubuntu-latest"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index dab756089e..1597ea8881 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -16,7 +16,7 @@ jobs: - macos-13 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index b8b08e2bf7..ad3542ebfc 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -17,7 +17,7 @@ jobs: - "3.13" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v5 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: From b57bdef58482c97bf10ce588546899085ecae67d Mon Sep 17 00:00:00 2001 From: rockandska Date: Thu, 4 Sep 2025 17:56:53 +0200 Subject: [PATCH 0991/1324] Fix rehash hook for pipx/pipx.x/pipx.xx (#3320) --- pyenv.d/exec/pip-rehash.bash | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyenv.d/exec/pip-rehash.bash b/pyenv.d/exec/pip-rehash.bash index 7080f45dcd..f608f4ac20 100644 --- a/pyenv.d/exec/pip-rehash.bash +++ b/pyenv.d/exec/pip-rehash.bash @@ -1,8 +1,8 @@ PYENV_PIP_REHASH_ROOT="${BASH_SOURCE[0]%/*}/pip-rehash" PYENV_REHASH_COMMAND="${PYENV_COMMAND##*/}" -# Remove any version information, from e.g. "pip2" or "pip3.4". -if [[ $PYENV_REHASH_COMMAND =~ ^(pip|easy_install)[23](\.\d)?$ ]]; then +# Remove any version information, from e.g. "pip2" or "pip3.10". +if [[ $PYENV_REHASH_COMMAND =~ ^(pip|easy_install)[23](\.[0-9]+)?$ ]]; then PYENV_REHASH_COMMAND="${BASH_REMATCH[1]}" fi From 2ecd676a2a6b8d1f14e1584d6571d47619e94248 Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 8 Sep 2025 21:47:20 +0300 Subject: [PATCH 0992/1324] Add miniconda 25.7.0-2 (#3323) --- .../python-build/miniconda3-3.10-25.7.0-2 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.7.0-2 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.7.0-2 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.7.0-2 | 22 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.7.0-2 | 22 +++++++++++++++++++ 5 files changed, 110 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 new file mode 100644 index 0000000000..22159b874b --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.7.0-2-Linux-aarch64.sh#e13bd0e0b4f70841f78aea8a978eb35cd6afb0af3e2d2b8f85d24636bb56bc21" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.7.0-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.7.0-2-Linux-x86_64.sh#647b55a8da07136fa2543fbf6b9719d3a4c2369dec5dd31d2c4bda2b51107717" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.7.0-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.7.0-2-MacOSX-arm64.sh#623c2e81b87516753d902aee0003e7126ab34817f27d46c6fd2c097435cab470" "miniconda" verify_py310 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py310_25.7.0-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.7.0-2-MacOSX-x86_64.sh#cd6f9cd295cecab025884175c59a0d0bd2ff919ebf60abfa1bd5e5b36772876e" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 new file mode 100644 index 0000000000..e642858d7d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.7.0-2-Linux-aarch64.sh#28ca561ec2d9a1ae72fbf3f833b8918c747ce21f57d79e218e47bf7d4d2ce792" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.7.0-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.7.0-2-Linux-x86_64.sh#e072c062a7e017732c97963ef0d9a1cb474b92b7f25c8a032f9632cfe75add4f" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.7.0-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.7.0-2-MacOSX-arm64.sh#c5edc119ec1bf31d3be6e088ea7c66314561ed21ccffd72e3484586e27aa7719" "miniconda" verify_py311 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py311_25.7.0-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.7.0-2-MacOSX-x86_64.sh#c05bab0c09ed67ed536c827ae39600d16217d559dcdad8820a04f32473276963" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 new file mode 100644 index 0000000000..6173575b39 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.7.0-2-Linux-aarch64.sh#edc03373d75b3a06de594a7f819ad351bd2fa7602854f392107998e62468c783" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.7.0-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.7.0-2-Linux-x86_64.sh#188b5d94ab3acefdeaebd7cb470d2fb74a3280563c77075de6e3e1d58d84ab0a" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.7.0-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.7.0-2-MacOSX-arm64.sh#8d67e7824088d7aa3bde938a4fc4365bb39ba1f710104cfe7bd9cfb9a99bd8d2" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py312_25.7.0-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.7.0-2-MacOSX-x86_64.sh#e8f6aed58d708cc544ba6bacbebad86787cb8df56667ff4729ad2fe36af32846" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 new file mode 100644 index 0000000000..3e68cf75fd --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.7.0-2-Linux-aarch64.sh#350dc95067e0c87bcaa67367e60ea1caae01872adeb945c760bb4a67518d9673" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.7.0-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.7.0-2-Linux-x86_64.sh#dda3629462ba1cfa72eb74535214c2e315c77f1cfb0f02046537e99f1bf64abc" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.7.0-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.7.0-2-MacOSX-arm64.sh#5c0137ef38c153649da28ca31a420b9c12c94cf636319beb8c925396d797fe62" "miniconda" verify_py313 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py313_25.7.0-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.7.0-2-MacOSX-x86_64.sh#9c88674b1a839eeb4cff006df397a05ea7d896472318fd84b7070278f9653dc6" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 new file mode 100644 index 0000000000..b04c87b5a9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 @@ -0,0 +1,22 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.7.0-2-Linux-aarch64.sh#18befc78dbfca5bbdc2c8085f2bedd0345a5fbf7d0f1e189fddaf2d17f31d3af" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.7.0-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.7.0-2-Linux-x86_64.sh#790e8ea347cf49ba250fceacdc0b022237a9150717b9e4c17f2e70abc075c05d" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.7.0-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.7.0-2-MacOSX-arm64.sh#914254c199cf3584ac918259dda70410d6deba2a6f73b0ec8728010e6afb75b0" "miniconda" verify_py39 + ;; +"MacOSX-x86_64" ) + install_script "Miniconda3-py39_25.7.0-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.7.0-2-MacOSX-x86_64.sh#dab8685fca4398bc7471cc4fd3fb1afe7ee3b43767bba28d788f9aa9961a702d" "miniconda" verify_py39 + ;; +* ) + { 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 From 17fb66cd8bc168cabb0a87a6b5ebebf3df4508ee Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 14 Sep 2025 07:23:41 +0300 Subject: [PATCH 0993/1324] Support curl from a snap (#3329) --- plugins/python-build/bin/python-build | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 494fe5b8f1..67191cd2c7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -458,7 +458,14 @@ http_head_curl() { } http_get_curl() { - curl -q -o "${2:--}" -sSLf ${CURL_OPTS} "$1" + local out; + # Curl is also available as a snap. Snaps cannot read or write /tmp + # (files cannot be found, any write result is silently discarded). + local curl_is_snap; + if [[ $(command -v curl) == "/snap/"* ]]; then curl_is_snap=1; fi + if [[ -n $2 && -n $curl_is_snap ]]; then out="$HOME/$(basename "$2")"; else out="$2"; fi + curl -q -o "${out:--}" -sSLf ${CURL_OPTS} "$1" || return $? + if [[ -n $out && -n $curl_is_snap ]]; then mv "$out" "$2"; fi } http_head_wget() { From 85561398ea36495e474d3149828715e0eabbfe0d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 14 Sep 2025 22:21:31 +0300 Subject: [PATCH 0994/1324] -unused Dockerfile --- Dockerfile | 35 ----------------------------------- 1 file changed, 35 deletions(-) delete mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index a11ff01eb4..0000000000 --- a/Dockerfile +++ /dev/null @@ -1,35 +0,0 @@ -FROM ubuntu:18.04 - -LABEL maintainer="Chris L. Barnes " - -ENV DEBIAN_FRONTEND=noninteractive - -RUN apt-get update -y \ - && apt-get install -y \ - make \ - build-essential \ - libssl-dev \ - zlib1g-dev \ - libbz2-dev \ - libreadline-dev \ - libsqlite3-dev \ - wget \ - curl \ - llvm \ - libncurses5-dev \ - libncursesw5-dev \ - xz-utils \ - tk-dev \ - libffi-dev \ - liblzma-dev \ - python-openssl \ - git \ - && rm -rf /var/lib/apt/lists/* - -ENV PYENV_ROOT "/pyenv" -ENV PATH "$PYENV_ROOT/bin:$PATH" - -COPY . /pyenv - -RUN eval "$(pyenv init -)" - From 857806e6cabf8ba257c95bc51a356fa24e8251f3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 14 Sep 2025 23:25:49 +0300 Subject: [PATCH 0995/1324] Apple Silicon is now supported by Github --- CONTRIBUTING.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 42b0c689ea..43561e3677 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,12 +13,6 @@ General guidance You can still add performance optimizations etc that take advantage of newer Bash features as long as there is a fallback execution route for Bash 3. -* Be extra careful when submitting logic specific for the Apple Silicon platform - - As of this writing, Github Actions do not support it and only one team member has the necessary hardware. - So we may be unable to test your changes and may have to take your word for it. - - Formatting PRs ============== From 0d987b0e4bc61eaf536c7bc2a8f2f839804ce442 Mon Sep 17 00:00:00 2001 From: rockandska Date: Mon, 8 Sep 2025 15:36:12 +0200 Subject: [PATCH 0996/1324] fix test isolation Make sur that PYENV_TEST_DIR is created if mktemp failed mock python3 usage by updating create_executable function fix test by adding the right PATH update path in plugin test replace for loop with while read don't use symlink for stub --- plugins/python-build/test/build.bats | 13 +++++++++ plugins/python-build/test/definitions.bats | 4 +-- plugins/python-build/test/test_helper.bash | 6 ++--- test/exec.bats | 31 +++++++++++++++------- test/prefix.bats | 4 +-- test/test_helper.bash | 1 + test/versions.bats | 1 + 7 files changed, 43 insertions(+), 17 deletions(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 01e48630df..b0c02aa903 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -378,6 +378,9 @@ OUT stub port "-q installed libyaml : echo ' libyaml @0.2.5_0 (active)'" for i in {1..3}; do stub port false; done stub_make_install + export PYTHON_BUILD_SKIP_HOMEBREW=1 + PORT_PREFIX="$(which port)" + PORT_PREFIX="${PORT_PREFIX%/bin/port}" install_fixture definitions/needs-yaml assert_success @@ -403,6 +406,9 @@ OUT stub port "-q installed readline : echo ' readline @8.2.013_0 (active)'" for i in {1..2}; do stub port false; done stub_make_install + export PYTHON_BUILD_SKIP_HOMEBREW=1 + PORT_PREFIX="$(which port)" + PORT_PREFIX="${PORT_PREFIX%/bin/port}" run_inline_definition <> "${TMP}/${program}-stub-plan"; done diff --git a/test/exec.bats b/test/exec.bats index b643d31e58..9721831023 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -8,7 +8,7 @@ create_executable() { bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin" mkdir -p "$bin" { if [ $# -eq 0 ]; then cat - - else echo "$@" + else printf '%s\n' "$@" fi } | sed -Ee '1s/^ +//' > "${bin}/$name" chmod +x "${bin}/$name" @@ -85,18 +85,25 @@ OUT } @test "sys.executable with system version (#98)" { - system_python="$(python3 -c 'import sys; print(sys.executable)')" + export PATH="${PYENV_ROOT}/versions/bin:${PATH}" + create_executable "python3" < "${PYENV_TEST_DIR}/python3" </dev/null || echo "$PYENV_TEST_DIR")" + mkdir -p "${PYENV_TEST_DIR}" if enable -f "${BATS_TEST_DIRNAME}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then export PYENV_TEST_DIR="$(realpath "$PYENV_TEST_DIR")" diff --git a/test/versions.bats b/test/versions.bats index ad2cf07ab3..ef03dfad70 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -238,6 +238,7 @@ OUT } @test "non-bare output shows symlink contents" { + stub_system_python create_version "1.9.0" create_alias "link" "1.9.0" From 68edd564cf1566afea19dc5eb4e6af353f8bef8e Mon Sep 17 00:00:00 2001 From: rockandska Date: Tue, 9 Sep 2025 10:38:11 +0200 Subject: [PATCH 0997/1324] update parent shell detection in pyenv-init to be more portable --- libexec/pyenv-init | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 3892ec65d4..6341b655c7 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -47,7 +47,11 @@ done # If shell is not provided, detect it. if [ -z "$shell" ]; then - shell="$(ps -p "$PPID" -o 'args=' 2>/dev/null || true)" + if shell=$(tr '\0' ' ' 2>/dev/null .python-version - run pyenv-exec nonexistent + run -127 pyenv-exec nonexistent assert_failure < Date: Mon, 8 Sep 2025 16:47:50 +0200 Subject: [PATCH 0999/1324] use BATS_FILE_TMPDIR in test/plugin test use global setup with bats with possibility to add specific test file _setup use readlink in helper if realpath is not working as expected --- plugins/python-build/test/arguments.bats | 6 +- plugins/python-build/test/build.bats | 150 ++++++++++----------- plugins/python-build/test/cache.bats | 9 +- plugins/python-build/test/checksum.bats | 4 +- plugins/python-build/test/compiler.bats | 22 +-- plugins/python-build/test/definitions.bats | 34 ++--- plugins/python-build/test/fetch.bats | 15 +-- plugins/python-build/test/hooks.bats | 8 +- plugins/python-build/test/installer.bats | 8 +- plugins/python-build/test/mirror.bats | 8 +- plugins/python-build/test/pyenv.bats | 10 +- plugins/python-build/test/pyenv_ext.bats | 61 +++++---- plugins/python-build/test/stubs/stub | 5 +- plugins/python-build/test/test_helper.bash | 49 ++++--- plugins/python-build/test/version.bats | 4 +- test/--version.bats | 5 +- test/init.bats | 2 +- test/latest.bats | 2 +- test/local.bats | 2 +- test/prefix.bats | 8 +- test/pyenv.bats | 4 +- test/test_helper.bash | 27 ++-- test/version-file-read.bats | 2 +- test/version-file-write.bats | 4 +- test/version-file.bats | 4 +- test/version-name.bats | 4 +- test/version-origin.bats | 4 +- test/version.bats | 6 +- test/versions.bats | 2 +- 29 files changed, 235 insertions(+), 234 deletions(-) diff --git a/plugins/python-build/test/arguments.bats b/plugins/python-build/test/arguments.bats index 965e5e4351..55dfeff73d 100644 --- a/plugins/python-build/test/arguments.bats +++ b/plugins/python-build/test/arguments.bats @@ -4,7 +4,7 @@ load test_helper @test "not enough arguments for python-build" { # use empty inline definition so nothing gets built anyway - local definition="${TMP}/build-definition" + local definition="${BATS_TEST_TMPDIR}/build-definition" echo '' > "$definition" run python-build "$definition" @@ -14,10 +14,10 @@ load test_helper @test "extra arguments for python-build" { # use empty inline definition so nothing gets built anyway - local definition="${TMP}/build-definition" + local definition="${BATS_TEST_TMPDIR}/build-definition" echo '' > "$definition" - run python-build "$definition" "${TMP}/install" "" + run python-build "$definition" "${BATS_TEST_TMPDIR}/install" "" assert_failure assert_output_contains 'Usage: python-build' } diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index b0c02aa903..300dbd7d60 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -1,13 +1,13 @@ #!/usr/bin/env bats load test_helper -export PYTHON_BUILD_CACHE_PATH="$TMP/cache" -export MAKE=make -export MAKE_OPTS="-j 2" -export CC=cc -export -n PYTHON_CONFIGURE_OPTS +_setup() { + export PYTHON_BUILD_CACHE_PATH="$BATS_TEST_TMPDIR/cache" + export MAKE=make + export MAKE_OPTS="-j 2" + export CC=cc + export -n PYTHON_CONFIGURE_OPTS -setup() { mkdir -p "$INSTALL_ROOT" stub md5 false stub curl false @@ -74,11 +74,11 @@ assert_build_log() { unstub make assert_build_log <> build.log' - TMPDIR="$TMP" install_fixture --patch definitions/needs-yaml <<<"" + TMPDIR="$BATS_TEST_TMPDIR" install_fixture --patch definitions/needs-yaml <<<"" assert_success unstub uname @@ -146,12 +146,12 @@ OUT unstub patch assert_build_log <> build.log' - TMPDIR="$TMP" install_fixture --patch definitions/needs-yaml <<<"diff --git a/script.py" + TMPDIR="$BATS_TEST_TMPDIR" install_fixture --patch definitions/needs-yaml <<<"diff --git a/script.py" assert_success unstub uname @@ -176,12 +176,12 @@ OUT unstub patch assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" @@ -777,8 +777,8 @@ DEF unstub make assert_build_log <> build.log' stub_make_install - export PYTHON_CONFIGURE="${TMP}/custom-configure" + export PYTHON_CONFIGURE="${BATS_TEST_TMPDIR}/custom-configure" run_inline_definition < "${TMP}/definitions/2.7.8-test" - mkdir -p "${TMP}/other" - echo false > "${TMP}/other/2.7.8-test" - run python-build "2.7.8-test" "${TMP}/install" + export PYTHON_BUILD_DEFINITIONS="${BATS_TEST_TMPDIR}/definitions:${BATS_TEST_TMPDIR}/other" + mkdir -p "${BATS_TEST_TMPDIR}/definitions" + echo true > "${BATS_TEST_TMPDIR}/definitions/2.7.8-test" + mkdir -p "${BATS_TEST_TMPDIR}/other" + echo false > "${BATS_TEST_TMPDIR}/other/2.7.8-test" + run python-build "2.7.8-test" "${BATS_TEST_TMPDIR}/install" assert_success "" } @test "installing nonexistent definition" { - run python-build "nonexistent" "${TMP}/install" + run python-build "nonexistent" "${BATS_TEST_TMPDIR}/install" assert [ "$status" -eq 2 ] assert_output "python-build: definition not found: nonexistent" } @test "sorting Python versions" { - export PYTHON_BUILD_ROOT="$TMP" + export PYTHON_BUILD_ROOT="$BATS_TEST_TMPDIR" mkdir -p "${PYTHON_BUILD_ROOT}/share/python-build" expected="2.7-dev 2.7 @@ -95,7 +95,7 @@ jython-2.7-beta3" } @test "removing duplicate Python versions" { - export PYTHON_BUILD_ROOT="$TMP" + export PYTHON_BUILD_ROOT="$BATS_TEST_TMPDIR" export PYTHON_BUILD_DEFINITIONS="${PYTHON_BUILD_ROOT}/share/python-build" mkdir -p "$PYTHON_BUILD_DEFINITIONS" touch "${PYTHON_BUILD_DEFINITIONS}/2.7.8" diff --git a/plugins/python-build/test/fetch.bats b/plugins/python-build/test/fetch.bats index 0edd38aada..f36df53afa 100644 --- a/plugins/python-build/test/fetch.bats +++ b/plugins/python-build/test/fetch.bats @@ -1,11 +1,10 @@ #!/usr/bin/env bats load test_helper -export PYTHON_BUILD_SKIP_MIRROR=1 -export PYTHON_BUILD_CACHE_PATH= - -setup() { - export PYTHON_BUILD_BUILD_PATH="${TMP}/source" +_setup() { + export PYTHON_BUILD_SKIP_MIRROR=1 + export PYTHON_BUILD_CACHE_PATH= + export PYTHON_BUILD_BUILD_PATH="${BATS_TEST_TMPDIR}/source" mkdir -p "${PYTHON_BUILD_BUILD_PATH}" } @@ -29,7 +28,7 @@ setup() { Downloading package-1.0.0.tar.gz... -> http://example.com/packages/package-1.0.0.tar.gz Installing package-1.0.0... -Installed package-1.0.0 to ${TMP}/install +Installed package-1.0.0 to ${BATS_TEST_TMPDIR}/install OUT unstub aria2c } @@ -44,7 +43,7 @@ DEF assert_output < "$definition" <<<"echo python-build" diff --git a/plugins/python-build/test/installer.bats b/plugins/python-build/test/installer.bats index dc04819ad7..6ce7c7883d 100644 --- a/plugins/python-build/test/installer.bats +++ b/plugins/python-build/test/installer.bats @@ -3,7 +3,7 @@ load test_helper @test "installs python-build into PREFIX" { - cd "$TMP" + cd "$BATS_TEST_TMPDIR" PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh" assert_success "" @@ -18,7 +18,7 @@ load test_helper } @test "build definitions don't have the executable bit" { - cd "$TMP" + cd "$BATS_TEST_TMPDIR" PREFIX="${PWD}/usr" run "${BATS_TEST_DIRNAME}/../install.sh" assert_success "" @@ -30,7 +30,7 @@ OUT } @test "overwrites old installation" { - cd "$TMP" + cd "$BATS_TEST_TMPDIR" mkdir -p bin share/python-build touch bin/python-build touch share/python-build/2.7.2 @@ -44,7 +44,7 @@ OUT } @test "unrelated files are untouched" { - cd "$TMP" + cd "$BATS_TEST_TMPDIR" mkdir -p bin share/bananas chmod g-w bin touch bin/bananas diff --git a/plugins/python-build/test/mirror.bats b/plugins/python-build/test/mirror.bats index c53b00964c..bd7613382c 100644 --- a/plugins/python-build/test/mirror.bats +++ b/plugins/python-build/test/mirror.bats @@ -1,10 +1,12 @@ #!/usr/bin/env bats load test_helper -export PYTHON_BUILD_SKIP_MIRROR= -export PYTHON_BUILD_CACHE_PATH= -export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com +_setup() { + export PYTHON_BUILD_SKIP_MIRROR= + export PYTHON_BUILD_CACHE_PATH= + export PYTHON_BUILD_MIRROR_URL=http://mirror.example.com +} @test "package URL without checksum bypasses mirror" { stub shasum true diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 0108bfc1eb..f3b3c617fe 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -1,9 +1,9 @@ #!/usr/bin/env bats load test_helper -export PYENV_ROOT="${TMP}/pyenv" -setup() { +_setup() { + export PYENV_ROOT="${BATS_TEST_TMPDIR}/pyenv" stub pyenv-hooks 'install : true' stub pyenv-rehash true } @@ -39,8 +39,8 @@ stub_python_build() { run pyenv-install 3.4.1 3.4.2 assert_success assert_output < "$definition" run python-build "$definition" "${1:-$INSTALL_ROOT}" } @@ -118,12 +117,12 @@ run_inline_definition_with_name() { stub uname '-s : echo Linux' stub uname '-s : echo Linux' - TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null + TMPDIR="$BATS_TEST_TMPDIR" install_tmp_fixture definitions/vanilla-python < /dev/null assert_success assert_build_log <> "${INSTALL_ROOT}/build.log" OUT chmod +x "${INSTALL_ROOT}/bin/python" - PYTHON_MAKE_INSTALL_TARGET="" TMPDIR="$TMP" run_inline_definition <> "${INSTALL_ROOT}/build.log" OUT chmod +x "${INSTALL_ROOT}/bin/python" - PYTHON_MAKE_INSTALL_TARGET="altinstall" TMPDIR="$TMP" run_inline_definition <> build.log" \ " : echo \"$MAKE \$@\" >> build.log && cat build.log >> '$INSTALL_ROOT/build.log'" - PYTHON_CONFIGURE_OPTS="--enable-unicode=ucs2" TMPDIR="$TMP" install_tmp_fixture definitions/vanilla-python < /dev/null + PYTHON_CONFIGURE_OPTS="--enable-unicode=ucs2" TMPDIR="$BATS_TEST_TMPDIR" install_tmp_fixture definitions/vanilla-python < /dev/null assert_success assert_build_log <>"${!_STUB_LOG}"; fi [ -e "${!_STUB_PLAN}" ] || exit 1 -[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${TMPDIR}/${program}-stub-run" +[ -n "${!_STUB_RUN}" ] || eval "${_STUB_RUN}"="${BATS_TEST_TMPDIR}/${program}-stub-run" # Initialize or load the stub run information. diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index a51e7d670c..82321e5818 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -1,19 +1,18 @@ -export TMP="$BATS_TEST_DIRNAME/tmp" -export PYTHON_BUILD_CURL_OPTS= -export PYTHON_BUILD_HTTP_CLIENT="curl" - -if [ "$FIXTURE_ROOT" != "$BATS_TEST_DIRNAME/fixtures" ]; then - export FIXTURE_ROOT="$BATS_TEST_DIRNAME/fixtures" - export INSTALL_ROOT="$TMP/install" - PATH="/usr/bin:/bin:/usr/sbin:/sbin" - PATH="/usr/local/bin:$PATH" - PATH="$BATS_TEST_DIRNAME/../bin:$PATH" - PATH="$TMP/bin:$PATH" +setup() { + export PYTHON_BUILD_CURL_OPTS= + export PYTHON_BUILD_HTTP_CLIENT="curl" + + export FIXTURE_ROOT="${BATS_TEST_DIRNAME}/fixtures" + export INSTALL_ROOT="${BATS_TEST_TMPDIR}/install" + PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" + PATH="${BATS_TEST_DIRNAME}/../bin:$PATH" + PATH="${BATS_TEST_TMPDIR}/bin:$PATH" export PATH -fi -teardown() { - rm -fr "${TMP:?}"/* + # If test specific setup exist, run it + if [[ $(type -t _setup) == function ]];then + _setup + fi } stub() { @@ -21,22 +20,22 @@ stub() { local prefix="$(echo "$program" | tr a-z- A-Z_)" shift - export "${prefix}_STUB_PLAN"="${TMP}/${program}-stub-plan" - export "${prefix}_STUB_RUN"="${TMP}/${program}-stub-run" - export "${prefix}_STUB_LOG"="${TMP}/${program}-stub-log" + export "${prefix}_STUB_PLAN"="${BATS_TEST_TMPDIR}/${program}-stub-plan" + export "${prefix}_STUB_RUN"="${BATS_TEST_TMPDIR}/${program}-stub-run" + export "${prefix}_STUB_LOG"="${BATS_TEST_TMPDIR}/${program}-stub-log" export "${prefix}_STUB_END"= - mkdir -p "${TMP}/bin" - cp "${BATS_TEST_DIRNAME}/stubs/stub" "${TMP}/bin/${program}" + mkdir -p "${BATS_TEST_TMPDIR}/bin" + cp "${BATS_TEST_DIRNAME}/stubs/stub" "${BATS_TEST_TMPDIR}/bin/${program}" - touch "${TMP}/${program}-stub-plan" - for arg in "$@"; do printf "%s\n" "$arg" >> "${TMP}/${program}-stub-plan"; done + touch "${BATS_TEST_TMPDIR}/${program}-stub-plan" + for arg in "$@"; do printf "%s\n" "$arg" >> "${BATS_TEST_TMPDIR}/${program}-stub-plan"; done } unstub() { local program="$1" local prefix="$(echo "$program" | tr a-z- A-Z_)" - local path="${TMP}/bin/${program}" + local path="${BATS_TEST_TMPDIR}/bin/${program}" export "${prefix}_STUB_END"=1 @@ -44,12 +43,12 @@ unstub() { "$path" || STATUS="$?" rm -f "$path" - rm -f "${TMP}/${program}-stub-plan" "${TMP}/${program}-stub-run" + rm -f "${BATS_TEST_TMPDIR}/${program}-stub-plan" "${BATS_TEST_TMPDIR}/${program}-stub-run" return "$STATUS" } run_inline_definition() { - local definition="${TMP}/build-definition" + local definition="${BATS_TEST_TMPDIR}/build-definition" cat > "$definition" run python-build "$definition" "${1:-$INSTALL_ROOT}" } @@ -85,7 +84,7 @@ flunk() { { if [ "$#" -eq 0 ]; then cat - else echo "$@" fi - } | sed "s:${TMP}:\${TMP}:g" >&2 + } | sed "s:${BATS_TEST_TMPDIR}:\${BATS_TEST_TMPDIR}:g" >&2 return 1 } diff --git a/plugins/python-build/test/version.bats b/plugins/python-build/test/version.bats index e774abb5c7..8c9fc778e4 100644 --- a/plugins/python-build/test/version.bats +++ b/plugins/python-build/test/version.bats @@ -2,8 +2,8 @@ load test_helper -bats_bin="${BATS_TEST_DIRNAME}/../bin/python-build" -static_version="$(grep VERSION "$bats_bin" | head -n1 | cut -d'"' -f 2)" +python_build_bin="${BATS_TEST_DIRNAME}/../bin/python-build" +static_version="$(grep VERSION "$python_build_bin" | head -n1 | cut -d'"' -f 2)" @test "python-build static version" { stub git 'echo "ASPLODE" >&2; exit 1' diff --git a/test/--version.bats b/test/--version.bats index 6e372c5db9..51f68802a7 100644 --- a/test/--version.bats +++ b/test/--version.bats @@ -2,9 +2,8 @@ load test_helper -export GIT_DIR="${PYENV_TEST_DIR}/.git" - -setup() { +_setup() { + export GIT_DIR="${PYENV_TEST_DIR}/.git" mkdir -p "$HOME" git config --global user.name "Tester" git config --global user.email "tester@test.local" diff --git a/test/init.bats b/test/init.bats index c0831d407b..f5355591be 100755 --- a/test/init.bats +++ b/test/init.bats @@ -2,7 +2,7 @@ load test_helper -setup() { +_setup() { export PATH="${PYENV_TEST_DIR}/bin:$PATH" } diff --git a/test/latest.bats b/test/latest.bats index 4acfa89fd4..a2c3778f16 100644 --- a/test/latest.bats +++ b/test/latest.bats @@ -2,7 +2,7 @@ load test_helper -setup() { +_setup() { export PATH="${PYENV_TEST_DIR}/bin:$PATH" } diff --git a/test/local.bats b/test/local.bats index 9d97f144da..98639673db 100644 --- a/test/local.bats +++ b/test/local.bats @@ -2,7 +2,7 @@ load test_helper -setup() { +_setup() { mkdir -p "${PYENV_TEST_DIR}/myproject" cd "${PYENV_TEST_DIR}/myproject" } diff --git a/test/prefix.bats b/test/prefix.bats index 8027151414..f52e520d9b 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -34,15 +34,15 @@ load test_helper } @test "prefix for system in /" { - mkdir -p "${BATS_TEST_DIRNAME}/libexec" - cat >"${BATS_TEST_DIRNAME}/libexec/pyenv-which" <"${PYENV_TEST_DIR}/libexec/pyenv-which" </dev/null || echo "$PYENV_TEST_DIR")" - mkdir -p "${PYENV_TEST_DIR}" - - if enable -f "${BATS_TEST_DIRNAME}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then - export PYENV_TEST_DIR="$(realpath "$PYENV_TEST_DIR")" - else +setup() { + if ! enable -f "${BATS_TEST_DIRNAME}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi fi + local bats_test_tmpdir="$(realpath "${BATS_TEST_TMPDIR}")" + if [ -z "${bats_test_tmpdir}" ];then + # Use readlink if running in a container instead of realpath lib + bats_test_tmpdir="$(readlink -f "${BATS_TEST_TMPDIR}")" + fi + + # update BATS_TEST_TMPDIR discover by realpath/readlink to avoid "//" + export BATS_TEST_TMPDIR="${bats_test_tmpdir}" + export PYENV_TEST_DIR="${BATS_TEST_TMPDIR}/pyenv" export PYENV_ROOT="${PYENV_TEST_DIR}/root" export HOME="${PYENV_TEST_DIR}/home" export PYENV_HOOK_PATH="${PYENV_ROOT}/pyenv.d" @@ -29,10 +31,11 @@ if [ -z "$PYENV_TEST_DIR" ]; then for xdg_var in `env 2>/dev/null | grep ^XDG_ | cut -d= -f1`; do unset "$xdg_var"; done unset xdg_var -fi -teardown() { - rm -rf "$PYENV_TEST_DIR" + # If test specific setup exist, run it + if [[ $(type -t _setup) == function ]];then + _setup + fi } flunk() { diff --git a/test/version-file-read.bats b/test/version-file-read.bats index acd9d78164..6563eb6f8d 100644 --- a/test/version-file-read.bats +++ b/test/version-file-read.bats @@ -2,7 +2,7 @@ load test_helper -setup() { +_setup() { mkdir -p "${PYENV_TEST_DIR}/myproject" cd "${PYENV_TEST_DIR}/myproject" } diff --git a/test/version-file-write.bats b/test/version-file-write.bats index 1b62e97755..ae6694f91d 100644 --- a/test/version-file-write.bats +++ b/test/version-file-write.bats @@ -2,8 +2,8 @@ load test_helper -setup() { - mkdir -p "$PYENV_TEST_DIR" +_setup() { + mkdir -p "${PYENV_TEST_DIR}" cd "$PYENV_TEST_DIR" } diff --git a/test/version-file.bats b/test/version-file.bats index c46fb38960..e2fb941cb4 100644 --- a/test/version-file.bats +++ b/test/version-file.bats @@ -2,8 +2,8 @@ load test_helper -setup() { - mkdir -p "$PYENV_TEST_DIR" +_setup() { + mkdir -p "${PYENV_TEST_DIR}" cd "$PYENV_TEST_DIR" } diff --git a/test/version-name.bats b/test/version-name.bats index 285794e42e..cc179b97e7 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -6,8 +6,8 @@ create_version() { mkdir -p "${PYENV_ROOT}/versions/$1" } -setup() { - mkdir -p "$PYENV_TEST_DIR" +_setup() { + mkdir -p "${PYENV_TEST_DIR}" cd "$PYENV_TEST_DIR" } diff --git a/test/version-origin.bats b/test/version-origin.bats index cd7ec563b8..da0565fae4 100644 --- a/test/version-origin.bats +++ b/test/version-origin.bats @@ -2,8 +2,8 @@ load test_helper -setup() { - mkdir -p "$PYENV_TEST_DIR" +_setup() { + mkdir -p "${PYENV_TEST_DIR}" cd "$PYENV_TEST_DIR" } diff --git a/test/version.bats b/test/version.bats index 78c6681b9d..a311b62ff4 100644 --- a/test/version.bats +++ b/test/version.bats @@ -6,8 +6,8 @@ create_version() { mkdir -p "${PYENV_ROOT}/versions/$1" } -setup() { - mkdir -p "$PYENV_TEST_DIR" +_setup() { + mkdir -p "${PYENV_ROOT}" cd "$PYENV_TEST_DIR" } @@ -78,4 +78,4 @@ OUT assert_output < Date: Mon, 8 Sep 2025 15:39:35 +0200 Subject: [PATCH 1000/1324] add bats test under docker --- .github/workflows/pyenv_tests.yml | 9 +++- Makefile | 90 ++++++++++++++++++++++++++++--- test/Dockerfile | 25 +++++++++ 3 files changed, 116 insertions(+), 8 deletions(-) create mode 100644 test/Dockerfile diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 1597ea8881..f4ef12f217 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -40,10 +40,15 @@ jobs: run: | echo $PYENV_ROOT echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - run: | + - name: Run test on the host + run: | make test + - name: Run test with docker + if: ${{ ! contains(matrix.os, 'macos') }} + run: | + make test-docker - env: PYENV_NATIVE_EXT: 1 run: | (cd src; ./configure; make) - bats/bin/bats test/{pyenv,hooks,versions}.bats \ No newline at end of file + bats/bin/bats test/{pyenv,hooks,versions}.bats diff --git a/Makefile b/Makefile index 64724f56d8..4418569080 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,81 @@ -BATS_VERSION = v1.10.0 +TEST_BATS_VERSION = v1.10.0 +TEST_BASH_VERSIONS = 3.2.57 4.1.17 +TEST_UNIT_DOCKER_PREFIX = test-unit-docker +TEST_UNIT_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_UNIT_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_UNIT_DOCKER_PREFIX))) +TEST_PLUGIN_DOCKER_PREFIX = test-plugin-docker +TEST_PLUGIN_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_PLUGIN_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_PLUGIN_DOCKER_PREFIX))) +TEST_BATS_IMAGE_PREFIX = test-pyenv-docker-image +TEST_BATS_IMAGE_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_BATS_IMAGE_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_BATS_IMAGE_PREFIX))) + +.PHONY: +test-docker: $(TEST_UNIT_DOCKER_PREFIX) $(TEST_PLUGIN_DOCKER_PREFIX) + +# Run all unit test under bats docker +.PHONY: $(TEST_UNIT_DOCKER_PREFIX) +$(TEST_UNIT_DOCKER_PREFIX): $(TEST_UNIT_DOCKER_TARGETS) + +# Run each unit test under bats docker +.PHONY: $(TEST_UNIT_DOCKER_TARGETS) +$(TEST_UNIT_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) +$(TEST_UNIT_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) +$(TEST_UNIT_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) +$(TEST_UNIT_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) +$(TEST_UNIT_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_UNIT_DOCKER_TARGETS): $(TEST_UNIT_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% + $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') + docker run \ + --init \ + -v $(PWD):/code:ro \ + -v /etc/passwd:/etc/passwd:ro \ + -v /etc/group:/etc/group:ro \ + -u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \ + $(INTERACTIVE) \ + $(DOCKER_IMAGE):$(DOCKER_TAG) \ + test/run + +# Run all plugin test under bats docker +.PHONY: $(TEST_PLUGIN_DOCKER_PREFIX) +$(TEST_PLUGIN_DOCKER_PREFIX): $(TEST_PLUGIN_DOCKER_TARGETS) + +# Run each plugin test under bats docker +.PHONY: $(TEST_PLUGIN_DOCKER_TARGETS) +$(TEST_PLUGIN_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) +$(TEST_PLUGIN_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) +$(TEST_PLUGIN_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) +$(TEST_PLUGIN_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) +$(TEST_PLUGIN_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_PLUGIN_DOCKER_TARGETS): $(TEST_PLUGIN_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% + $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') + docker run \ + --init \ + -v $(PWD):/code:ro \ + -v /etc/passwd:/etc/passwd:ro \ + -v /etc/group:/etc/group:ro \ + -u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \ + $(INTERACTIVE) \ + $(DOCKER_IMAGE):$(DOCKER_TAG) \ + bats plugins/python-build/test + +# Build all images needed for bats under docker +.PHONY: $(TEST_BATS_IMAGE_PREFIX) +$(TEST_BATS_IMAGE_PREFIX): $(TEST_BATS_IMAGE_TARGETS) + +# Build each image needed for bats under docker +.PHONY: $(TEST_BATS_IMAGE_TARGETS) +$(TEST_BATS_IMAGE_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) +$(TEST_BATS_IMAGE_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) +$(TEST_BATS_IMAGE_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) +$(TEST_BATS_IMAGE_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) +$(TEST_BATS_IMAGE_TARGETS): + $(info Building docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') + docker build \ + --quiet \ + -f "$(PWD)/test/Dockerfile" \ + --build-arg GNU="$(GNU)" \ + --build-arg BASH="$(BASH)" \ + --build-arg BATS_VERSION="$(TEST_BATS_VERSION)" \ + -t $(DOCKER_IMAGE):$(DOCKER_TAG) \ + ./ .PHONY: test test-build test-unit test-plugin @@ -27,11 +104,12 @@ test-build: [ -e $(PYTHON_BUILD_TEST_PREFIX)/bin/pip ] $(PYTHON_BUILD_TEST_PREFIX)/bin/pip -V -.SECONDARY: bats-$(BATS_VERSION) -bats-$(BATS_VERSION): +.SECONDARY: bats-$(TEST_BATS_VERSION) +bats-$(TEST_BATS_VERSION): rm -rf bats - ln -sf bats-$(BATS_VERSION) bats - git clone --depth 1 --branch $(BATS_VERSION) https://github.com/bats-core/bats-core.git bats-$(BATS_VERSION) + ln -sf bats-$(TEST_BATS_VERSION) bats + git clone --depth 1 --branch $(TEST_BATS_VERSION) https://github.com/bats-core/bats-core.git bats-$(TEST_BATS_VERSION) .PHONY: bats -bats: bats-$(BATS_VERSION) +bats: bats-$(TEST_BATS_VERSION) + ln -sf bats-$(TEST_BATS_VERSION) bats diff --git a/test/Dockerfile b/test/Dockerfile new file mode 100644 index 0000000000..659c2de7cb --- /dev/null +++ b/test/Dockerfile @@ -0,0 +1,25 @@ +ARG BASH + +FROM alpine/git:v2.30.0 as bats +ARG BATS_VERSION + RUN git clone https://github.com/bats-core/bats-core.git /root/bats-core \ + && cd /root/bats-core \ + && git checkout "${BATS_VERSION}" + +FROM bash:$BASH + # Gnu tools + RUN if [[ "${GNU:-}" == True ]];then \ + apk add sed coreutils findutils \ + ;fi + # Bats + RUN apk add --update parallel ncurses git \ + && mkdir -p ~/.parallel \ + && touch ~/.parallel/will-cite + COPY --from=bats /root/bats-core /root/bats-core + RUN /root/bats-core/install.sh "/usr/local" + # Clean + RUN rm -rf /var/cache/apk/* + # Setup + RUN echo 'source /etc/profile' >> ~/.bashrc + WORKDIR /code/ + CMD ["bash"] From d275391f65d0eca99668fec6d2bcc5718c5c099a Mon Sep 17 00:00:00 2001 From: rockandska Date: Wed, 10 Sep 2025 16:53:53 +0200 Subject: [PATCH 1001/1324] add possibility to filter tests with make --- Makefile | 12 ++++++++---- test/run | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 4418569080..08bf494943 100644 --- a/Makefile +++ b/Makefile @@ -29,7 +29,10 @@ $(TEST_UNIT_DOCKER_TARGETS): $(TEST_UNIT_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PR -v /etc/passwd:/etc/passwd:ro \ -v /etc/group:/etc/group:ro \ -u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \ - $(INTERACTIVE) \ + $${BATS_TEST_FILTER:+-e BATS_TEST_FILTER="$${BATS_TEST_FILTER}"} \ + $${BATS_FILE_FILTER:+-e BATS_FILE_FILTER="$${BATS_FILE_FILTER}"} \ + $${CI+-e CI="$${CI}"} \ + $(INTERACTIVE) \ $(DOCKER_IMAGE):$(DOCKER_TAG) \ test/run @@ -52,9 +55,10 @@ $(TEST_PLUGIN_DOCKER_TARGETS): $(TEST_PLUGIN_DOCKER_PREFIX)-% : $(TEST_BATS_IMAG -v /etc/passwd:/etc/passwd:ro \ -v /etc/group:/etc/group:ro \ -u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \ - $(INTERACTIVE) \ + $${CI+-e CI="$${CI}"} \ + $(INTERACTIVE) \ $(DOCKER_IMAGE):$(DOCKER_TAG) \ - bats plugins/python-build/test + bats $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/python-build/test/$${BATS_FILE_FILTER} # Build all images needed for bats under docker .PHONY: $(TEST_BATS_IMAGE_PREFIX) @@ -89,7 +93,7 @@ test-unit: bats PATH="./bats/bin:$$PATH" test/run test-plugin: bats - cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} test + cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} PYTHON_BUILD_ROOT := $(CURDIR)/plugins/python-build PYTHON_BUILD_OPTS ?= --verbose diff --git a/test/run b/test/run index 01cd60918f..45eb16edaa 100755 --- a/test/run +++ b/test/run @@ -6,4 +6,4 @@ if [ -n "$PYENV_NATIVE_EXT" ]; then make -C src fi -exec bats ${CI:+--tap} test +exec bats ${CI:+--tap} ${BATS_TEST_FILTER:+--filter "${BATS_TEST_FILTER}"} test/${BATS_FILE_FILTER} From dee36c348d86c74126dc38b903d8df4bd3e659ae Mon Sep 17 00:00:00 2001 From: rockandska Date: Wed, 10 Sep 2025 20:50:56 +0200 Subject: [PATCH 1002/1324] add test README --- test/README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 test/README.md diff --git a/test/README.md b/test/README.md new file mode 100644 index 0000000000..682702e2df --- /dev/null +++ b/test/README.md @@ -0,0 +1,76 @@ +# TEST + +--- + +## Running test suite + +Test suite could be launch with `make` by providing the right target depending what you want to achieve. + +Under the hood, `pyenv` test suites use `bats` as a test framework and are run on the host or docker depending of the target provided to make. + + + +### Targets + +- `test` + - Run the whole test suite on the local host +- `test-docker` + - Run the whole test suite on docker + - Some volumes are used in read-only mode +- `test-unit` + - Run the unit test +- `test-plugin` + - Run the plugin test +- `test-unit-docker-[BASH_VERSION]` + - Run the unit test under **official** bash docker container (alpine/busybox) with the specified bash version if present is in the `Makefile` + - Some volumes are used in read-only mode +- `test-unit-docker-gnu-[BASH_VERSION]` + - Run the unit test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile` + - Some volumes are used in read-only mode +- `test-plugin-docker-[BASH_VERSION]` + - Run the plugin test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile` + - Some volumes are used in read-only mode +- `test-plugin-docker-gnu-[BASH_VERSION]` + - Run the plugin test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile` + - Some volumes are used in read-only mode + +## Targeting specific test / test file + + By setting some environment variables, it is possible to filtering which test and/or test file who will be tested with bats + +- `BATS_FILE_FILTER` + + - Run test only with the specified file + +- `BATS_TEST_FILTER` + - Run test only who corresponding to the filter provided + + +### Examples + +```bash + $ BATS_TEST_FILTER=".*installed.*" BATS_FILE_FILTER="build.bats" make test-plugin-docker-gnu-3.2.57 + build.bats + ✓ yaml is installed for python + ✓ homebrew is used in Linux if Pyenv is installed with Homebrew + ✓ homebrew is not used in Linux if Pyenv is not installed with Homebrew + + 3 tests, 0 failures + + $ BATS_TEST_FILTER=".*installed.*" BATS_FILE_FILTER="build.bats" make test-plugin + build.bats + ✓ yaml is installed for python + ✓ homebrew is used in Linux if Pyenv is installed with Homebrew + ✓ homebrew is not used in Linux if Pyenv is not installed with Homebrew + + 3 tests, 0 failures +``` + + + +## Writing test + +To be reproducible, each test use/should use its own `TMPDIR` . +It's achieved by using the environment variable `BATS_TEST_TMPDIR` provided by bats that is automatically deleted at the end of each test. More info [here](https://bats-core.readthedocs.io/en/stable/writing-tests.html#special-variables) + +Another variable who could be used to source some file who need to be tested is `BATS_TEST_DIRNAME` who point to the directory in which the bats test file is located. \ No newline at end of file From 7881c26b5aae362979134440d7d5b0798a6b5be6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 16 Sep 2025 16:57:02 +0200 Subject: [PATCH 1003/1324] Add GraalPy 25.0 (#3331) --- .../share/python-build/graalpy-25.0.0 | 64 +++++++++++++++++++ .../python-build/graalpy-community-25.0.0 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-25.0.0 create mode 100644 plugins/python-build/share/python-build/graalpy-community-25.0.0 diff --git a/plugins/python-build/share/python-build/graalpy-25.0.0 b/plugins/python-build/share/python-build/graalpy-25.0.0 new file mode 100644 index 0000000000..d135cb5c26 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-25.0.0 @@ -0,0 +1,64 @@ +# Copyright (c) 2025, 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='25.0.0' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="8ca62fc996b4dcad146ff37139d22a8478959bde73789bfdd1e396287cd09dff" + ;; +"linux-aarch64" ) + checksum="e0008c00e8e925268d592de808839d913609e9f29b0e0dd9b69c795aabb64e2a" + ;; +"macos-amd64" ) + checksum="1709a02b2abc93cf698b95ddd6d8bbf43ddc7b268b09a9e5bced4e637d37369f" + ;; +"macos-aarch64" ) + checksum="4dfff34a4cfeb2c11441ce807c455719945b7f580bdec47d36daba342925a413" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-25.0.0 b/plugins/python-build/share/python-build/graalpy-community-25.0.0 new file mode 100644 index 0000000000..92ce671dc9 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-25.0.0 @@ -0,0 +1,54 @@ +# Copyright (c) 2025, 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='25.0.0' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="628d5e2af40b2a3ca694bbea169388394dd30fe0727a3f1b4c92319d7bb788d5" + ;; +"linux-aarch64" ) + checksum="7065492dea48a31adb5894379cd35acfd479c5a4158f3496f1485adedacf9bbb" + ;; +"macos-amd64" ) + checksum="1b866e651f0016cfdc8d5d4f8e64023cd26024755d4fe5bef86d02f1a9b701ec" + ;; +"macos-aarch64" ) + checksum="cec1e964f75ca5e881830e8670acea9486d589c1db909adf2ba974f16650bb58" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 22a7c46d54f5c3b68cf811689a05ecac8e31d9a9 Mon Sep 17 00:00:00 2001 From: rockandska Date: Wed, 17 Sep 2025 02:53:37 +0200 Subject: [PATCH 1004/1324] upgrade pip detetcion in pip-rehash to accept multiple variations: (#3330) - pip - pipX - pipX.Y - * -m pip Co-authored-by: Christian Fredrik Johnsen --- pyenv.d/exec/pip-rehash.bash | 3 ++ test/pip-rehash.bats | 67 ++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100755 test/pip-rehash.bats diff --git a/pyenv.d/exec/pip-rehash.bash b/pyenv.d/exec/pip-rehash.bash index f608f4ac20..4f0f37ba9c 100644 --- a/pyenv.d/exec/pip-rehash.bash +++ b/pyenv.d/exec/pip-rehash.bash @@ -4,6 +4,9 @@ PYENV_REHASH_COMMAND="${PYENV_COMMAND##*/}" # Remove any version information, from e.g. "pip2" or "pip3.10". if [[ $PYENV_REHASH_COMMAND =~ ^(pip|easy_install)[23](\.[0-9]+)?$ ]]; then PYENV_REHASH_COMMAND="${BASH_REMATCH[1]}" +# Check for ` -m pip ` in arguments +elif [[ "$*" =~ [[:space:]]-m[[:space:]]pip[[:space:]] ]]; then + PYENV_REHASH_COMMAND="pip" fi if [ -x "${PYENV_PIP_REHASH_ROOT}/${PYENV_REHASH_COMMAND}" ]; then diff --git a/test/pip-rehash.bats b/test/pip-rehash.bats new file mode 100755 index 0000000000..f5b065e6bf --- /dev/null +++ b/test/pip-rehash.bats @@ -0,0 +1,67 @@ +#!/usr/bin/env bats + +load test_helper + +create_executable() { + local bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin" + mkdir -p "$bin" + echo "#!/bin/sh" > "${bin}/$1" + chmod +x "${bin}/$1" +} + +copy_src_pyenvd() { + mkdir -p "${PYENV_ROOT}" + cp -r "${BATS_TEST_DIRNAME}/../pyenv.d" "${PYENV_ROOT}" +} + +@test "pip-rehash triggered when using 'pip'" { + export PYENV_VERSION="3.7.14" + create_executable "example" + create_executable "pip" + copy_src_pyenvd + run command -v example 2> /dev/null + assert_failure + run pyenv-exec pip install example + assert_success + run command -v example 2> /dev/null + assert_success +} + +@test "pip-rehash triggered when using 'pip3'" { + export PYENV_VERSION="3.7.14" + create_executable "example" + create_executable "pip3" + copy_src_pyenvd + run command -v example 2> /dev/null + assert_failure + run pyenv-exec pip3 install example + assert_success + run command -v example 2> /dev/null + assert_success +} + +@test "pip-rehash triggered when using 'pip3.x'" { + export PYENV_VERSION="3.7.14" + create_executable "example" + create_executable "pip3.7" + copy_src_pyenvd + run command -v example 2> /dev/null + assert_failure + run pyenv-exec pip3.7 install example + assert_success + run command -v example 2> /dev/null + assert_success +} + +@test "pip-rehash triggered when using 'python -m pip install'" { + export PYENV_VERSION="3.7.14" + create_executable "example" + create_executable "python" + copy_src_pyenvd + run command -v example 2> /dev/null + assert_failure + run pyenv-exec python -m pip install example + assert_success + run command -v example 2> /dev/null + assert_success +} From 1068875cc6cede15bbef187119d3be50c31bd21a Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 18 Sep 2025 08:15:02 -0400 Subject: [PATCH 1005/1324] Add CPython 3.14.0rc3 --- .../python-build/share/python-build/{3.14.0rc2 => 3.14.0rc3} | 4 ++-- .../share/python-build/{3.14.0rc2t => 3.14.0rc3t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.14.0rc2 => 3.14.0rc3} (59%) rename plugins/python-build/share/python-build/{3.14.0rc2t => 3.14.0rc3t} (100%) diff --git a/plugins/python-build/share/python-build/3.14.0rc2 b/plugins/python-build/share/python-build/3.14.0rc3 similarity index 59% rename from plugins/python-build/share/python-build/3.14.0rc2 rename to plugins/python-build/share/python-build/3.14.0rc3 index bedbd19e64..a7f779a8bd 100644 --- a/plugins/python-build/share/python-build/3.14.0rc2 +++ b/plugins/python-build/share/python-build/3.14.0rc3 @@ -3,7 +3,7 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.14.0rc2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc2.tar.xz#bc62854cf232345bd22c9091a68464e01e056c6473a3fffa84572c8a342da656" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0rc3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc3.tar.xz#646dc945e49c73a141896deda12d43f3f293fd69426774c16fc43496180e8fcd" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.0rc2" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc2.tgz#b336f5d76fcf2725b29108f253d4338fbe4cc6a17cd8baf059deebb5a343dd8f" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.0rc3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc3.tgz#f52c3fa94a02adf9a6228abf53f6a53f09ce06aa168d879a332054c598179853" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.0rc2t b/plugins/python-build/share/python-build/3.14.0rc3t similarity index 100% rename from plugins/python-build/share/python-build/3.14.0rc2t rename to plugins/python-build/share/python-build/3.14.0rc3t From 0052372fa307a269cf4145f6ba143da23965bdeb Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 14 Sep 2025 08:05:11 +0300 Subject: [PATCH 1006/1324] Explicitly include Homebrew at /usr/local/include if passing -isysroot Apple CLang excludes it if -isysroot is passed --- plugins/python-build/bin/python-build | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 67191cd2c7..0e47c7f314 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1508,7 +1508,9 @@ use_homebrew() { if command -v brew &>/dev/null; then local brew_prefix="$(brew --prefix 2>/dev/null || true)" # /usr/local/lib:/usr/lib is the default library search path - if [[ -n $brew_prefix && $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ]]; then + if [[ -n $brew_prefix && ( ( $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ) + #when -isysroot is passed to Apple CLang, /usr/(local) are excluded from the default search path + || ( is_mac && osx_using_default_compiler && $CFLAGS =~ (^|\ )-isysroot\ ) ) ]]; then export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${brew_prefix}/include" append_ldflags_libs "-L${brew_prefix}/lib -Wl,-rpath,${brew_prefix}/lib" lock_in homebrew @@ -1842,7 +1844,7 @@ use_homebrew_zlib() { use_xcode_sdk_zlib() { # If a custom compiler is used, including XCode SDK will likely break it - [[ "${CC:-clang}" != "clang" || "$(command -v clang 2>/dev/null || true)" != "/usr/bin/clang" ]] && return 1 + osx_using_default_compiler || return 1 local sdkroot="$(xcrun --sdk macosx --show-sdk-path 2>/dev/null || true)" [[ -z ${sdkroot} || ! -d ${sdkroot} ]] && return 1 @@ -1862,6 +1864,10 @@ use_xcode_sdk_zlib() { return 0 } +osx_using_default_compiler() { + [[ "${CC:-clang}" == "clang" && "$(command -v clang 2>/dev/null || true)" == "/usr/bin/clang" ]] +} + use_macports_zlib() { can_use_macports || return 1 if [[ $(port -q installed zlib | awk '{print $3}') == "(active)" ]]; then From 8c3b705f04fda7fc8cbe7baf3ed8fe44a9c39304 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Sep 2025 23:22:39 +0300 Subject: [PATCH 1007/1324] CI: modified-scripts-build: print config.log on build failure --- .github/workflows/modified_scripts_build.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 88f28878c7..a06fd02325 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -55,7 +55,8 @@ jobs: fi - run: | #build - pyenv --debug install ${{ matrix.python-version }} + pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? + if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: | @@ -116,7 +117,8 @@ jobs: fi - run: | #build - pyenv --debug install ${{ matrix.python-version }} + pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? + if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: | @@ -179,7 +181,8 @@ jobs: fi - run: | #build - pyenv install -v ${{ matrix.python-version }} + pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? + if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: | @@ -238,7 +241,8 @@ jobs: fi - run: | #build - pyenv install -v ${{ matrix.python-version }} + pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? + if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi pyenv global ${{ matrix.python-version }} # Micropython doesn't support --version - run: | From bbe6301f01140b1baa23fce8ff8cebd0fccd00b2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Sep 2025 21:25:56 +0300 Subject: [PATCH 1008/1324] Use TCLTK_* and pkg-config for 3.11+ instead of --with-tcl-* and pkg-config Fixes warnings "configure: WARNING: unrecognized options: --with-tcltk-libs, --with-tcltk-includes" fix script --- plugins/python-build/bin/python-build | 38 +++++++++---- .../python-build/share/python-build/3.12.0 | 1 + .../python-build/share/python-build/3.12.1 | 1 + .../python-build/share/python-build/3.12.10 | 1 + .../python-build/share/python-build/3.12.11 | 1 + .../python-build/share/python-build/3.12.2 | 1 + .../python-build/share/python-build/3.12.3 | 1 + .../python-build/share/python-build/3.12.4 | 1 + .../python-build/share/python-build/3.12.5 | 1 + .../python-build/share/python-build/3.12.6 | 1 + .../python-build/share/python-build/3.12.7 | 1 + .../python-build/share/python-build/3.12.8 | 1 + .../python-build/share/python-build/3.12.9 | 1 + .../python-build/share/python-build/3.13-dev | 1 + .../python-build/share/python-build/3.13.0 | 1 + .../python-build/share/python-build/3.13.1 | 1 + .../python-build/share/python-build/3.13.2 | 1 + .../python-build/share/python-build/3.13.3 | 1 + .../python-build/share/python-build/3.13.4 | 1 + .../python-build/share/python-build/3.13.5 | 1 + .../python-build/share/python-build/3.13.6 | 1 + .../python-build/share/python-build/3.13.7 | 1 + .../python-build/share/python-build/3.14-dev | 1 + .../python-build/share/python-build/3.14.0rc3 | 1 + .../python-build/share/python-build/3.15-dev | 1 + plugins/python-build/test/build.bats | 55 +++++++++++++++++-- 26 files changed, 100 insertions(+), 17 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0e47c7f314..157833e68a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1888,20 +1888,34 @@ use_homebrew_tcltk() { local tcltk_libdir="$(brew --prefix "${tcltk}" 2>/dev/null || true)" if [ -d "$tcltk_libdir" ]; then echo "python-build: use tcl-tk from homebrew" - 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" - # 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 /Cellar - # and we'd rather have rpath set to /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 + local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')" + local tcltk_includes tcltk_libs + # 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 /Cellar + # and we'd rather have rpath set to /opt/<...> to allow micro release upgrades without rebuilding + # XXX: do use tclConfig.sh and translate the paths if more shenanigans appear in later releases + if [ -d "$tcltk_libdir/include/tcl-tk" ]; then + tcltk_includes="-I$tcltk_libdir/include/tcl-tk" + else + tcltk_includes="-I$tcltk_libdir/include" fi + tcltk_libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" + # Since 2.7.6, 3.3.3, 3.4.0 (Issue #1584): --with-tcltk-includes + --with-tcltk-libs Configure options + # Since 3.11.0 (bpo-45847): `pkg-config` call, TCLTK_CFLAGS + TCLTK_LIBS override + if [[ -n "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then + # pkg-config is not present out of the box in MacOS. + # There's no way to provide a fallback only if it's is not present + # and Configure's logic of detecting if it's present is complicated. + # So we just override it always + export TCLTK_CFLAGS="$tcltk_includes" + export TCLTK_LIBS="$tcltk_libs" + else + package_option python configure --with-tcltk-includes="$tcltk_includes" + package_option python configure --with-tcltk-libs="$tcltk_libs" + fi + #set in either case as a failsafe export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + lock_in homebrew return 0 fi diff --git a/plugins/python-build/share/python-build/3.12.0 b/plugins/python-build/share/python-build/3.12.0 index 605867fae4..12ed1634ab 100644 --- a/plugins/python-build/share/python-build/3.12.0 +++ b/plugins/python-build/share/python-build/3.12.0 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.12.1 b/plugins/python-build/share/python-build/3.12.1 index 636724c9f5..907bfaf351 100644 --- a/plugins/python-build/share/python-build/3.12.1 +++ b/plugins/python-build/share/python-build/3.12.1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.12.10 b/plugins/python-build/share/python-build/3.12.10 index 75258a1d9c..00ed1e90a0 100644 --- a/plugins/python-build/share/python-build/3.12.10 +++ b/plugins/python-build/share/python-build/3.12.10 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.3" "https://github.com/openssl/openssl/releases/download/openssl-3.3.3/openssl-3.3.3.tar.gz#712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539" 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 diff --git a/plugins/python-build/share/python-build/3.12.11 b/plugins/python-build/share/python-build/3.12.11 index 85bd7d109f..ee1c266890 100644 --- a/plugins/python-build/share/python-build/3.12.11 +++ b/plugins/python-build/share/python-build/3.12.11 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.12.2 b/plugins/python-build/share/python-build/3.12.2 index cee4c6068d..cd7fbe7ed0 100644 --- a/plugins/python-build/share/python-build/3.12.2 +++ b/plugins/python-build/share/python-build/3.12.2 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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 diff --git a/plugins/python-build/share/python-build/3.12.3 b/plugins/python-build/share/python-build/3.12.3 index 2228238db4..484d8b4d12 100644 --- a/plugins/python-build/share/python-build/3.12.3 +++ b/plugins/python-build/share/python-build/3.12.3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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 diff --git a/plugins/python-build/share/python-build/3.12.4 b/plugins/python-build/share/python-build/3.12.4 index b401637298..def8ffb29c 100644 --- a/plugins/python-build/share/python-build/3.12.4 +++ b/plugins/python-build/share/python-build/3.12.4 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.2" "https://www.openssl.org/source/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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 diff --git a/plugins/python-build/share/python-build/3.12.5 b/plugins/python-build/share/python-build/3.12.5 index d067a27e1a..4bc86ad7d2 100644 --- a/plugins/python-build/share/python-build/3.12.5 +++ b/plugins/python-build/share/python-build/3.12.5 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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 diff --git a/plugins/python-build/share/python-build/3.12.6 b/plugins/python-build/share/python-build/3.12.6 index 73e2f6ebac..28742012e3 100644 --- a/plugins/python-build/share/python-build/3.12.6 +++ b/plugins/python-build/share/python-build/3.12.6 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.12.7 b/plugins/python-build/share/python-build/3.12.7 index 00a357780e..49d5e7db11 100644 --- a/plugins/python-build/share/python-build/3.12.7 +++ b/plugins/python-build/share/python-build/3.12.7 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.12.8 b/plugins/python-build/share/python-build/3.12.8 index 005117f6d6..42634f1a61 100644 --- a/plugins/python-build/share/python-build/3.12.8 +++ b/plugins/python-build/share/python-build/3.12.8 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.12.9 b/plugins/python-build/share/python-build/3.12.9 index 58c770226d..c03fe91939 100644 --- a/plugins/python-build/share/python-build/3.12.9 +++ b/plugins/python-build/share/python-build/3.12.9 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.13-dev b/plugins/python-build/share/python-build/3.13-dev index 3fa7508a35..4beb508f26 100644 --- a/plugins/python-build/share/python-build/3.13-dev +++ b/plugins/python-build/share/python-build/3.13-dev @@ -1,6 +1,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-3.5.1" "https://www.openssl.org/source/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.13.0 b/plugins/python-build/share/python-build/3.13.0 index 4f73ad83b5..e79fafa732 100644 --- a/plugins/python-build/share/python-build/3.13.0 +++ b/plugins/python-build/share/python-build/3.13.0 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.13.1 b/plugins/python-build/share/python-build/3.13.1 index cfeff70f95..a002addc61 100644 --- a/plugins/python-build/share/python-build/3.13.1 +++ b/plugins/python-build/share/python-build/3.13.1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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 diff --git a/plugins/python-build/share/python-build/3.13.2 b/plugins/python-build/share/python-build/3.13.2 index 1df925ce86..9d8d205f19 100644 --- a/plugins/python-build/share/python-build/3.13.2 +++ b/plugins/python-build/share/python-build/3.13.2 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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 diff --git a/plugins/python-build/share/python-build/3.13.3 b/plugins/python-build/share/python-build/3.13.3 index 32f5c79a3a..d37c1ff151 100644 --- a/plugins/python-build/share/python-build/3.13.3 +++ b/plugins/python-build/share/python-build/3.13.3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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 diff --git a/plugins/python-build/share/python-build/3.13.4 b/plugins/python-build/share/python-build/3.13.4 index f07d8f326e..58aecf3c63 100644 --- a/plugins/python-build/share/python-build/3.13.4 +++ b/plugins/python-build/share/python-build/3.13.4 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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 diff --git a/plugins/python-build/share/python-build/3.13.5 b/plugins/python-build/share/python-build/3.13.5 index d867c4eb84..1eba07fc9e 100644 --- a/plugins/python-build/share/python-build/3.13.5 +++ b/plugins/python-build/share/python-build/3.13.5 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.13.6 b/plugins/python-build/share/python-build/3.13.6 index f474fcb471..40cfe8b483 100644 --- a/plugins/python-build/share/python-build/3.13.6 +++ b/plugins/python-build/share/python-build/3.13.6 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.13.7 b/plugins/python-build/share/python-build/3.13.7 index 8d9b3c1fa8..710ed2d222 100644 --- a/plugins/python-build/share/python-build/3.13.7 +++ b/plugins/python-build/share/python-build/3.13.7 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then diff --git a/plugins/python-build/share/python-build/3.14-dev b/plugins/python-build/share/python-build/3.14-dev index 8823e93990..6fbd840348 100644 --- a/plugins/python-build/share/python-build/3.14-dev +++ b/plugins/python-build/share/python-build/3.14-dev @@ -1,6 +1,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-3.5.1" "https://www.openssl.org/source/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.14.0rc3 b/plugins/python-build/share/python-build/3.14.0rc3 index a7f779a8bd..d7239f38b2 100644 --- a/plugins/python-build/share/python-build/3.14.0rc3 +++ b/plugins/python-build/share/python-build/3.14.0rc3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.15-dev b/plugins/python-build/share/python-build/3.15-dev index ce92a386bf..d96816940e 100644 --- a/plugins/python-build/share/python-build/3.15-dev +++ b/plugins/python-build/share/python-build/3.15-dev @@ -1,6 +1,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 300dbd7d60..e87e156997 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -29,14 +29,24 @@ cached_tarball() { tarball() { local name="$1" + shift local path="$PWD/$name" - local configure="$path/${2:-configure}" - shift 1 + local configure="$1" + if [[ ${configure:0:1} == "-" ]]; then configure=""; fi + configure="$path/${configure:-configure}" + shift || true + local extra_vars var_name + if [[ $# -gt 0 ]]; then + for var_name in "$@"; do + extra_vars="${extra_vars:+$extra_vars }$var_name=\$$var_name" + done + fi executable "$configure" <> build.log -echo "$name: \$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log +echo "$name:" "\$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log +${extra_vars:+echo \"$name: $extra_vars\" >>build.log} OUT for file; do @@ -751,7 +761,7 @@ make install OUT } -@test "tcl-tk is linked from Homebrew" { +@test "tcl-tk is linked from Homebrew via --with-tcl-*" { cached_tarball "Python-3.6.2" tcl_tk_version=8.6 tcl_tk_libdir="$BATS_TEST_TMPDIR/homebrew-tcl-tk" @@ -778,7 +788,42 @@ DEF assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" + + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' + + stub brew "--prefix tcl-tk@8 : echo '$tcl_tk_libdir'" + for i in {1..4}; do stub brew false; done + + stub_make_install + + run_inline_definition < Date: Thu, 18 Sep 2025 19:41:50 +0300 Subject: [PATCH 1009/1324] Add PYTHON_BUILD_TCLTK_FORMULA to allow building against Tcl/Tk 9 Tcl/Tk 9.0 support was added in 3.13.0b3 and is not official as of 3.14.0; the build with Homebrew version fails as of this writing --- plugins/python-build/README.md | 1 + plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/build.bats | 36 ++++++++++++++++++++++++++- 3 files changed, 37 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 2b8852cf2f..22dc242001 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -175,6 +175,7 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will. * `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. +* `PYTHON_BUILD_TCLTK_FORMULA`, override the Homebrew Tcl/Tk formula to use. * `PYTHON_BUILD_SKIP_MACPORTS`, if set, will not search for libraries installed by MacPorts when it would normally will. * `PYTHON_BUILD_USE_MACPORTS`, if set, will search for libraries installed by MacPorts when it would normally not. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 157833e68a..082603e0b6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1884,7 +1884,7 @@ use_homebrew_tcltk() { # tcl-tk is 9.0 which is not compatible with CPython as of this writing # but we'll keep it as backup for cases like non-updated Homebrew local tcltk - for tcltk in "tcl-tk@8" "tcl-tk"; do + for tcltk in ${PYTHON_BUILD_TCLTK_FORMULA:-tcl-tk@8 tcl-tk}; do local tcltk_libdir="$(brew --prefix "${tcltk}" 2>/dev/null || true)" if [ -d "$tcltk_libdir" ]; then echo "python-build: use tcl-tk from homebrew" diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index e87e156997..d123103ea0 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -46,7 +46,7 @@ tarball() { #!$BASH echo "$name: CFLAGS=\\"\$CFLAGS\\" CPPFLAGS=\\"\$CPPFLAGS\\" LDFLAGS=\\"\$LDFLAGS\\" PKG_CONFIG_PATH=\\"\$PKG_CONFIG_PATH\\"" >> build.log echo "$name:" "\$@" \${PYTHONOPT:+PYTHONOPT=\$PYTHONOPT} >> build.log -${extra_vars:+echo \"$name: $extra_vars\" >>build.log} +${extra_vars:+echo $name: $extra_vars >>build.log} OUT for file; do @@ -794,6 +794,40 @@ make install OUT } +@test "tcl-tk is linked from Homebrew with PYTHON_BUILD_TCLTK_FORMULA" { + cached_tarball "Python-3.6.2" + tcl_tk_version=8.6 + tcl_tk_libdir="$BATS_TEST_TMPDIR/homebrew-tcl-tk" + mkdir -p "$tcl_tk_libdir/lib" + echo "TCL_VERSION='$tcl_tk_version'" >>"$tcl_tk_libdir/lib/tclConfig.sh" + + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' + + stub brew "--prefix tcl-tk-custom : echo '$tcl_tk_libdir'" + for i in {1..4}; do stub brew false; done + + stub_make_install + + run_inline_definition < Date: Fri, 19 Sep 2025 07:14:28 +0300 Subject: [PATCH 1010/1324] 2.6.8 --- CHANGELOG.md | 14 ++++++++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bcc10fcf5..47bb23fc20 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Version History +## Release v2.6.8 +* Use Zlib from XCode SDK in a way compatible with XCode 16 and CLT by @JarheadStever in https://github.com/pyenv/pyenv/pull/3301 +* Add miniforge 25.3.0-1, 25.3.0-2, 25.3.0-3, 25.3.1-0, skip miniforge 25.3.0-0 by @native-api in https://github.com/pyenv/pyenv/pull/3306 +* Fix Readline and OpenSSL detection for MacPorts without the corresponding package by @native-api in https://github.com/pyenv/pyenv/pull/3317 +* Bump actions/checkout from 4 to 5 in the github-actions group by @dependabot[bot] in https://github.com/pyenv/pyenv/pull/3318 +* Fix rehash hook for pipx/pipx.x/pipx.xx by @rockandska in https://github.com/pyenv/pyenv/pull/3320 +* Add miniconda 25.7.0-2 by @native-api in https://github.com/pyenv/pyenv/pull/3323 +* Support curl from a snap by @native-api in https://github.com/pyenv/pyenv/pull/3329 +* CI: Bats test suite in docker by @rockandska in https://github.com/pyenv/pyenv/pull/3324 +* Add GraalPy 25.0.0 by @msimacek in https://github.com/pyenv/pyenv/pull/3331 +* Upgrade pip detetcion in pip-rehash to accept multiple variations by @rockandska in https://github.com/pyenv/pyenv/pull/3330 +* Add CPython 3.14.0rc3 by @nedbat in https://github.com/pyenv/pyenv/pull/3333 +* Use TCLTK_* and pkg-config for 3.11+ linking with Homebrew Tcl/Tk; add PYTHON_BUILD_TCLTK_FORMULA envvar by @native-api in https://github.com/pyenv/pyenv/pull/3327 + ## Release v2.6.7 * Skip Zlib from XCode for XCode 16+ by @native-api in https://github.com/pyenv/pyenv/pull/3298 * Don't fail the build if `xcodebuild` fails by @native-api in https://github.com/pyenv/pyenv/pull/3302 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 79f6db093e..84db8629ed 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.7" +version="2.6.8" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 082603e0b6..5c36426c7c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.7" +PYTHON_BUILD_VERSION="2.6.8" OLDIFS="$IFS" From 8e343263474fb6b1eaf6c136789c57d5fa4faad2 Mon Sep 17 00:00:00 2001 From: tuzi3040 <28290621+tuzi3040@users.noreply.github.com> Date: Wed, 8 Oct 2025 02:00:59 +0800 Subject: [PATCH 1011/1324] CI: modified-scripts-build: fix CPython-specific jobs never firing (#3338) --- .github/workflows/modified_scripts_build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index a06fd02325..80216d0844 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -5,6 +5,7 @@ jobs: runs-on: ubuntu-latest outputs: versions: ${{steps.modified-versions.outputs.versions}} + versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}} steps: - uses: actions/checkout@v5 - run: git fetch origin "$GITHUB_BASE_REF" From ba968fda2d2f327d2f1fd9e64608bae12195ac0b Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 7 Oct 2025 21:31:45 +0300 Subject: [PATCH 1012/1324] CI: Fix output variable for CPython-specific workflows (#3340) --- .github/workflows/modified_scripts_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 80216d0844..4c3b1fde74 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -21,10 +21,10 @@ jobs: echo "$versions" >> $GITHUB_ENV; echo "$EOF" >> $GITHUB_ENV; - versions_cpython_only=$(grep -Ee '^[[:digit:]]' <<<"$version") + versions_cpython_only=$(grep -Ee '^[[:digit:]]' <<<"$versions") EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); echo "versions_cpython_only<<$EOF" >> $GITHUB_ENV; - echo $versions_cpython_only >> $GITHUB_ENV; + echo "$versions_cpython_only" >> $GITHUB_ENV; echo "$EOF" >> $GITHUB_ENV; - id: modified-versions run: | From ce9d396cccb667b5d89717a0b92a62596af7822a Mon Sep 17 00:00:00 2001 From: James Date: Tue, 7 Oct 2025 15:26:47 -0400 Subject: [PATCH 1013/1324] Add CPython 3.14.0 (#3339) --------- Co-authored-by: Ivan Pozdeev --- plugins/python-build/share/python-build/3.14.0 | 10 ++++++++++ plugins/python-build/share/python-build/3.14.0rc3 | 10 ---------- .../share/python-build/{3.14.0rc3t => 3.14.0t} | 0 3 files changed, 10 insertions(+), 10 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.14.0 delete mode 100644 plugins/python-build/share/python-build/3.14.0rc3 rename plugins/python-build/share/python-build/{3.14.0rc3t => 3.14.0t} (100%) diff --git a/plugins/python-build/share/python-build/3.14.0 b/plugins/python-build/share/python-build/3.14.0 new file mode 100644 index 0000000000..d5eb1396af --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.0 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.0" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tar.xz#2299dae542d395ce3883aca00d3c910307cd68e0b2f7336098c8e7b7eee9f3e9" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.0" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tgz#88d2da4eed42fa9a5f42ff58a8bc8988881bd6c547e297e46682c2687638a851" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.0rc3 b/plugins/python-build/share/python-build/3.14.0rc3 deleted file mode 100644 index d7239f38b2..0000000000 --- a/plugins/python-build/share/python-build/3.14.0rc3 +++ /dev/null @@ -1,10 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.14.0rc3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc3.tar.xz#646dc945e49c73a141896deda12d43f3f293fd69426774c16fc43496180e8fcd" standard verify_py314 copy_python_gdb ensurepip -else - install_package "Python-3.14.0rc3" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0rc3.tgz#f52c3fa94a02adf9a6228abf53f6a53f09ce06aa168d879a332054c598179853" standard verify_py314 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.14.0rc3t b/plugins/python-build/share/python-build/3.14.0t similarity index 100% rename from plugins/python-build/share/python-build/3.14.0rc3t rename to plugins/python-build/share/python-build/3.14.0t From faddc0d3fe656a7ecfbdeba77f31bbaaa62dc8c4 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Tue, 7 Oct 2025 12:28:30 -0700 Subject: [PATCH 1014/1324] Add CPython 3.13.8 (#3341) --- plugins/python-build/share/python-build/3.13.8 | 10 ++++++++++ plugins/python-build/share/python-build/3.13.8t | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.8 create mode 100644 plugins/python-build/share/python-build/3.13.8t diff --git a/plugins/python-build/share/python-build/3.13.8 b/plugins/python-build/share/python-build/3.13.8 new file mode 100644 index 0000000000..775dc4b216 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.8 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.8" "https://www.python.org/ftp/python/3.13.8/Python-3.13.8.tar.xz#b9910730526b298299b46b35595ced9055722df60c06ad6301f6a4e2c728a252" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.8" "https://www.python.org/ftp/python/3.13.8/Python-3.13.8.tgz#06108fe96f4089b7d9e0096cb4ca9c81ddcd5135f779a7de94cf59abcaa4b53f" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.8t b/plugins/python-build/share/python-build/3.13.8t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.8t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 8087e811cdd5cc2a9753332e74a46ccd90189c64 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 7 Oct 2025 22:33:22 +0300 Subject: [PATCH 1015/1324] 2.6.9 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47bb23fc20..f6c6fb4b63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.6.9 +* CI: modified-scripts-build: fix CPython-specific jobs never firing by @tuzi3040 in https://github.com/pyenv/pyenv/pull/3338 +* CI: modified-scripts-build: fix output variable for CPython-specific workflows by @native-api in https://github.com/pyenv/pyenv/pull/3340 +* Add CPython 3.14.0 by @SnoopJ in https://github.com/pyenv/pyenv/pull/3339 +* Add CPython 3.13.8 by @jsirois in https://github.com/pyenv/pyenv/pull/3341 + ## Release v2.6.8 * Use Zlib from XCode SDK in a way compatible with XCode 16 and CLT by @JarheadStever in https://github.com/pyenv/pyenv/pull/3301 * Add miniforge 25.3.0-1, 25.3.0-2, 25.3.0-3, 25.3.1-0, skip miniforge 25.3.0-0 by @native-api in https://github.com/pyenv/pyenv/pull/3306 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 84db8629ed..0710759ad1 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.8" +version="2.6.9" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5c36426c7c..3c1e6ea49f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.8" +PYTHON_BUILD_VERSION="2.6.9" OLDIFS="$IFS" From 1c05252dfcfb4230642b5baac5a050083db60e8c Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Thu, 9 Oct 2025 21:12:44 -0400 Subject: [PATCH 1016/1324] Add CPython 3.12.12, 3.11.14, 3.10.19, 3.9.24 (#3344) --- plugins/python-build/share/python-build/3.10.19 | 9 +++++++++ plugins/python-build/share/python-build/3.11.14 | 10 ++++++++++ plugins/python-build/share/python-build/3.12.12 | 10 ++++++++++ plugins/python-build/share/python-build/3.9.24 | 12 ++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.19 create mode 100644 plugins/python-build/share/python-build/3.11.14 create mode 100644 plugins/python-build/share/python-build/3.12.12 create mode 100644 plugins/python-build/share/python-build/3.9.24 diff --git a/plugins/python-build/share/python-build/3.10.19 b/plugins/python-build/share/python-build/3.10.19 new file mode 100644 index 0000000000..dd8466f1d2 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.19 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.19" "https://www.python.org/ftp/python/3.10.19/Python-3.10.19.tar.xz#c8f4a596572201d81dd7df91f70e177e19a70f1d489968b54b5fbbf29a97c076" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.19" "https://www.python.org/ftp/python/3.10.19/Python-3.10.19.tgz#a078fb2d7a216071ebbe2e34b5f5355dd6b6e9b0cd1bacc4a41c63990c5a0eec" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.14 b/plugins/python-build/share/python-build/3.11.14 new file mode 100644 index 0000000000..9f86213666 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.14 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" 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.11.14" "https://www.python.org/ftp/python/3.11.14/Python-3.11.14.tar.xz#8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.14" "https://www.python.org/ftp/python/3.11.14/Python-3.11.14.tgz#563d2a1b2a5ba5d5409b5ecd05a0e1bf9b028cf3e6a6f0c87a5dc8dc3f2d9182" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.12.12 b/plugins/python-build/share/python-build/3.12.12 new file mode 100644 index 0000000000..bdc66a1803 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.12 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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.12" "https://www.python.org/ftp/python/3.12.12/Python-3.12.12.tar.xz#fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.12" "https://www.python.org/ftp/python/3.12.12/Python-3.12.12.tgz#487c908ddf4097a1b9ba859f25fe46d22ccaabfb335880faac305ac62bffb79b" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.9.24 b/plugins/python-build/share/python-build/3.9.24 new file mode 100644 index 0000000000..42290d04e0 --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.24 @@ -0,0 +1,12 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-3.0.16" "https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz#57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.24" "https://www.python.org/ftp/python/3.9.24/Python-3.9.24.tar.xz#668391afabd5083faafa4543753d190f82f33ce6ba22d6e9ac728b43644b278a" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.24" "https://www.python.org/ftp/python/3.9.24/Python-3.9.24.tgz#9a32cfc683aecaadbd9ed891ac2af9451ff37f48a00a2d8e1f4ecd9c2a1ffdcb" standard verify_py39 copy_python_gdb ensurepip +fi From a419b003b4615bef05098865bb97e0fbc428095e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 10 Oct 2025 04:14:38 +0300 Subject: [PATCH 1017/1324] 2.6.10 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f6c6fb4b63..c42ecb9fe5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.10 +* Add CPython 3.12.12, 3.11.14, 3.10.19, 3.9.24 by @nedbat in https://github.com/pyenv/pyenv/pull/3344 + ## Release v2.6.9 * CI: modified-scripts-build: fix CPython-specific jobs never firing by @tuzi3040 in https://github.com/pyenv/pyenv/pull/3338 * CI: modified-scripts-build: fix output variable for CPython-specific workflows by @native-api in https://github.com/pyenv/pyenv/pull/3340 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 0710759ad1..c701b0bcbe 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.9" +version="2.6.10" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 3c1e6ea49f..bd0c9b5f5c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.9" +PYTHON_BUILD_VERSION="2.6.10" OLDIFS="$IFS" From 8d3bba2f92c17624ce3a59efa254abf837899ff9 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 11 Oct 2025 00:19:06 +0300 Subject: [PATCH 1018/1324] Support building against Homebrew Tcl/Tk 9 (#3343) Use tclConfig.sh/tkConfig.sh for future-proofing 3.14.0 doesn't detect Tcl/Tk with external libtommath, have to do it ourselves --- plugins/python-build/bin/python-build | 37 ++++----- plugins/python-build/test/build.bats | 113 +++++++++++++++++++++----- 2 files changed, 111 insertions(+), 39 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index bd0c9b5f5c..d6a77ed570 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1880,26 +1880,24 @@ use_macports_zlib() { use_homebrew_tcltk() { can_use_homebrew || return 1 + local tcltk_formula # Since https://github.com/Homebrew/homebrew-core/commit/f10e88617b41555193c22fdcba6109fe82155ee2 (10.11.2024), - # tcl-tk is 9.0 which is not compatible with CPython as of this writing - # but we'll keep it as backup for cases like non-updated Homebrew - local tcltk - for tcltk in ${PYTHON_BUILD_TCLTK_FORMULA:-tcl-tk@8 tcl-tk}; do - local tcltk_libdir="$(brew --prefix "${tcltk}" 2>/dev/null || true)" - if [ -d "$tcltk_libdir" ]; then - echo "python-build: use tcl-tk from homebrew" - local tcltk_version="$(sh -c '. '"$tcltk_libdir"'/lib/tclConfig.sh; echo $TCL_VERSION')" - local tcltk_includes tcltk_libs + # tcl-tk is 9.0. It's supported in CPython since 3.14.0a1 (gh-124111) but is not officially supported as of 3.14.0 + # so we prefer 8 + for tcltk_formula in ${PYTHON_BUILD_TCLTK_FORMULA:-tcl-tk@8 tcl-tk}; do + local tcltk_prefix="$(brew --prefix "${tcltk_formula}" 2>/dev/null || true)" + if [ -d "$tcltk_prefix" ]; then + echo "python-build: use ${tcltk_formula} from homebrew" # 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 /Cellar - # and we'd rather have rpath set to /opt/<...> to allow micro release upgrades without rebuilding - # XXX: do use tclConfig.sh and translate the paths if more shenanigans appear in later releases - if [ -d "$tcltk_libdir/include/tcl-tk" ]; then - tcltk_includes="-I$tcltk_libdir/include/tcl-tk" - else - tcltk_includes="-I$tcltk_libdir/include" + local tcltk_includes="$(sh -c 'cd '"$tcltk_prefix"'/lib; . ./tclConfig.sh; . ./tkConfig.sh; echo "$TCL_INCLUDE_SPEC $TK_INCLUDE_SPEC"')" + # Homebrew Tcl/Tk 9 is built with external libtommath. CPython's build as of 3.14.0 does not detect that and fails to link to tommath symbols + local tcltk_cflags + if sh -c '. '"$tcltk_prefix"'/lib/tclConfig.sh; echo "$TCL_DEFS"' | grep -qwFe '-DTCL_WITH_EXTERNAL_TOMMATH=1'; then + tcltk_cflags="-DTCL_WITH_EXTERNAL_TOMMATH=1" fi - tcltk_libs="-L$tcltk_libdir/lib -ltcl$tcltk_version -ltk$tcltk_version" + # For some reason, keg-only tcl-tk@8 successfully links with Tkinter without specifying rpath, with `/opt' rpath + # so no need to translate /Cellar path to /opt path + local tcltk_libs="$(sh -c 'cd '"$tcltk_prefix"'/lib; . ./tclConfig.sh; . ./tkConfig.sh; echo "$TCL_LIB_SPEC $TK_LIB_SPEC"')" # Since 2.7.6, 3.3.3, 3.4.0 (Issue #1584): --with-tcltk-includes + --with-tcltk-libs Configure options # Since 3.11.0 (bpo-45847): `pkg-config` call, TCLTK_CFLAGS + TCLTK_LIBS override if [[ -n "$PYTHON_BUILD_TCLTK_USE_PKGCONFIG" ]]; then @@ -1907,14 +1905,15 @@ use_homebrew_tcltk() { # There's no way to provide a fallback only if it's is not present # and Configure's logic of detecting if it's present is complicated. # So we just override it always - export TCLTK_CFLAGS="$tcltk_includes" + export TCLTK_CFLAGS="$tcltk_includes${tcltk_cflags:+ $tcltk_cflags}" export TCLTK_LIBS="$tcltk_libs" else package_option python configure --with-tcltk-includes="$tcltk_includes" package_option python configure --with-tcltk-libs="$tcltk_libs" + [[ -n $tcltk_cflags ]] && export CFLAGS="${tcltk_cflags}${CFLAGS:+ $CFLAGS}" fi #set in either case as a failsafe - export PKG_CONFIG_PATH="${tcltk_libdir}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" + export PKG_CONFIG_PATH="${tcltk_prefix}/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}" lock_in homebrew return 0 diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index d123103ea0..f59c4759d6 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -68,6 +68,20 @@ assert_build_log() { assert_output } +stub_tcltk() { + local tcltk_prefix="${1:?}" + mkdir -p "$tcltk_prefix/lib" + cat >"$tcltk_prefix/lib/tclConfig.sh" <"$tcltk_prefix/lib/tkConfig.sh" <>"$tcl_tk_libdir/lib/tclConfig.sh" + stub_tcltk "${tcl_tk_libdir:=$BATS_TEST_TMPDIR/homebrew-tcl-tk}" stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' @@ -788,7 +799,40 @@ DEF assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" <>"$tcl_tk_libdir/lib/tclConfig.sh" + stub_tcltk "${tcl_tk_libdir:=$BATS_TEST_TMPDIR/homebrew-tcl-tk}" stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' @@ -822,7 +863,7 @@ DEF assert_build_log <>"$tcl_tk_libdir/lib/tclConfig.sh" + stub_tcltk "${tcl_tk_libdir:=$BATS_TEST_TMPDIR/homebrew-tcl-tk}" + + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' + + stub brew "--prefix tcl-tk@8 : echo '$tcl_tk_libdir'" + for i in {1..4}; do stub brew false; done + + stub_make_install + + run_inline_definition <>"$tcl_tk_libdir/lib/tclConfig.sh" < Date: Tue, 14 Oct 2025 16:18:13 -0400 Subject: [PATCH 1019/1324] Add CPython 3.13.9 --- plugins/python-build/share/python-build/3.13.9 | 10 ++++++++++ plugins/python-build/share/python-build/3.13.9t | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.9 create mode 100644 plugins/python-build/share/python-build/3.13.9t diff --git a/plugins/python-build/share/python-build/3.13.9 b/plugins/python-build/share/python-build/3.13.9 new file mode 100644 index 0000000000..529e6c2429 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.9 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.9" "https://www.python.org/ftp/python/3.13.9/Python-3.13.9.tar.xz#ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.9" "https://www.python.org/ftp/python/3.13.9/Python-3.13.9.tgz#c4c066af19c98fb7835d473bebd7e23be84f6e9874d47db9e39a68ee5d0ce35c" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.9t b/plugins/python-build/share/python-build/3.13.9t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.9t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From c1c8646d759aca365fb68b5a1ceec01b84987f46 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Oct 2025 13:10:13 +0300 Subject: [PATCH 1020/1324] Fix Readline 8.3 URLs https://www.gnu.org/server/mirror.html advises to use http://ftpmirror.gnu.org/ for automatic mirror selection --- plugins/python-build/share/python-build/3.13.6 | 2 +- plugins/python-build/share/python-build/3.13.7 | 2 +- plugins/python-build/share/python-build/3.13.8 | 2 +- plugins/python-build/share/python-build/3.13.9 | 2 +- plugins/python-build/share/python-build/3.14.0 | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/python-build/share/python-build/3.13.6 b/plugins/python-build/share/python-build/3.13.6 index 40cfe8b483..580cda50ae 100644 --- a/plugins/python-build/share/python-build/3.13.6 +++ b/plugins/python-build/share/python-build/3.13.6 @@ -2,7 +2,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.13.6" "https://www.python.org/ftp/python/3.13.6/Python-3.13.6.tar.xz#17ba5508819d8736a14fbfc47d36e184946a877851b2e9c4b6c43acb44a3b104" standard verify_py313 copy_python_gdb ensurepip else diff --git a/plugins/python-build/share/python-build/3.13.7 b/plugins/python-build/share/python-build/3.13.7 index 710ed2d222..38165c17f7 100644 --- a/plugins/python-build/share/python-build/3.13.7 +++ b/plugins/python-build/share/python-build/3.13.7 @@ -2,7 +2,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.13.7" "https://www.python.org/ftp/python/3.13.7/Python-3.13.7.tar.xz#5462f9099dfd30e238def83c71d91897d8caa5ff6ebc7a50f14d4802cdaaa79a" standard verify_py313 copy_python_gdb ensurepip else diff --git a/plugins/python-build/share/python-build/3.13.8 b/plugins/python-build/share/python-build/3.13.8 index 775dc4b216..f0cdd44fb0 100644 --- a/plugins/python-build/share/python-build/3.13.8 +++ b/plugins/python-build/share/python-build/3.13.8 @@ -2,7 +2,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.13.8" "https://www.python.org/ftp/python/3.13.8/Python-3.13.8.tar.xz#b9910730526b298299b46b35595ced9055722df60c06ad6301f6a4e2c728a252" standard verify_py313 copy_python_gdb ensurepip else diff --git a/plugins/python-build/share/python-build/3.13.9 b/plugins/python-build/share/python-build/3.13.9 index 529e6c2429..f9b3436c7e 100644 --- a/plugins/python-build/share/python-build/3.13.9 +++ b/plugins/python-build/share/python-build/3.13.9 @@ -2,7 +2,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.13.9" "https://www.python.org/ftp/python/3.13.9/Python-3.13.9.tar.xz#ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66" standard verify_py313 copy_python_gdb ensurepip else diff --git a/plugins/python-build/share/python-build/3.14.0 b/plugins/python-build/share/python-build/3.14.0 index d5eb1396af..8780899cc0 100644 --- a/plugins/python-build/share/python-build/3.14.0 +++ b/plugins/python-build/share/python-build/3.14.0 @@ -2,7 +2,7 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://mirror.cs.odu.edu/gnu/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then install_package "Python-3.14.0" "https://www.python.org/ftp/python/3.14.0/Python-3.14.0.tar.xz#2299dae542d395ce3883aca00d3c910307cd68e0b2f7336098c8e7b7eee9f3e9" standard verify_py314 copy_python_gdb ensurepip else From 76614378645bdba3d642c5f4b7c2797ee47a62f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Wed, 15 Oct 2025 05:38:53 -0600 Subject: [PATCH 1021/1324] Add CPython 3.15.0a1 (#3347) --- plugins/python-build/share/python-build/3.15-dev | 4 ++-- plugins/python-build/share/python-build/3.15.0a1 | 10 ++++++++++ plugins/python-build/share/python-build/3.15.0a1t | 2 ++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.15.0a1 create mode 100644 plugins/python-build/share/python-build/3.15.0a1t diff --git a/plugins/python-build/share/python-build/3.15-dev b/plugins/python-build/share/python-build/3.15-dev index d96816940e..71d8d73906 100644 --- a/plugins/python-build/share/python-build/3.15-dev +++ b/plugins/python-build/share/python-build/3.15-dev @@ -3,6 +3,6 @@ export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 -install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline install_git "Python-3.15-dev" "https://github.com/python/cpython" main standard verify_py315 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.15.0a1 b/plugins/python-build/share/python-build/3.15.0a1 new file mode 100644 index 0000000000..43a4394088 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0a1 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0a1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a1.tar.xz#3194939d488eeaeefdcf990d35542d9ad1ce788789c4e2305a2060eb7058e5a4" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.15.0a1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a1.tgz#d70f3895c97db60d058bbdfa3a55fadd385bcb1c1269e686040858e3c109c993" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0a1t b/plugins/python-build/share/python-build/3.15.0a1t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0a1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 94071a937429c1923e12f8e57bc109aeebe7a0ff Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Oct 2025 14:40:44 +0300 Subject: [PATCH 1022/1324] 2.6.11 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c42ecb9fe5..eca8c8613e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.6.11 +* Support building against Homebrew Tcl/Tk 9 by @native-api in https://github.com/pyenv/pyenv/pull/3343 +* Add CPython 3.13.9 by @nedbat in https://github.com/pyenv/pyenv/pull/3346 +* Add CPython 3.15.0a1 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3347 + ## Release v2.6.10 * Add CPython 3.12.12, 3.11.14, 3.10.19, 3.9.24 by @nedbat in https://github.com/pyenv/pyenv/pull/3344 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index c701b0bcbe..9406f96bdf 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.10" +version="2.6.11" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index d6a77ed570..8e3f5a0fd3 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.10" +PYTHON_BUILD_VERSION="2.6.11" OLDIFS="$IFS" From 74fea7edc6e479b6b351b29925ac29d76e7703c1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Oct 2025 15:00:43 +0300 Subject: [PATCH 1023/1324] Fix leftover commented-out test code --- plugins/python-build/test/build.bats | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index f59c4759d6..7d787eab22 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -230,11 +230,11 @@ install_package "Python-3.6.2" "http://python.org/ftp/python/3.6.2/Python-3.6.2. DEF assert_success -# unstub uname -# unstub sw_vers -# unstub brew -# unstub port -# unstub make + unstub uname + unstub sw_vers + unstub brew + unstub port + unstub make assert_build_log < Date: Wed, 22 Oct 2025 01:28:06 +0200 Subject: [PATCH 1024/1324] Add graalpy-25.0.1 (#3350) --- .../share/python-build/graalpy-25.0.1 | 64 +++++++++++++++++++ .../python-build/graalpy-community-25.0.1 | 54 ++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-25.0.1 create mode 100644 plugins/python-build/share/python-build/graalpy-community-25.0.1 diff --git a/plugins/python-build/share/python-build/graalpy-25.0.1 b/plugins/python-build/share/python-build/graalpy-25.0.1 new file mode 100644 index 0000000000..8d4e3abaca --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-25.0.1 @@ -0,0 +1,64 @@ +# Copyright (c) 2025, 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='25.0.1' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="b5baff786753ebb774300fcf68a9bca4d14cbb8099f055637bee11786abb2d57" + ;; +"linux-aarch64" ) + checksum="f3315d1a3f13e7fcd785d0ca9b954d251da5f5d0dedae094c28a0566a239e4fd" + ;; +"macos-amd64" ) + checksum="10b0721d52397f0cc85f038900318da2203711cbcfae7899e3faed49d3dc6221" + ;; +"macos-aarch64" ) + checksum="389e0732f4d79e30335b70d41b6e8a2d769b435512fcb41675eb3dce4fc4d014" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-25.0.1 b/plugins/python-build/share/python-build/graalpy-community-25.0.1 new file mode 100644 index 0000000000..abd55565b5 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-25.0.1 @@ -0,0 +1,54 @@ +# Copyright (c) 2025, 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='25.0.1' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="5ac049e3e13a9b04eead81851e59dfc794278ffec1933ff429378c1a70c88d32" + ;; +"linux-aarch64" ) + checksum="2ea15f932e6e25b21edd0a2713b294ce91c1dca571414fcdff297028f1313de5" + ;; +"macos-amd64" ) + checksum="f7834df0a7c5087de746ae0b0143eda8cfc456c34ddccdc64817491a10e5294b" + ;; +"macos-aarch64" ) + checksum="f89b15b75f456240089dd50e06128aa7357371ee85098a04dc4a4cd34a65f0c9" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 97fd8f436d74c83956f8e79a4391a05bac5a5647 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Fri, 31 Oct 2025 16:24:35 -0400 Subject: [PATCH 1025/1324] Add CPython 3.9.25 (#3355) --- plugins/python-build/share/python-build/3.9.25 | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.9.25 diff --git a/plugins/python-build/share/python-build/3.9.25 b/plugins/python-build/share/python-build/3.9.25 new file mode 100644 index 0000000000..367381bfee --- /dev/null +++ b/plugins/python-build/share/python-build/3.9.25 @@ -0,0 +1,12 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +# Avoid a compilation error when linking against OpenSSL built with SSLv3 support (fixed in 3.10.0) (#2181) +export PYTHON_CFLAGS="-DOPENSSL_NO_SSL3${PYTHON_CFLAGS:+ $PYTHON_CFLAGS}" + +install_package "openssl-3.0.16" "https://github.com/openssl/openssl/releases/download/openssl-3.0.16/openssl-3.0.16.tar.gz#57e03c50feab5d31b152af2b764f10379aecd8ee92f16c985983ce4a99f7ef86" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.1" "https://ftpmirror.gnu.org/readline/readline-8.1.tar.gz#f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.9.25" "https://www.python.org/ftp/python/3.9.25/Python-3.9.25.tar.xz#00e07d7c0f2f0cc002432d1ee84d2a40dae404a99303e3f97701c10966c91834" standard verify_py39 copy_python_gdb ensurepip +else + install_package "Python-3.9.25" "https://www.python.org/ftp/python/3.9.25/Python-3.9.25.tgz#a7438eabd3a48139f42d4e058096af8d880b0bb6e8fb8c78838892e4ce5583f2" standard verify_py39 copy_python_gdb ensurepip +fi From c6ea700cdf38ad3474b047f2586ae6a8be44d78a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 31 Oct 2025 23:27:18 +0300 Subject: [PATCH 1026/1324] 2.6.12 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eca8c8613e..5f9cd3c7b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.6.12 +* Add graalpy-25.0.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3350 +* Add CPython 3.9.25 by @nedbat in https://github.com/pyenv/pyenv/pull/3355 + ## Release v2.6.11 * Support building against Homebrew Tcl/Tk 9 by @native-api in https://github.com/pyenv/pyenv/pull/3343 * Add CPython 3.13.9 by @nedbat in https://github.com/pyenv/pyenv/pull/3346 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 9406f96bdf..b0823aeba2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.11" +version="2.6.12" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 8e3f5a0fd3..81927e9b9b 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.11" +PYTHON_BUILD_VERSION="2.6.12" OLDIFS="$IFS" From 032022dace10772a92d7a282d1b4f1e3caa5b194 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Wed, 5 Nov 2025 13:10:29 -0600 Subject: [PATCH 1027/1324] Replace macos-13 with macos-15-intel (#3356) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit > The macOS 13 Ventura based runner images will begin deprecation on September 22nd and will be fully unsupported by December 4th for GitHub and ADO. https://github.com/actions/runner-images/issues/13046 Signed-off-by: Edgar Ramírez Mondragón --- .github/workflows/modified_scripts_build.yml | 4 ++-- .github/workflows/pyenv_tests.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 4c3b1fde74..e8367cd9e5 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -37,7 +37,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["macos-13", "macos-14", "macos-15"] + os: ["macos-14", "macos-15", "macos-15-intel"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v5 @@ -98,7 +98,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["macos-13", "macos-14", "macos-15"] + os: ["macos-14", "macos-15", "macos-15-intel"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v5 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index f4ef12f217..9097285849 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -12,8 +12,8 @@ jobs: os: - ubuntu-24.04 - ubuntu-22.04 + - macos-15-intel - macos-14 - - macos-13 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v5 From 2afd1733a40307296bb925c5a70a7a88589c55cc Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Sat, 8 Nov 2025 19:35:44 +0800 Subject: [PATCH 1028/1324] Add Miniconda3-25.9.1-1 (#3357) --- .../python-build/miniconda3-3.10-25.9.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.9.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.9.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.9.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.9.1-1 | 19 +++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 new file mode 100644 index 0000000000..0499200972 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-1-Linux-aarch64.sh#28fc3db9c7ee63cedab38b0e6006409f1f448be7ffc57b270623efd4422b0608" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.9.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-1-Linux-x86_64.sh#04a8b03d8b0ec062d923e592201a6fd88b7247c309ef8848afb25c424c40ac39" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.9.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-1-MacOSX-arm64.sh#fb3fbef60259b36b0248c73fecdd974f8554d5fccfe0a7b8a45eb06dedbe8a85" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 new file mode 100644 index 0000000000..f017ac351e --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-1-Linux-aarch64.sh#4e0723b9d76aa491cf22511dac36f4fdec373e41d2a243ff875e19b8df39bf94" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.9.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-1-Linux-x86_64.sh#238abad23f8d4d8ba89dd05df0b0079e278909a36e06955f12bbef4aa94e6131" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.9.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-1-MacOSX-arm64.sh#5d5f58477f40d23e491394a7114a318724f1f9161e2b8bd08c5845c47b036b72" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 new file mode 100644 index 0000000000..52243e0564 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-1-Linux-aarch64.sh#11ab86931679e6d9b15112f2e866dad1fcbd89a039a6442c0bce7b86fd282f0a" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.9.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-1-Linux-x86_64.sh#a0def9c732d94b156529ef7db8edd6e1862cee784a27a4961870dca86e89fba4" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.9.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-1-MacOSX-arm64.sh#6bf3d8cac26587f6e53f05cd781f9201d2918c37dc3ef20677b383e250568100" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 new file mode 100644 index 0000000000..1a7e9902c6 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-1-Linux-aarch64.sh#a0de4562c368a8b5ca4385843f405684c79bea7aa3b75d7513ff99c0c6435d51" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.9.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-1-Linux-x86_64.sh#6022714da22986097bbefa13dab3d957257fef04e1c37d1ebd3645b5b99bc9d4" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.9.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-1-MacOSX-arm64.sh#491f35ab841c99225e5680209d5455a2f5278551378781c0dfeaf2586d7ae3df" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 new file mode 100644 index 0000000000..a192f5ef38 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-1-Linux-aarch64.sh#983ef280dec1d0f965b6b6133c585ce902e07136105d4977aa5de3aa027cfa55" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.9.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-1-Linux-x86_64.sh#d8d13344b46a057659397b9ca1a948d184bf59f04efa8864df8c01f7557e2baa" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.9.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-1-MacOSX-arm64.sh#857f09c2be8feaf3664064a2e324e96656104a9a45ab0a657a49c03754855b77" "miniconda" verify_py39 + ;; +* ) + { 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 From fa741b861a6537a35d8f77359dacc3f45142e719 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 19 Nov 2025 06:28:31 -0500 Subject: [PATCH 1029/1324] Add CPython 3.15.0a2 (#3359) --- .../python-build/share/python-build/{3.15.0a1 => 3.15.0a2} | 4 ++-- .../python-build/share/python-build/{3.15.0a1t => 3.15.0a2t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0a1 => 3.15.0a2} (61%) rename plugins/python-build/share/python-build/{3.15.0a1t => 3.15.0a2t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a1 b/plugins/python-build/share/python-build/3.15.0a2 similarity index 61% rename from plugins/python-build/share/python-build/3.15.0a1 rename to plugins/python-build/share/python-build/3.15.0a2 index 43a4394088..6d5a2847bf 100644 --- a/plugins/python-build/share/python-build/3.15.0a1 +++ b/plugins/python-build/share/python-build/3.15.0a2 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0a1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a1.tar.xz#3194939d488eeaeefdcf990d35542d9ad1ce788789c4e2305a2060eb7058e5a4" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.15.0a2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a2.tar.xz#d8a0a2f4a7f3d7090cf195e81814efe95f70554955557f40e149d8694a662751" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0a1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a1.tgz#d70f3895c97db60d058bbdfa3a55fadd385bcb1c1269e686040858e3c109c993" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.15.0a2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a2.tgz#484924d5f963f3d4215ca50c13634b6a7067e9f273893145a6209fe7c93b78ff" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0a1t b/plugins/python-build/share/python-build/3.15.0a2t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a1t rename to plugins/python-build/share/python-build/3.15.0a2t From fdde91269b95bd8a61e9f8d11cba9a1e2de038ad Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 19 Nov 2025 14:30:40 +0300 Subject: [PATCH 1030/1324] 2.6.13 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f9cd3c7b6..28bf7bd480 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.6.13 +* CI: Replace macos-13 with macos-15-intel by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3356 +* Add Miniconda3-25.9.1-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3357 +* Add CPython 3.15.0a2 by @nedbat in https://github.com/pyenv/pyenv/pull/3359 + ## Release v2.6.12 * Add graalpy-25.0.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3350 * Add CPython 3.9.25 by @nedbat in https://github.com/pyenv/pyenv/pull/3355 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index b0823aeba2..3923359c82 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.12" +version="2.6.13" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 81927e9b9b..e62001dc7f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.12" +PYTHON_BUILD_VERSION="2.6.13" OLDIFS="$IFS" From a30c26ddf546708e20cbf9aa854d6435ca574dfb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:59:31 +0300 Subject: [PATCH 1031/1324] Bump actions/checkout from 5 to 6 in the github-actions group (#3360) Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 5 to 6 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 10 +++++----- .github/workflows/pyenv_tests.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 39f879f6a5..543b46d966 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -17,7 +17,7 @@ jobs: - "3.13" runs-on: macos-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index e8367cd9e5..ffbf0ba7cc 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -7,7 +7,7 @@ jobs: versions: ${{steps.modified-versions.outputs.versions}} versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: git fetch origin "$GITHUB_BASE_REF" - shell: bash run: > @@ -40,7 +40,7 @@ jobs: os: ["macos-14", "macos-15", "macos-15-intel"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -101,7 +101,7 @@ jobs: os: ["macos-14", "macos-15", "macos-15-intel"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -163,7 +163,7 @@ jobs: os: ["ubuntu-22.04", "ubuntu-24.04"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -222,7 +222,7 @@ jobs: os: ["ubuntu-latest"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 9097285849..3269410618 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -16,7 +16,7 @@ jobs: - macos-14 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index ad3542ebfc..99bf5fc671 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -17,7 +17,7 @@ jobs: - "3.13" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 # Normally, we would use the superbly maintained... # - uses: actions/setup-python@v2 # with: From 94e4bf0ae8d14b12515e2b759cc72d47cad119d2 Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 1 Dec 2025 22:01:15 +0300 Subject: [PATCH 1032/1324] Fix "ld: symbol(s) not found" for some C system calls in MacOS if XCode is for a newer major MacOS version (#3362) Citing https://www.postgrespro.ru/list/id/E1kfzRR-0001EH-Ph@gemulon.postgresql.org fixing the same problem: We previously put the -isysroot switch only into CPPFLAGS, theorizing that it was only needed to find the right copies of include files. However, it seems that we also need to use it while linking programs, to find the right stub ".tbd" files for libraries. We got away without that up to now, but apparently that was mostly luck. It may also be that failures are only observed when the Xcode version is noticeably out of sync with the host macOS version; the case that's prompting action right now is that builds fail when using latest Xcode (12.2) on macOS Catalina, even though it's fine on Big Sur. Specifically, the problem arises for `preadv' and `pwritev' (new in MacOS 11 Big Sur) when building with XCode 12.4 (supporting Big Sur) in MacOS 10.15 Catalina. --- plugins/python-build/bin/python-build | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index e62001dc7f..119b789c9d 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1861,6 +1861,9 @@ use_xcode_sdk_zlib() { #distutils.unixcompiler and setup.py specifically search CFLAGS for "-isysroot" export CFLAGS="${CFLAGS:+$CFLAGS }-isysroot ${sdkroot}" + #while one can get away with adding it just to CFLAGS, this may cause linker failures + #if XCode is for a different major MacOS version (e.g. reported for XCode 12.4 on MacOS 10.15) + export LDFLAGS="${LDFLAGS:+$LDFLAGS }-isysroot ${sdkroot}" return 0 } From b230a338df74c4f3fc4551c22b737dd3180cfd48 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Tue, 2 Dec 2025 12:52:30 -0500 Subject: [PATCH 1033/1324] Add CPython 3.14.1 (#3363) --- plugins/python-build/share/python-build/3.14.1 | 10 ++++++++++ plugins/python-build/share/python-build/3.14.1t | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.1 create mode 100644 plugins/python-build/share/python-build/3.14.1t diff --git a/plugins/python-build/share/python-build/3.14.1 b/plugins/python-build/share/python-build/3.14.1 new file mode 100644 index 0000000000..37f2e8c765 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.1 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.1" "https://www.python.org/ftp/python/3.14.1/Python-3.14.1.tar.xz#8dfa08b1959d9d15838a1c2dab77dc8d8ff4a553a1ed046dfacbc8095c6d42fc" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.1" "https://www.python.org/ftp/python/3.14.1/Python-3.14.1.tgz#8343f001dede23812c7e9c6064f776bade2ef5813f46f0ae4b5a4c10c9069e9a" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.1t b/plugins/python-build/share/python-build/3.14.1t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From d1ae7fd65dc3b88c6a756f1a301071da5bce8a31 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 2 Dec 2025 21:00:00 +0300 Subject: [PATCH 1034/1324] 2.6.14 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 28bf7bd480..ebf19400c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.6.14 +* CI: Bump actions/checkout from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/pyenv/pyenv/pull/3360 +* Fix "ld: symbol(s) not found" for C system calls in some MacOS versions if XCode is for a newer major MacOS version by @native-api in https://github.com/pyenv/pyenv/pull/3362 +* Add CPython 3.14.1 by @nedbat in https://github.com/pyenv/pyenv/pull/3363 + ## Release v2.6.13 * CI: Replace macos-13 with macos-15-intel by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3356 * Add Miniconda3-25.9.1-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3357 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 3923359c82..73c225fc41 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.13" +version="2.6.14" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 119b789c9d..1f51fb9981 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.13" +PYTHON_BUILD_VERSION="2.6.14" OLDIFS="$IFS" From a63e48cf7533cf145f2767c0aa66e348b2620698 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Tue, 2 Dec 2025 18:21:46 -0600 Subject: [PATCH 1035/1324] Add CPython 3.13.10. (#3364) --- plugins/python-build/share/python-build/3.13.10 | 10 ++++++++++ plugins/python-build/share/python-build/3.13.10t | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.10 create mode 100644 plugins/python-build/share/python-build/3.13.10t diff --git a/plugins/python-build/share/python-build/3.13.10 b/plugins/python-build/share/python-build/3.13.10 new file mode 100644 index 0000000000..7630601455 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.10 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.10" "https://www.python.org/ftp/python/3.13.10/Python-3.13.10.tar.xz#bc673c04375a1a3f0808c27ba8f0411ab811ad390a8740318ccb9c60fad8fd77" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.10" "https://www.python.org/ftp/python/3.13.10/Python-3.13.10.tgz#de5930852e95ba8c17b56548e04648470356ac47f7506014664f8f510d7bd61b" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.10t b/plugins/python-build/share/python-build/3.13.10t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.10t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 61d869f67e2b4c1d05c532821c5166a9ed40b0aa Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 3 Dec 2025 03:23:17 +0300 Subject: [PATCH 1036/1324] 2.6.15 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ebf19400c6..41830c018e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.15 +* Add CPython 3.13.10 by @jsirois in https://github.com/pyenv/pyenv/pull/3364 + ## Release v2.6.14 * CI: Bump actions/checkout from 5 to 6 in the github-actions group by @dependabot[bot] in https://github.com/pyenv/pyenv/pull/3360 * Fix "ld: symbol(s) not found" for C system calls in some MacOS versions if XCode is for a newer major MacOS version by @native-api in https://github.com/pyenv/pyenv/pull/3362 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 73c225fc41..568dfc6952 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.14" +version="2.6.15" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 1f51fb9981..cf7b95c8e2 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.14" +PYTHON_BUILD_VERSION="2.6.15" OLDIFS="$IFS" From 6f0e2d345858b7887dd3302d8f71d02d7413cd31 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 5 Dec 2025 16:19:17 +0300 Subject: [PATCH 1037/1324] rehash: Fix hanging for 60 seconds when shims directory is not writable due to Linux Landlock (#3367) --- libexec/pyenv-rehash | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 6b0922ff1c..745cfb8eb9 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -35,7 +35,7 @@ release_lock() { } if [ ! -w "$SHIM_PATH" ]; then - echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" + echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2 exit 1 fi @@ -46,15 +46,27 @@ while (( SECONDS <= start + ${PYENV_REHASH_TIMEOUT:-60} )); do acquired=1 break else + #Landlock sandbox subsystem in the Linux kernel returns false information in access() as of 6.14.0, + # making -w "$SHIM_PATH" not catch the fact that the shims dir is not writable in this case. + #Bash doesn't provide access to errno to check for non-EEXIST error code in acquire_lock. + #So check for writablity by trying to write to a different file, + # in a way that taxes the usual use case as little as possible. + if [[ -z $tested_for_other_write_errors ]]; then + ( t="$(mktemp -p "$SHIM_PATH")" && rm "$t" ) && tested_for_other_write_errors=1 || + { echo "pyenv: cannot rehash: $SHIM_PATH isnt writable" >&2; break; } + fi # POSIX sleep(1) doesn't provide subsecond precision, but many others do sleep 0.1 2>/dev/null || sleep 1 fi done if [ -z "${acquired}" ]; then - echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists" + if [[ -n $tested_for_other_write_errors ]]; then + echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists" >&2 + fi exit 1 fi +unset tested_for_other_write_errors # The prototype shim file is a script that re-execs itself, passing # its filename and any arguments to `pyenv exec`. This file is From 59204a6c89ff404cc26b6b378124b3b12491821d Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Fri, 5 Dec 2025 22:26:32 +0800 Subject: [PATCH 1038/1324] Add Miniconda3-25.9.1-3 (#3368) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-25.9.1-3 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.9.1-3 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.9.1-3 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.9.1-3 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.9-25.9.1-3 | 19 +++++++++++++++++++ 5 files changed, 95 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 new file mode 100644 index 0000000000..68a3a28af2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-3-Linux-aarch64.sh#bc58460f17ec60d6c920d4352dd4d5e465aa22b56580bd4cd57c9693859761ec" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.9.1-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-3-Linux-x86_64.sh#e4dea08f67e7093433c34d02b8947b093a902f1120b283758d5200bd92db594c" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.9.1-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-3-MacOSX-arm64.sh#3b54f297df4c9f3e45ce692a87984e79d13761a45469d37e852a8b216215ccf0" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 new file mode 100644 index 0000000000..89a94e06e9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-3-Linux-aarch64.sh#92a4df72178d87626072b39aca8fa4721f29d192ed0d70e268586f63b41f7657" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.9.1-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-3-Linux-x86_64.sh#e331037f492848e68764b0c430912b2417b977d654706009ac8eb475e03ae0a2" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.9.1-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-3-MacOSX-arm64.sh#6d92abcee72a7aa4de3694f718fbb523f261efdb5027c7448907b9cfd6507e89" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 new file mode 100644 index 0000000000..c138464b89 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-3-Linux-aarch64.sh#8c5c1d38011fed8053d7bdaaf7fab372c3f71dbb77791e07692fb8059b7828bd" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.9.1-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-3-Linux-x86_64.sh#07fc00c146a481f7ae2657a31eb7ec0d5d77a107b981d58ab5d7cd8bc99be778" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.9.1-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-3-MacOSX-arm64.sh#67108a40cca0ae1a59b74672341d94ed6641430e10371616426c31c2014e19b9" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 new file mode 100644 index 0000000000..89d21ac471 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-3-Linux-aarch64.sh#036053e7e6e5866435bc1a11711b41293e5bf0776bb4aa9a7ea46d01f30eda31" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.9.1-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-3-Linux-x86_64.sh#6bec65fcb0c66596a5058c6767d25d89a537eb83ee84684ec0fa5a4fbfb32647" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.9.1-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-3-MacOSX-arm64.sh#751b360885e8de7a350e3484542ccbfe7ff3d55cce794255167991dfa7ed79e1" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 new file mode 100644 index 0000000000..d949df07f7 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py39_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-3-Linux-aarch64.sh#2cf395401906b6968cfd2bc5b522ad4dca40374987e790c4daa83f049d132841" "miniconda" verify_py39 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py39_25.9.1-3-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-3-Linux-x86_64.sh#0ac18f10d17ca918247b4606df82be38eba6e23380a7eddb25b47ef6ccdb920e" "miniconda" verify_py39 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py39_25.9.1-3-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-3-MacOSX-arm64.sh#f05dcd060e3915a0a3a9dece324d2eb88268fa251fff2fb63d48e232c5fab510" "miniconda" verify_py39 + ;; +* ) + { 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 From 0f7b8fa8eebed0379b2672e44ffceb22a19dd541 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 5 Dec 2025 20:42:25 +0300 Subject: [PATCH 1039/1324] sh-rehash: Fix erroneously executing rather than printing a command (#3369) --- libexec/pyenv-sh-rehash | 2 +- test/rehash.bats | 18 ++++++++++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-sh-rehash b/libexec/pyenv-sh-rehash index ab50346df0..470eda0754 100755 --- a/libexec/pyenv-sh-rehash +++ b/libexec/pyenv-sh-rehash @@ -11,7 +11,7 @@ shell="$(basename "${PYENV_SHELL:-$SHELL}")" # When pyenv shell integration is enabled, delegate to pyenv-rehash, # then tell the shell to empty its command lookup cache. -pyenv-rehash +echo "pyenv-rehash" case "$shell" in fish ) diff --git a/test/rehash.bats b/test/rehash.bats index 8afe87e67e..5505a7d823 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -110,13 +110,27 @@ SH @test "sh-rehash in bash" { create_executable "3.4" "python" PYENV_SHELL=bash run pyenv-sh-rehash - assert_success "hash -r 2>/dev/null || true" + assert_success "pyenv-rehash +hash -r 2>/dev/null || true" +} + +@test "sh-rehash in bash (integration)" { + create_executable "3.4" "python" + run eval "$(pyenv-sh-rehash)" + assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] } @test "sh-rehash in fish" { create_executable "3.4" "python" PYENV_SHELL=fish run pyenv-sh-rehash - assert_success "" + assert_success "pyenv-rehash" +} + +@test "sh-rehash in fish (integration)" { + command -v fish >/dev/null || skip "-- fish not installed" + create_executable "3.4" "python" + run fish -Nc "eval (pyenv-sh-rehash)" + assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] } From a6ea5b3179a7e4760092ee0f469b5e9566befc90 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 5 Dec 2025 20:57:07 +0300 Subject: [PATCH 1040/1324] Fix rehash --- libexec/pyenv-sh-rehash | 2 +- test/rehash.bats | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libexec/pyenv-sh-rehash b/libexec/pyenv-sh-rehash index 470eda0754..35a4992b31 100755 --- a/libexec/pyenv-sh-rehash +++ b/libexec/pyenv-sh-rehash @@ -11,7 +11,7 @@ shell="$(basename "${PYENV_SHELL:-$SHELL}")" # When pyenv shell integration is enabled, delegate to pyenv-rehash, # then tell the shell to empty its command lookup cache. -echo "pyenv-rehash" +echo "command pyenv rehash" case "$shell" in fish ) diff --git a/test/rehash.bats b/test/rehash.bats index 5505a7d823..860d9d791a 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -110,7 +110,7 @@ SH @test "sh-rehash in bash" { create_executable "3.4" "python" PYENV_SHELL=bash run pyenv-sh-rehash - assert_success "pyenv-rehash + assert_success "command pyenv rehash hash -r 2>/dev/null || true" } @@ -124,7 +124,7 @@ hash -r 2>/dev/null || true" @test "sh-rehash in fish" { create_executable "3.4" "python" PYENV_SHELL=fish run pyenv-sh-rehash - assert_success "pyenv-rehash" + assert_success "command pyenv rehash" } @test "sh-rehash in fish (integration)" { From 6cbce8616ea87565df922e7fe783040a728447ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Rom=C3=A1n?= Date: Fri, 5 Dec 2025 13:56:17 -0800 Subject: [PATCH 1041/1324] Add CPython 3.13.11, 3.14.2 (#3370) --- plugins/python-build/share/python-build/3.13.11 | 10 ++++++++++ plugins/python-build/share/python-build/3.13.11t | 2 ++ plugins/python-build/share/python-build/3.14.2 | 10 ++++++++++ plugins/python-build/share/python-build/3.14.2t | 2 ++ 4 files changed, 24 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.11 create mode 100644 plugins/python-build/share/python-build/3.13.11t create mode 100644 plugins/python-build/share/python-build/3.14.2 create mode 100644 plugins/python-build/share/python-build/3.14.2t diff --git a/plugins/python-build/share/python-build/3.13.11 b/plugins/python-build/share/python-build/3.13.11 new file mode 100644 index 0000000000..debfba0db3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.11 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.11" "https://www.python.org/ftp/python/3.13.11/Python-3.13.11.tar.xz#16ede7bb7cdbfa895d11b0642fa0e523f291e6487194d53cf6d3b338c3a17ea2" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.11" "https://www.python.org/ftp/python/3.13.11/Python-3.13.11.tgz#03cfedbe06ce21bc44ce09245e091a77f2fee9ec9be5c52069048a181300b202" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.11t b/plugins/python-build/share/python-build/3.13.11t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.11t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/3.14.2 b/plugins/python-build/share/python-build/3.14.2 new file mode 100644 index 0000000000..39a6379f9e --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.2 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.2" "https://www.python.org/ftp/python/3.14.2/Python-3.14.2.tar.xz#ce543ab854bc256b61b71e9b27f831ffd1bfd60a479d639f8be7f9757cf573e9" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.2" "https://www.python.org/ftp/python/3.14.2/Python-3.14.2.tgz#c609e078adab90e2c6bacb6afafacd5eaf60cd94cf670f1e159565725fcd448d" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.2t b/plugins/python-build/share/python-build/3.14.2t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.2t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From e805257c1fe4939da131a6aefa0915a4859f2f8e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 6 Dec 2025 00:58:03 +0300 Subject: [PATCH 1042/1324] 2.6.16 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 41830c018e..1b0a5b3054 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.6.16 +* rehash: Fix hanging for 60 seconds when shims directory is not writable due to Linux Landlock by @native-api in https://github.com/pyenv/pyenv/pull/3367 +* Add Miniconda3-25.9.1-3 by @binbjz in https://github.com/pyenv/pyenv/pull/3368 +* sh-rehash: Fix erroneously executing rather than printing a command by @native-api in https://github.com/pyenv/pyenv/pull/3369 +* Add CPython 3.13.11, 3.14.2 by @cesarcoatl in https://github.com/pyenv/pyenv/pull/3370 + ## Release v2.6.15 * Add CPython 3.13.10 by @jsirois in https://github.com/pyenv/pyenv/pull/3364 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 568dfc6952..5806df3e53 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.15" +version="2.6.16" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index cf7b95c8e2..752ae2a0b1 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.15" +PYTHON_BUILD_VERSION="2.6.16" OLDIFS="$IFS" From bdb050822021b8dfeef9bdb37d6515e8098b04b8 Mon Sep 17 00:00:00 2001 From: Jonathan Stein Date: Tue, 9 Dec 2025 12:18:20 -0600 Subject: [PATCH 1043/1324] Update requirements for the add_miniconda script At least under Python 3.14, this quickly fails without lxml[html_clean] installed explicitly. --- plugins/python-build/scripts/requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index a8fdb314a1..995ee3557d 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -1 +1,2 @@ requests-html +lxml[html_clean] From 70294ef6f12be1a91b353dccf5c78b26f5525a9c Mon Sep 17 00:00:00 2001 From: Jonathan Stein Date: Tue, 9 Dec 2025 12:23:51 -0600 Subject: [PATCH 1044/1324] Add miniforge3 25.9.1-0, 25.11.0-1 Adds latest miniforge releases 25.9.1-0, 25.11.0-1. Skips 25.11.0-0 due to a regression reported in the release notes of miniforge3-25.11.0-1. Ref: https://github.com/conda-forge/miniforge/releases/tag/25.11.0-1 --- plugins/python-build/scripts/add_miniforge.py | 1 + .../share/python-build/miniforge3-25.11.0-1 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-25.9.1-0 | 25 +++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-25.11.0-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-25.9.1-0 diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index d60c50368f..3003605c32 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -20,6 +20,7 @@ '22.11.1-1', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) '22.11.1-2', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) '25.3.0-0', #marked as prerelease, no Linux version + '25.11.0-0', #regression reported in constructor, re-released as 25.11.0-1 with hotfix bumping to constructor>=3.14 (was >=3.12, 3.13 implicit) ] install_script_fmt = """ diff --git a/plugins/python-build/share/python-build/miniforge3-25.11.0-1 b/plugins/python-build/share/python-build/miniforge3-25.11.0-1 new file mode 100644 index 0000000000..a539082421 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.11.0-1 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.11.0-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-aarch64.sh#43a3783f9e121088f1c92b131b4305b9ebf159424ad2543dfcfc0f1952b5e127" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.11.0-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-ppc64le.sh#8fb7a41bd2682381c48c7820608918e7d56f5390bc3be5705a0c1c536f607963" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.11.0-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-Linux-x86_64.sh#be1bad9d4e67a8753eb76fb4940e9a08036786675c7adf060627e55791bf110d" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.11.0-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-MacOSX-arm64.sh#b4992687abec8c4863fc079382509f0e07e4221fb9e185d7f6a3860449b4e46d" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.11.0-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.11.0-1/Miniforge3-25.11.0-1-MacOSX-x86_64.sh#7b78e8d20557fcc946585290a6177dc3d2e7d1b07f382175aad24b6355b21832" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-25.9.1-0 b/plugins/python-build/share/python-build/miniforge3-25.9.1-0 new file mode 100644 index 0000000000..9c59b23cb2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-25.9.1-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-25.9.1-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.9.1-0/Miniforge3-25.9.1-0-Linux-aarch64.sh#b2b223680807e8f407b67603f6a5a224452b7f0ce177bc6719f870040c3bfa98" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-25.9.1-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/25.9.1-0/Miniforge3-25.9.1-0-Linux-ppc64le.sh#89a6b1b761a94396921967939cfc0881efe08bda48fe9b40bbf4a134f8fcdd84" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-25.9.1-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.9.1-0/Miniforge3-25.9.1-0-Linux-x86_64.sh#07f64c1d908ae036e9f6a81f97704899311c0ae677d83980d664b9781d4cc5fc" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-25.9.1-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.9.1-0/Miniforge3-25.9.1-0-MacOSX-arm64.sh#414e21f6094fbf6cd69ad50c47d4630b5523e6b53fd6ff7df5fd9d0ee502eeff" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-25.9.1-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/25.9.1-0/Miniforge3-25.9.1-0-MacOSX-x86_64.sh#f12e25c92c9942219b6dd42d3cf0a2513d337b37d2954a8a84bee3d859632f41" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 4e7626721a66d66ac5ccd0acd6c2ce7cb8471f34 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Dec 2025 17:22:12 +0300 Subject: [PATCH 1045/1324] Delete the old issue template [no ci] --- .github/ISSUE_TEMPLATE.md | 26 -------------------------- 1 file changed, 26 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index 4097601a51..0000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,26 +0,0 @@ -Too many issues will kill our team's development velocity, drastically. -Make sure you have checked all steps below. - -### Prerequisite -* [ ] Make sure your problem is not listed in [the common build problems](https://github.com/pyenv/pyenv/wiki/Common-build-problems). -* [ ] Make sure no duplicated issue has already been reported in [the pyenv issues](https://github.com/pyenv/pyenv/issues). You should look for closed issues, too. -* [ ] Make sure you are not asking us to help solving your specific issue. - * GitHub issues is opened mainly for development purposes. If you want to ask someone to help solving your problem, go to some community site like [Gitter](https://gitter.im/yyuu/pyenv), [StackOverflow](https://stackoverflow.com/questions/tagged/pyenv), etc. -* [ ] Make sure your problem is not derived from packaging (e.g. [Homebrew](https://brew.sh)). - * Please refer to the package documentation for the installation issues, etc. -* [ ] Make sure your problem is not derived from plugins. - * This repository is maintaining `pyenv` and the default `python-build` plugin only. Please refrain from reporting issues of other plugins here. - -### Description -- [ ] Platform information (e.g. Ubuntu Linux 16.04): -- [ ] OS architecture (e.g. amd64): -- [ ] pyenv version: -- [ ] Python version: -- [ ] C Compiler information (e.g. gcc 7.3): -- [ ] Please attach the debug trace of the failing command as a gist: - * Run `env PYENV_DEBUG=1 2>&1 | tee trace.log` and attach `trace.log`. E.g. if you have a problem with installing Python, run `env PYENV_DEBUG=1 pyenv install -v 2>&1 | tee trace.log` (note the `-v` option to `pyenv install`). -- [ ] If you have a problem with installing Python, please also attach `config.log` from the build directory - * The build directory is reported after the "BUILD FAILED" message and is usually under `/tmp`. -- [ ] If the build succeeds but the problem is still with the build process (e.g. the resulting Python is missing a feature), please attach - * the debug trace from reinstalling the faulty version with `env PYENV_DEBUG=1 pyenv install -f -k -v 2>&1 | tee trace.log` - * `config.log` from the build directory. When using `pyenv install` with `-k` as per above, the build directory will be under `$PYENV_ROOT/sources`. From 293798582a905c4225d0222eaf048f353e600bb8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Dec 2025 17:51:26 +0300 Subject: [PATCH 1046/1324] CI: build: - EOL 3.9, + 3.13 --- .github/workflows/macos_build.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 543b46d966..60cc840cd6 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -10,11 +10,11 @@ jobs: fail-fast: false matrix: python-version: - - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" runs-on: macos-latest steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 99bf5fc671..00a7ffac76 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -10,11 +10,11 @@ jobs: fail-fast: false matrix: python-version: - - "3.9" - "3.10" - "3.11" - "3.12" - "3.13" + - "3.14" runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 From f19fe0f2be6014304cad03bd2ecb57a6a2f9c7d8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Dec 2025 17:51:51 +0300 Subject: [PATCH 1047/1324] CI: tests: + macos-15 --- .github/workflows/pyenv_tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 3269410618..2f55b51d95 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -13,6 +13,7 @@ jobs: - ubuntu-24.04 - ubuntu-22.04 - macos-15-intel + - macos-15 - macos-14 runs-on: ${{ matrix.os }} steps: From 9b85239875593d6cdbea230bb7fdddcf7974d9fe Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Dec 2025 17:52:53 +0300 Subject: [PATCH 1048/1324] CI: - commented-out code --- .github/workflows/macos_build.yml | 5 ----- .github/workflows/pyenv_tests.yml | 10 ---------- .github/workflows/ubuntu_build.yml | 5 ----- 3 files changed, 20 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 60cc840cd6..7223278cd3 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -18,11 +18,6 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v6 - # Normally, we would use the superbly maintained... - # - uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # ... but in the repo, we want to test pyenv builds on macOS - run: | brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd # https://github.com/pyenv/pyenv#installation diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 2f55b51d95..8e8794d5f2 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -18,16 +18,6 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 - # Normally, we would use the superbly maintained... - # - uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # ... but in the repo, we want to test pyenv builds on Ubuntu - # - run: | - # sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev \ - # libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev \ - # xz-utils tk-dev libffi-dev liblzma-dev python-openssl git - # https://github.com/pyenv/pyenv#installation - run: | if test "$RUNNER_OS" == "macOS"; then brew install coreutils fish diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 00a7ffac76..9ba4513dff 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -18,11 +18,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - # Normally, we would use the superbly maintained... - # - uses: actions/setup-python@v2 - # with: - # python-version: ${{ matrix.python-version }} - # ... but in the repo, we want to test pyenv builds on Ubuntu - run: | sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ From 4b33cb68b6b14b2017f48b339cf3dc7561135a82 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Dec 2025 18:04:15 +0300 Subject: [PATCH 1049/1324] CI: - Micropython-specific code from CPython-only branches --- .github/workflows/modified_scripts_build.yml | 62 +++++++------------- 1 file changed, 20 insertions(+), 42 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index ffbf0ba7cc..71dd3cb385 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -121,33 +121,22 @@ jobs: pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi pyenv global ${{ matrix.python-version }} - # Micropython doesn't support --version - run: | #print version - if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - python -c 'import sys; print(sys.version)' - else - python --version - python -m pip --version - fi - # Micropython doesn't support sys.executable, os.path, older versions even os + python --version + python -m pip --version - env: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | #check - if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 - python -c 'import sys; assert sys.implementation.name == "micropython"' - else - python -c 'if True: - import os, sys, os.path - correct_dir = os.path.join( - os.environ["PYENV_ROOT"], - "versions", - os.environ["EXPECTED_PYTHON"], - "bin") - assert os.path.dirname(sys.executable) == correct_dir' - fi + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS - run: | pyenv global system @@ -245,30 +234,19 @@ jobs: pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi pyenv global ${{ matrix.python-version }} - # Micropython doesn't support --version - run: | #print version - if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - python -c 'import sys; print(sys.version)' - else - python --version - python -m pip --version - fi - # Micropython doesn't support sys.executable, os.path, older versions even os + python --version + python -m pip --version - env: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | #check - if [[ "${{ matrix.python-version }}" == "micropython-"* ]]; then - [[ $(pyenv which python) == "${{ env.PYENV_ROOT }}/versions/${{ matrix.python-version }}/bin/python" ]] || exit 1 - python -c 'import sys; assert sys.implementation.name == "micropython"' - else - python -c 'if True: - import os, sys, os.path - correct_dir = os.path.join( - os.environ["PYENV_ROOT"], - "versions", - os.environ["EXPECTED_PYTHON"], - "bin") - assert os.path.dirname(sys.executable) == correct_dir' - fi + python -c 'if True: + import os, sys, os.path + correct_dir = os.path.join( + os.environ["PYENV_ROOT"], + "versions", + os.environ["EXPECTED_PYTHON"], + "bin") + assert os.path.dirname(sys.executable) == correct_dir' From dabaa901e9352e9250f6c1be029789d532161ccd Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 13 Dec 2025 18:07:37 +0300 Subject: [PATCH 1050/1324] CI: - Ubuntu 18.04 workaround --- .github/workflows/pyenv_tests.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 8e8794d5f2..f9e1092487 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -21,9 +21,6 @@ jobs: - run: | if test "$RUNNER_OS" == "macOS"; then brew install coreutils fish - elif [[ $(lsb_release -sr | awk -F. '{print $1}') -ge 20 ]]; then - # Ubuntu 18 has fish 2 which lacks many features that facilitate testing - sudo apt install fish -yq fi - run: pwd - env: From 91931a4dd92a0a35ccd4310165cc5b2eb534c61c Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 14 Dec 2025 22:48:46 +0300 Subject: [PATCH 1051/1324] miniconda3-latest: auto accept TOS (#3373) Since 14.07.2025, Anaconda requires accepting the new TOS upon installation that limit eligibility for free use --- plugins/python-build/share/python-build/miniconda3-latest | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/python-build/share/python-build/miniconda3-latest b/plugins/python-build/share/python-build/miniconda3-latest index edae374646..fc331a96d1 100644 --- a/plugins/python-build/share/python-build/miniconda3-latest +++ b/plugins/python-build/share/python-build/miniconda3-latest @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86" ) install_script "Miniconda3-latest-Linux-x86" "https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86.sh" "miniconda" verify_py3_latest From b50afe69a87c9715149fecc9fcedc93eae84f50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Edgar=20Ram=C3=ADrez=20Mondrag=C3=B3n?= Date: Tue, 16 Dec 2025 14:28:46 -0600 Subject: [PATCH 1052/1324] Add CPython 3.15.0a3 (#3374) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Edgar Ramírez-Mondragón --- .../python-build/share/python-build/{3.15.0a2 => 3.15.0a3} | 4 ++-- .../python-build/share/python-build/{3.15.0a2t => 3.15.0a3t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0a2 => 3.15.0a3} (61%) rename plugins/python-build/share/python-build/{3.15.0a2t => 3.15.0a3t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a2 b/plugins/python-build/share/python-build/3.15.0a3 similarity index 61% rename from plugins/python-build/share/python-build/3.15.0a2 rename to plugins/python-build/share/python-build/3.15.0a3 index 6d5a2847bf..d4f07bba57 100644 --- a/plugins/python-build/share/python-build/3.15.0a2 +++ b/plugins/python-build/share/python-build/3.15.0a3 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0a2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a2.tar.xz#d8a0a2f4a7f3d7090cf195e81814efe95f70554955557f40e149d8694a662751" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a3.tar.xz#6ab02cdac24505779877bb1d9189432d67e90ddf2a9b8b7b373ead54ac07b607" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0a2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a2.tgz#484924d5f963f3d4215ca50c13634b6a7067e9f273893145a6209fe7c93b78ff" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a3.tgz#a8afd71361baf8f02f459a4ab9b73eb4cdf2895991218b8418cf7ba49c96bef7" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0a2t b/plugins/python-build/share/python-build/3.15.0a3t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a2t rename to plugins/python-build/share/python-build/3.15.0a3t From 22b192913e9f14e1a56eb627147dcc7bae137a63 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 16 Dec 2025 23:30:42 +0300 Subject: [PATCH 1053/1324] 2.6.17 --- CHANGELOG.md | 5 +++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b0a5b3054..fd74e1c1a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Version History +## Release v2.6.17 +* Add miniforge 25.9.1-0, 25.11.0-1 by @13steinj in https://github.com/pyenv/pyenv/pull/3371 +* miniconda3-latest: auto accept TOS by @native-api in https://github.com/pyenv/pyenv/pull/3373 +* Add CPython 3.15.0a3 by @edgarrmondragon in https://github.com/pyenv/pyenv/pull/3374 + ## Release v2.6.16 * rehash: Fix hanging for 60 seconds when shims directory is not writable due to Linux Landlock by @native-api in https://github.com/pyenv/pyenv/pull/3367 * Add Miniconda3-25.9.1-3 by @binbjz in https://github.com/pyenv/pyenv/pull/3368 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5806df3e53..79ea6d983c 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.16" +version="2.6.17" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 752ae2a0b1..3071c6e0c7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.16" +PYTHON_BUILD_VERSION="2.6.17" OLDIFS="$IFS" From b25981335722e606a28c0ddd049dd08b68cbdaf1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 19 Dec 2025 20:20:20 +0300 Subject: [PATCH 1054/1324] tests: refactor: rename and consolidate create_executable() functions --- test/exec.bats | 44 +++++++++++------------------------- test/init.bats | 12 ++-------- test/latest.bats | 28 +++++++++-------------- test/pip-rehash.bats | 23 +++++++------------ test/rehash.bats | 31 ++++++++++---------------- test/test_helper.bash | 34 ++++++++++++++++++++++++++++ test/versions.bats | 12 ++-------- test/whence.bats | 15 ++++--------- test/which.bats | 52 +++++++++++++++++-------------------------- 9 files changed, 105 insertions(+), 146 deletions(-) diff --git a/test/exec.bats b/test/exec.bats index cf818dbee2..c1db5fbcf7 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -2,18 +2,6 @@ load test_helper -create_executable() { - name="${1?}" - shift 1 - bin="${PYENV_ROOT}/versions/${PYENV_VERSION}/bin" - mkdir -p "$bin" - { if [ $# -eq 0 ]; then cat - - else printf '%s\n' "$@" - fi - } | sed -Ee '1s/^ +//' > "${bin}/$name" - chmod +x "${bin}/$name" -} - @test "fails with invalid version" { bats_require_minimum_version 1.5.0 export PYENV_VERSION="3.4" @@ -38,8 +26,8 @@ EOF @test "completes with names of executables" { export PYENV_VERSION="3.4" - create_executable "fab" "#!/bin/sh" - create_executable "python" "#!/bin/sh" + create_alt_executable "fab" + create_alt_executable "python" pyenv-rehash run pyenv-completions exec @@ -65,7 +53,7 @@ SH @test "forwards all arguments" { export PYENV_VERSION="3.4" - create_executable "python" < "${PYENV_TEST_DIR}/python3" < "${bin}/$name" - chmod +x "${bin}/$name" -} - @test "creates shims and versions directories" { assert [ ! -d "${PYENV_ROOT}/shims" ] assert [ ! -d "${PYENV_ROOT}/versions" ] @@ -179,7 +171,7 @@ echo "\$PATH" } @test "outputs sh-compatible case syntax" { - create_executable pyenv-commands < "${bin}/$name" - chmod +x "${bin}/$name" -} - @test "read from installed" { - create_executable pyenv-versions < "${bin}/$1" - chmod +x "${bin}/$1" -} - copy_src_pyenvd() { mkdir -p "${PYENV_ROOT}" cp -r "${BATS_TEST_DIRNAME}/../pyenv.d" "${PYENV_ROOT}" @@ -16,8 +9,8 @@ copy_src_pyenvd() { @test "pip-rehash triggered when using 'pip'" { export PYENV_VERSION="3.7.14" - create_executable "example" - create_executable "pip" + create_alt_executable "example" + create_alt_executable "pip" copy_src_pyenvd run command -v example 2> /dev/null assert_failure @@ -29,8 +22,8 @@ copy_src_pyenvd() { @test "pip-rehash triggered when using 'pip3'" { export PYENV_VERSION="3.7.14" - create_executable "example" - create_executable "pip3" + create_alt_executable "example" + create_alt_executable "pip3" copy_src_pyenvd run command -v example 2> /dev/null assert_failure @@ -42,8 +35,8 @@ copy_src_pyenvd() { @test "pip-rehash triggered when using 'pip3.x'" { export PYENV_VERSION="3.7.14" - create_executable "example" - create_executable "pip3.7" + create_alt_executable "example" + create_alt_executable "pip3.7" copy_src_pyenvd run command -v example 2> /dev/null assert_failure @@ -55,8 +48,8 @@ copy_src_pyenvd() { @test "pip-rehash triggered when using 'python -m pip install'" { export PYENV_VERSION="3.7.14" - create_executable "example" - create_executable "python" + create_alt_executable "example" + create_alt_executable "python" copy_src_pyenvd run command -v example 2> /dev/null assert_failure diff --git a/test/rehash.bats b/test/rehash.bats index 860d9d791a..25cdd808b8 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -2,13 +2,6 @@ load test_helper -create_executable() { - local bin="${PYENV_ROOT}/versions/${1}/bin" - mkdir -p "$bin" - touch "${bin}/$2" - chmod +x "${bin}/$2" -} - @test "empty rehash" { assert [ ! -d "${PYENV_ROOT}/shims" ] run pyenv-rehash @@ -42,10 +35,10 @@ create_executable() { } @test "creates shims" { - create_executable "2.7" "python" - create_executable "2.7" "fab" - create_executable "3.4" "python" - create_executable "3.4" "py.test" + create_alt_executable_in_version "2.7" "python" + create_alt_executable_in_version "2.7" "fab" + create_alt_executable_in_version "3.4" "python" + create_alt_executable_in_version "3.4" "py.test" assert [ ! -e "${PYENV_ROOT}/shims/fab" ] assert [ ! -e "${PYENV_ROOT}/shims/python" ] @@ -68,8 +61,8 @@ OUT touch "${PYENV_ROOT}/shims/oldshim1" chmod +x "${PYENV_ROOT}/shims/oldshim1" - create_executable "3.4" "fab" - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "fab" + create_alt_executable_in_version "3.4" "python" run pyenv-rehash assert_success "" @@ -78,8 +71,8 @@ OUT } @test "binary install locations containing spaces" { - create_executable "dirname1 p247" "python" - create_executable "dirname2 preview1" "py.test" + create_alt_executable_in_version "dirname1 p247" "python" + create_alt_executable_in_version "dirname2 preview1" "py.test" assert [ ! -e "${PYENV_ROOT}/shims/python" ] assert [ ! -e "${PYENV_ROOT}/shims/py.test" ] @@ -108,28 +101,28 @@ SH } @test "sh-rehash in bash" { - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "python" PYENV_SHELL=bash run pyenv-sh-rehash assert_success "command pyenv rehash hash -r 2>/dev/null || true" } @test "sh-rehash in bash (integration)" { - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "python" run eval "$(pyenv-sh-rehash)" assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] } @test "sh-rehash in fish" { - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "python" PYENV_SHELL=fish run pyenv-sh-rehash assert_success "command pyenv rehash" } @test "sh-rehash in fish (integration)" { command -v fish >/dev/null || skip "-- fish not installed" - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "python" run fish -Nc "eval (pyenv-sh-rehash)" assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] diff --git a/test/test_helper.bash b/test/test_helper.bash index 0a760b2ff4..b28f3b1758 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -2,6 +2,7 @@ unset PYENV_VERSION unset PYENV_DIR setup() { + export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' if ! enable -f "${BATS_TEST_DIRNAME}"/../libexec/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 @@ -141,6 +142,39 @@ path_without() { echo "$path" } +create_path_executable() { + create_executable "${PYENV_TEST_DIR}/bin" "$@" +} + +create_alt_executable() { + create_alt_executable_in_version "${PYENV_VERSION}" "$@" +} + +create_alt_executable_in_version() { + local version="${1:?}" + shift 1 + create_executable "${PYENV_ROOT}/versions/$version/bin" "$@" +} + +create_executable() { + bin="${1:?}" + name="${2:?}" + shift 2 + mkdir -p "$bin" + local payload + # Bats doesn't redirect stdin + if [[ $# -eq 0 && ! -t 0 ]]; then + payload="$(cat -)" + else + payload="$(printf '%s\n' "$@")" + fi + if [[ $payload != "#!/"* ]]; then + payload="#!$BASH"$'\n'"$payload" + fi + echo "$payload" > "${bin}/$name" + chmod +x "${bin}/$name" +} + create_hook() { mkdir -p "${PYENV_HOOK_PATH}/$1" touch "${PYENV_HOOK_PATH}/$1/$2" diff --git a/test/versions.bats b/test/versions.bats index e14285fc32..58ab032cd7 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -22,14 +22,6 @@ stub_system_python() { touch "$stub" && chmod +x "$stub" } -create_executable() { - local name="$1" - local bin="${PYENV_TEST_DIR}/bin" - mkdir -p "$bin" - sed -Ee '1s/^ +//' > "${bin}/$name" - chmod +x "${bin}/$name" -} - @test "no versions installed" { stub_system_python assert [ ! -d "${PYENV_ROOT}/versions" ] @@ -199,7 +191,7 @@ OUT create_version "1.9.0" create_version "1.53.0" create_version "1.218.0" - create_executable sort </dev/null if [ "\$1" == "--version-sort" ]; then @@ -223,7 +215,7 @@ OUT create_version "1.9.0" create_version "1.53.0" create_version "1.218.0" - create_executable sort < "${PYENV_ROOT}/version" <<<"3.4" - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "python" mkdir -p "$PYENV_TEST_DIR" cd "$PYENV_TEST_DIR" @@ -165,7 +153,7 @@ SH 2.7 3.4 EOF - create_executable "3.4" "python" + create_alt_executable_in_version "3.4" "python" mkdir -p "$PYENV_TEST_DIR" cd "$PYENV_TEST_DIR" @@ -175,7 +163,7 @@ EOF } @test "resolves pyenv-latest prefixes" { - create_executable "3.4.2" "python" + create_alt_executable_in_version "3.4.2" "python" PYENV_VERSION=3.4 run pyenv-which python assert_success "${PYENV_ROOT}/versions/3.4.2/bin/python" @@ -187,7 +175,7 @@ echo version=\$version exit ! - create_executable "3.4.2" "python" + create_alt_executable_in_version "3.4.2" "python" PYENV_VERSION=3.4 run pyenv-which python assert_success "version=3.4.2" @@ -195,9 +183,9 @@ exit @test "skip advice supresses error messages" { bats_require_minimum_version 1.5.0 - create_executable "2.7" "python" - create_executable "3.3" "py.test" - create_executable "3.4" "py.test" + create_alt_executable_in_version "2.7" "python" + create_alt_executable_in_version "3.3" "py.test" + create_alt_executable_in_version "3.4" "py.test" PYENV_VERSION=2.7 run -127 pyenv-which py.test --skip-advice assert_failure From 74188359086b17801d21900a166ac39d008da286 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 19 Dec 2025 00:28:32 +0300 Subject: [PATCH 1055/1324] Prevent infinite loop if a shim is linked and called from a nonstandard location with "system" active --- libexec/pyenv-exec | 8 ++++++ libexec/pyenv-rehash | 4 +++ libexec/pyenv-which | 24 ++++++++++------- test/exec.bats | 23 ++++++++++++++++ test/rehash.bats | 25 +++++++++++++++++ test/shims-linked-from-elsewhere.bats | 39 +++++++++++++++++++++++++++ test/test_helper.bash | 12 ++++++--- test/which.bats | 26 ++++++++++++++++++ 8 files changed, 148 insertions(+), 13 deletions(-) create mode 100644 test/shims-linked-from-elsewhere.bats diff --git a/libexec/pyenv-exec b/libexec/pyenv-exec index 6ed5ac208b..2368bdd359 100755 --- a/libexec/pyenv-exec +++ b/libexec/pyenv-exec @@ -29,6 +29,14 @@ if [ -z "$PYENV_COMMAND" ]; then exit 1 fi +if [[ -n $_PYENV_SHIM_PATH ]]; then + PROGRAM="$(echo "$PYENV_COMMAND" | tr a-z- A-Z_ | sed 's/[^A-Z0-9_]/_/g')" + NR_PYENV_SHIM_PATHS_PROGRAM="_PYENV_SHIM_PATHS_${PROGRAM}" + export -- "$NR_PYENV_SHIM_PATHS_PROGRAM=$_PYENV_SHIM_PATH${!NR_PYENV_SHIM_PATHS_PROGRAM:+:${!NR_PYENV_SHIM_PATHS_PROGRAM}}" + unset PROGRAM NR_PYENV_SHIM_PATHS_PROGRAM + unset _PYENV_SHIM_PATH +fi + PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")" PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}" export PYENV_VERSION diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 745cfb8eb9..61000ff651 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -82,6 +82,10 @@ set -e program="\${0##*/}" export PYENV_ROOT="$PYENV_ROOT" +SHIM_PATH=\${0%/*} +if [[ \$SHIM_PATH != "$PYENV_ROOT/shims" ]]; then + export _PYENV_SHIM_PATH="\$SHIM_PATH" +fi exec "$(command -v pyenv)" exec "\$program" "\$@" SH chmod +x "$PROTOTYPE_SHIM_PATH" diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 9ff3ddae38..0ebf82193b 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -42,15 +42,19 @@ done remove_from_path() { - local path_to_remove="$1" - local path_before + local -a paths_to_remove + IFS=: paths_to_remove=($1) + local path_to_remove path_before local result=":${PATH//\~/$HOME}:" - while [ "$path_before" != "$result" ]; do - path_before="$result" - result="${result//:$path_to_remove:/:}" + for path_to_remove in "${paths_to_remove[@]}"; do + while true; do + path_before="$result" + result="${result//:$path_to_remove:/:}" + if [[ ${#path_before} == "${#result}" ]]; then break; fi + done done - result="${result%:}" - echo "${result#:}" + result="${result:1:${#result}-2}" + echo "$result" } if [ -z "$PYENV_COMMAND" ]; then @@ -66,8 +70,10 @@ declare -a nonexistent_versions for version in "${versions[@]}" "$system"; do if [ "$version" = "system" ]; then - PATH="$(remove_from_path "${PYENV_ROOT}/shims")" - PYENV_COMMAND_PATH="$(command -v "$PYENV_COMMAND" || true)" + PROGRAM="$(echo "$PYENV_COMMAND" | tr a-z- A-Z_ | sed 's/[^A-Z0-9_]/_/g')" + NR_CUSTOM_SHIM_PATHS="_PYENV_SHIM_PATHS_$PROGRAM" + SEARCH_PATH="$(remove_from_path "${PYENV_ROOT}/shims${!NR_CUSTOM_SHIM_PATHS:+:${!NR_CUSTOM_SHIM_PATHS}}")" + PYENV_COMMAND_PATH="$(PATH="$SEARCH_PATH" command -v "$PYENV_COMMAND" || true)" else # $version may be a prefix to be resolved by pyenv-latest version_path="$(pyenv-prefix "${version}" 2>/dev/null)" || \ diff --git a/test/exec.bats b/test/exec.bats index c1db5fbcf7..ff49912bea 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -116,3 +116,26 @@ OUT PYENV_VERSION=system:custom run pyenv-exec python3 assert_success "$PATH" } + +@test "sets/adds to _PYENV_SHIM_PATHS_{PROGRAM} when _PYENV_SHIM_PATH is set, unsets _PYENV_SHIM_PATH" { + progname='123;wacky-prog.name ^%$#' + envvarname="_PYENV_SHIM_PATHS_123_WACKY_PROG_NAME_____" + create_path_executable "$progname" </dev/null || true" assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] } + +@test "shim sets _PYENV_SHIM_PATH when linked from elsewhere" { + export PYENV_VERSION="custom" + create_alt_executable python3 + #must stub pyenv before rehash 'cuz the path is hardcoded into shims + create_stub pyenv </dev/null | grep ^XDG_ | cut -d= -f1`; do unset "$xdg_var"; done unset xdg_var @@ -128,7 +128,7 @@ path_without() { if [ "$found" != "${PYENV_ROOT}/shims" ]; then alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" mkdir -p "$alt" - for util in bash head cut readlink greadlink; do + for util in bash head cut readlink greadlink tr sed; do if [ -x "${found}/$util" ]; then ln -s "${found}/$util" "${alt}/$util" fi @@ -156,9 +156,13 @@ create_alt_executable_in_version() { create_executable "${PYENV_ROOT}/versions/$version/bin" "$@" } +create_stub() { + create_executable "${BATS_TEST_TMPDIR}/stubs" "$@" +} + create_executable() { - bin="${1:?}" - name="${2:?}" + local bin="${1:?}" + local name="${2:?}" shift 2 mkdir -p "$bin" local payload diff --git a/test/which.bats b/test/which.bats index 75601b0ca4..e54c170418 100644 --- a/test/which.bats +++ b/test/which.bats @@ -193,3 +193,29 @@ exit pyenv: py.test: command not found OUT } + +@test "excludes paths in _PYENV_SHIM_PATHS_{PROGRAM} from search only for PROGRAM" { + progname='123;wacky-prog.name ^%$#' + envvarname="_PYENV_SHIM_PATHS_123_WACKY_PROG_NAME_____" + create_path_executable "$progname" + + for dir_ in "$BATS_TEST_TMPDIR/alt-path"{1,2}; do + mkdir -p "$dir_" + ln -s "${PYENV_TEST_DIR}/bin/$progname" "$dir_/$progname" + eval 'export '"$envvarname"'="$dir_${'"$envvarname"':+:$'"$envvarname"'}"' + PATH="$dir_:$PATH" + done + create_executable "$dir_" "normal_program" + + run pyenv-which "$progname" + assert_success + assert_output < Date: Sat, 20 Dec 2025 09:31:05 +0300 Subject: [PATCH 1056/1324] tests: refactor: migrate to newly-added create_stub() --- test/init.bats | 10 ++-------- test/latest.bats | 36 ++++++++++-------------------------- 2 files changed, 12 insertions(+), 34 deletions(-) diff --git a/test/init.bats b/test/init.bats index a6845fe45a..2b96324957 100755 --- a/test/init.bats +++ b/test/init.bats @@ -2,10 +2,6 @@ load test_helper -_setup() { - export PATH="${PYENV_TEST_DIR}/bin:$PATH" -} - @test "creates shims and versions directories" { assert [ ! -d "${PYENV_ROOT}/shims" ] assert [ ! -d "${PYENV_ROOT}/versions" ] @@ -171,16 +167,14 @@ echo "\$PATH" } @test "outputs sh-compatible case syntax" { - create_path_executable pyenv-commands < Date: Sat, 20 Dec 2025 21:57:39 +0300 Subject: [PATCH 1057/1324] tests: fix integration tests for Bash and Fish --- test/rehash.bats | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/rehash.bats b/test/rehash.bats index cda2a0743e..f7462f0485 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -109,7 +109,7 @@ hash -r 2>/dev/null || true" @test "sh-rehash in bash (integration)" { create_alt_executable_in_version "3.4" "python" - run eval "$(pyenv-sh-rehash)" + PYENV_SHELL=bash run eval "$(pyenv-sh-rehash)" assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] } @@ -123,7 +123,7 @@ hash -r 2>/dev/null || true" @test "sh-rehash in fish (integration)" { command -v fish >/dev/null || skip "-- fish not installed" create_alt_executable_in_version "3.4" "python" - run fish -Nc "eval (pyenv-sh-rehash)" + PYENV_SHELL=fish fish -Nc "source (pyenv-sh-rehash | psub)" assert_success assert [ -x "${PYENV_ROOT}/shims/python" ] } From aeea3ac825cd667cc9c24e8fb405f6b78251491e Mon Sep 17 00:00:00 2001 From: Florian Blanchet Date: Sun, 21 Dec 2025 04:33:19 +0200 Subject: [PATCH 1058/1324] Add PowerShell support (#2749) Co-authored-by: Ivan Pozdeev Co-authored-by: Ivan Pozdeev --- README.md | 16 +++++++++- completions/pyenv.pwsh | 17 ++++++++++ libexec/pyenv-init | 70 ++++++++++++++++++++++++++++++++++++++--- libexec/pyenv-sh-rehash | 12 +++++-- libexec/pyenv-sh-shell | 16 ++++++++++ test/init.bats | 66 ++++++++++++++++++++++++++++++++++++++ test/rehash.bats | 20 ++++++++++++ test/shell.bats | 28 +++++++++++++++++ test/test_helper.bash | 10 ++++-- 9 files changed, 245 insertions(+), 10 deletions(-) create mode 100644 completions/pyenv.pwsh diff --git a/README.md b/README.md index 5d43b41572..f43c4aa164 100644 --- a/README.md +++ b/README.md @@ -271,6 +271,20 @@ See [Advanced configuration](#advanced-configuration) for details and more confi
+#### Microsoft PowerShell + +
+ + Add the commands to `$profile.CurrentUserAllHosts` by running the following in your terminal: + + ~~~ pwsh + echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' >> $profile.CurrentUserAllHosts + echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) { + $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' >> $profile.CurrentUserAllHosts + echo 'iex ((pyenv init -) -join "`n")' >> $profile.CurrentUserAllHosts + ~~~ + +
### C. Restart your shell ---- @@ -689,7 +703,7 @@ opposed to this idea. Here's what `eval "$(pyenv init -)"` actually does: 3. **Installs autocompletion.** This is entirely optional but pretty useful. Sourcing `/completions/pyenv.bash` will set that - up. There are also completions for Zsh and Fish. + up. There are also completions for Zsh, Fish and PowerShell. 4. **Rehashes shims.** From time to time you'll need to rebuild your shim files. Doing this on init makes sure everything is up to diff --git a/completions/pyenv.pwsh b/completions/pyenv.pwsh new file mode 100644 index 0000000000..f422f468a4 --- /dev/null +++ b/completions/pyenv.pwsh @@ -0,0 +1,17 @@ +$scriptblock = { + param($wordToComplete, $commandAst, $cursorPosition) + $words = $commandAst.ToString() + if ( $wordToComplete ) { + $matches = (($words[0..$cursorPosition] -join '') | Select-String -Pattern "\s+" -AllMatches).Matches + if ( $matches ) { + $cursorPosition = $matches[-1].Index - 1 + } + } + $words = $words[0..$cursorPosition] -join '' -split "\s+" + if ( $words.Count -ge 2 ) { + pyenv completions $words[1] | where { $_ -match $wordToComplete } + } else { + pyenv commands | where { $_ -match $wordToComplete } + } +} +Register-ArgumentCompleter -Native -CommandName pyenv -ScriptBlock $scriptblock diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 6341b655c7..757a443fa6 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -15,6 +15,7 @@ if [ "$1" = "--complete" ]; then echo bash echo fish echo ksh + echo pwsh echo zsh exit fi @@ -102,6 +103,10 @@ function detect_profile() { profile_explain="~/.bash_profile if it exists, otherwise ~/.profile" rc='~/.bashrc' ;; + pwsh ) + profile='~/.config/powershell/profile.ps1' + rc='~/.config/powershell/profile.ps1' + ;; zsh ) profile='~/.zprofile' rc='~/.zshrc' @@ -150,6 +155,15 @@ function help_() { echo 'pyenv init - fish | source' echo ;; + pwsh ) + echo '# Load pyenv automatically by appending' + echo "# the following to $profile :" + echo + echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' + echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) {' + echo ' $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' + echo 'iex ((pyenv init -) -join "`n")' + ;; * ) echo '# Load pyenv automatically by appending' echo -n "# the following to " @@ -186,6 +200,11 @@ function print_path() { print_path_prepend_shims echo 'end' ;; + pwsh ) + echo 'if ( $Env:PATH -notmatch "'"${PYENV_ROOT}/shims"'" ) {' + print_path_prepend_shims + echo '}' + ;; * ) echo 'if [[ ":$PATH:" != *'\':"${PYENV_ROOT}"/shims:\''* ]]; then' print_path_prepend_shims @@ -199,6 +218,10 @@ function print_path() { echo 'set -eg PATH[$pyenv_index]; end; set -e pyenv_index' print_path_prepend_shims ;; + pwsh ) + echo '$Env:PATH="$(($Env:PATH -split '"':'"' | where { -not ($_ -match '"'${PYENV_ROOT}/shims'"') }) -join '"':'"')"' + print_path_prepend_shims + ;; * ) # Some distros (notably Debian-based) set Bash's SSH_SOURCE_BASHRC compilation option # that makes it source `bashrc` under SSH even when not interactive. @@ -223,6 +246,9 @@ function print_path_prepend_shims() { fish ) echo 'set -gx PATH '\'"${PYENV_ROOT}/shims"\'' $PATH' ;; + pwsh ) + echo '$Env:PATH="'"${PYENV_ROOT}"'/shims:$Env:PATH"' + ;; * ) echo 'export PATH="'"${PYENV_ROOT}"'/shims:${PATH}"' ;; @@ -234,6 +260,9 @@ function print_env() { fish ) echo "set -gx PYENV_SHELL $shell" ;; + pwsh ) + echo '$Env:PYENV_SHELL="'"$shell"'"' + ;; * ) echo "export PYENV_SHELL=$shell" ;; @@ -243,13 +272,27 @@ function print_env() { function print_completion() { completion="${0%/*/*}/completions/pyenv.${shell}" if [ -r "$completion" ]; then - echo "source '$completion'" + case "$shell" in + pwsh ) + echo "iex (gc $completion -Raw)" + ;; + * ) + echo "source '$completion'" + ;; + esac fi } function print_rehash() { if [ -z "$no_rehash" ]; then - echo 'command pyenv rehash 2>/dev/null' + case "$shell" in + pwsh ) + echo '& pyenv rehash 2>/dev/null' + ;; + * ) + echo 'command pyenv rehash 2>/dev/null' + ;; + esac fi } @@ -270,6 +313,25 @@ function print_shell_function() { end end' ;; + pwsh ) + cat </dev/null || true" diff --git a/libexec/pyenv-sh-shell b/libexec/pyenv-sh-shell index 51352e1d9f..289ba424b8 100755 --- a/libexec/pyenv-sh-shell +++ b/libexec/pyenv-sh-shell @@ -48,6 +48,9 @@ if [ "$versions" = "--unset" ]; then echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"' echo "set -e PYENV_VERSION" ;; + pwsh ) + echo '$Env:PYENV_VERSION, $Env:PYENV_VERSION_OLD = $null, $Env:PYENV_VERSION' + ;; * ) echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"' echo "unset PYENV_VERSION" @@ -74,6 +77,16 @@ else echo "pyenv: PYENV_VERSION_OLD is not set" >&2 false end +EOS + ;; + pwsh ) + cat </dev/null; then echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"' echo "set -gx PYENV_VERSION \"$version\"" ;; + pwsh ) + echo '$Env:PYENV_VERSION, $Env:PYENV_VERSION_OLD = "'"${version}"'", $Env:PYENV_VERSION' + ;; * ) echo 'PYENV_VERSION_OLD="${PYENV_VERSION-}"' echo "export PYENV_VERSION=\"${version}\"" diff --git a/test/init.bats b/test/init.bats index 2b96324957..85ef01ec57 100755 --- a/test/init.bats +++ b/test/init.bats @@ -62,6 +62,19 @@ OUT assert_line 'pyenv init - fish | source' } +@test "setup shell completions (pwsh)" { + root="$(cd $BATS_TEST_DIRNAME/.. && pwd)" + run pyenv-init - pwsh + assert_success + assert_line "iex (gc ${root}/completions/pyenv.pwsh -Raw)" +} + +@test "pwsh instructions" { + run pyenv-init pwsh + assert [ "$status" -eq 1 ] + assert_line 'iex ((pyenv init -) -join "`n")' +} + @test "shell detection for installer" { run pyenv-init --detect-shell assert_success @@ -88,6 +101,13 @@ OUT assert_line "set -gx PATH '${PYENV_ROOT}/shims' \$PATH" } +@test "adds shims to PATH (pwsh)" { + export PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" + run pyenv-init - pwsh + assert_success + assert_line '$Env:PATH="'${PYENV_ROOT}'/shims:$Env:PATH"' +} + @test "removes existing shims from PATH" { OLDPATH="$PATH" export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" @@ -112,6 +132,19 @@ echo "\$PATH" assert_output "${PYENV_ROOT}/shims:${BATS_TEST_DIRNAME}/nonexistent:${OLDPATH//${PYENV_ROOT}\/shims:/}" } +@test "removes existing shims from PATH (pwsh)" { + command -v pwsh >/dev/null || skip "-- pwsh not installed" + OLDPATH="$PATH" + export PATH="${BATS_TEST_DIRNAME}/nonexistent:${PYENV_ROOT}/shims:$PATH" + run pwsh -noni -c - </dev/null || skip "-- pwsh not installed" + PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:/bin:/usr/local/bin" + run pwsh -nop -c - </dev/null || skip "-- pwsh not installed" + PATH="${BATS_TEST_DIRNAME}/../libexec:/usr/bin:${PYENV_ROOT}/shims:/bin:/usr/local/bin" + run pwsh -nop -c - </dev/null || true" assert [ -x "${PYENV_ROOT}/shims/python" ] } +@test "sh-rehash in pwsh" { + create_alt_executable_in_version "3.4" "python" + PYENV_SHELL=pwsh run pyenv-sh-rehash + assert_success "& (get-command pyenv -commandtype application) rehash" +} + +@test "sh-rehash in pwsh (integration)" { + command -v pwsh >/dev/null || skip "-- pwsh not installed" + assert [ ! -x "${PYENV_ROOT}/shims/python" ] + create_alt_executable_in_version "3.4" "python" + run pwsh -nop -c -<<'!' +$ErrorActionPreference = "Stop" +$PSNativeCommandUseErrorActionPreference = $true +iex ((& pyenv init - pwsh) -join "`n") +& pyenv rehash +! + assert_success "" + assert [ -x "${PYENV_ROOT}/shims/python" ] +} + @test "shim sets _PYENV_SHIM_PATH when linked from elsewhere" { export PYENV_VERSION="custom" create_alt_executable python3 diff --git a/test/shell.bats b/test/shell.bats index daa5744b37..e20df5616d 100644 --- a/test/shell.bats +++ b/test/shell.bats @@ -31,6 +31,11 @@ load test_helper assert_success 'echo "$PYENV_VERSION"' } +@test "shell version (pwsh)" { + PYENV_SHELL=pwsh PYENV_VERSION="1.2.3" run pyenv-sh-shell + assert_success 'echo "$PYENV_VERSION"' +} + @test "shell revert" { PYENV_SHELL=bash run pyenv-sh-shell - assert_success @@ -43,6 +48,12 @@ load test_helper assert_line 0 'if set -q PYENV_VERSION_OLD' } +@test "shell revert (pwsh)" { + PYENV_SHELL=pwsh run pyenv-sh-shell - + assert_success + assert_line 0 'if ( Get-Item -Path Env:\PYENV_VERSION* ) {' +} + @test "shell unset" { PYENV_SHELL=bash run pyenv-sh-shell --unset assert_success @@ -61,6 +72,14 @@ set -e PYENV_VERSION OUT } +@test "shell unset (pwsh)" { + PYENV_SHELL=pwsh run pyenv-sh-shell --unset + assert_success + assert_output </dev/null | grep ^XDG_ | cut -d= -f1`; do unset "$xdg_var"; done unset xdg_var + # Workaround for Powershell. When tests are run from a terminal, + # and running a script fron a here-document, + # Powershell 7.5.4 erroneously prints ANSI escape sequences + # even if its output is redirected, breaking the comparison logic + export NO_COLOR=1 + # If test specific setup exist, run it if [[ $(type -t _setup) == function ]];then _setup @@ -67,8 +73,8 @@ assert_failure() { assert_equal() { if [ "$1" != "$2" ]; then - { echo "expected: $1" - echo "actual: $2" + { echo "expected: \`$1'" + echo "actual: \`$2'" } | flunk fi } From a944da76c07e92ea26a4552b78504ac67dedb91c Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 21 Dec 2025 06:38:46 +0300 Subject: [PATCH 1059/1324] rehash: support BSD mktemp (#3376) macOS 12 `mktemp' doesn't support `-p` --- libexec/pyenv-rehash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 61000ff651..3dc7c291cc 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -52,7 +52,7 @@ while (( SECONDS <= start + ${PYENV_REHASH_TIMEOUT:-60} )); do #So check for writablity by trying to write to a different file, # in a way that taxes the usual use case as little as possible. if [[ -z $tested_for_other_write_errors ]]; then - ( t="$(mktemp -p "$SHIM_PATH")" && rm "$t" ) && tested_for_other_write_errors=1 || + ( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm "$t" ) && tested_for_other_write_errors=1 || { echo "pyenv: cannot rehash: $SHIM_PATH isnt writable" >&2; break; } fi # POSIX sleep(1) doesn't provide subsecond precision, but many others do From aa6c9b9694b2c2ce69d06ab68c46da52d32d9d34 Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 21 Dec 2025 07:21:30 +0300 Subject: [PATCH 1060/1324] init: don't silence automatic rehash; rehash: report final error but not provisional ones (#3377) --- libexec/pyenv-init | 4 ++-- libexec/pyenv-rehash | 28 +++++++++++++++++----------- test/init.bats | 4 ++-- test/rehash.bats | 8 ++++++-- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 757a443fa6..293f988147 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -287,10 +287,10 @@ function print_rehash() { if [ -z "$no_rehash" ]; then case "$shell" in pwsh ) - echo '& pyenv rehash 2>/dev/null' + echo '& pyenv rehash' ;; * ) - echo 'command pyenv rehash 2>/dev/null' + echo 'command pyenv rehash' ;; esac fi diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 3dc7c291cc..7ef7bf202e 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -10,6 +10,8 @@ PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim" # Create the shims directory if it doesn't already exist. mkdir -p "$SHIM_PATH" +declare last_acquire_error + acquire_lock() { # Ensure only one instance of pyenv-rehash is running at a time by # setting the shell's `noclobber` option and attempting to write to @@ -17,15 +19,11 @@ acquire_lock() { # to stderr and exit with a non-zero status. local ret set -o noclobber - echo > "$PROTOTYPE_SHIM_PATH" 2>| /dev/null || ret=1 + last_acquire_error="$( { ( echo -n > "$PROTOTYPE_SHIM_PATH"; ) 2>&1 1>&3 3>&1-; } 3>&1)" || ret=1 set +o noclobber [ -z "${ret}" ] } -# If we were able to obtain a lock, register a trap to clean up the -# prototype shim when the process exits. -trap release_lock EXIT - remove_prototype_shim() { rm -f "$PROTOTYPE_SHIM_PATH" } @@ -39,11 +37,17 @@ if [ ! -w "$SHIM_PATH" ]; then exit 1 fi -unset acquired -start=$SECONDS -while (( SECONDS <= start + ${PYENV_REHASH_TIMEOUT:-60} )); do - if acquire_lock 2>/dev/null; then +declare acquired tested_for_other_write_errors +declare start=$SECONDS +PYENV_REHASH_TIMEOUT=${PYENV_REHASH_TIMEOUT:-60} +while (( SECONDS <= start + PYENV_REHASH_TIMEOUT )); do + if acquire_lock; then acquired=1 + + # If we were able to obtain a lock, register a trap to clean up the + # prototype shim when the process exits. + trap release_lock EXIT + break else #Landlock sandbox subsystem in the Linux kernel returns false information in access() as of 6.14.0, @@ -53,7 +57,7 @@ while (( SECONDS <= start + ${PYENV_REHASH_TIMEOUT:-60} )); do # in a way that taxes the usual use case as little as possible. if [[ -z $tested_for_other_write_errors ]]; then ( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm "$t" ) && tested_for_other_write_errors=1 || - { echo "pyenv: cannot rehash: $SHIM_PATH isnt writable" >&2; break; } + { echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2; break; } fi # POSIX sleep(1) doesn't provide subsecond precision, but many others do sleep 0.1 2>/dev/null || sleep 1 @@ -62,7 +66,9 @@ done if [ -z "${acquired}" ]; then if [[ -n $tested_for_other_write_errors ]]; then - echo "pyenv: cannot rehash: $PROTOTYPE_SHIM_PATH exists" >&2 + echo "pyenv: cannot rehash: couldn't acquire lock"\ + "$PROTOTYPE_SHIM_PATH for $PYENV_REHASH_TIMEOUT seconds. Last error message:" >&2 + echo "$last_acquire_error" >&2 fi exit 1 fi diff --git a/test/init.bats b/test/init.bats index 85ef01ec57..746b176f8e 100755 --- a/test/init.bats +++ b/test/init.bats @@ -14,13 +14,13 @@ load test_helper @test "auto rehash" { run pyenv-init - assert_success - assert_line "command pyenv rehash 2>/dev/null" + assert_line "command pyenv rehash" } @test "auto rehash for --path" { run pyenv-init --path assert_success - assert_line "command pyenv rehash 2>/dev/null" + assert_line "command pyenv rehash" } @test "setup shell completions" { diff --git a/test/rehash.bats b/test/rehash.bats index c878a3da0e..e8edf6759f 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -21,8 +21,12 @@ load test_helper export PYENV_REHASH_TIMEOUT=1 mkdir -p "${PYENV_ROOT}/shims" touch "${PYENV_ROOT}/shims/.pyenv-shim" - run pyenv-rehash - assert_failure "pyenv: cannot rehash: ${PYENV_ROOT}/shims/.pyenv-shim exists" + #avoid failure due to a localized error message + LANG=C run pyenv-rehash + assert_failure < Date: Wed, 24 Dec 2025 08:00:09 +0100 Subject: [PATCH 1061/1324] pyenv launcher: introduce and export _PYENV_INSTALL_PREFIX (#3334) provides a reliable way for Pyenv code to locate other parts of Pyenv code that are not under `PYENV_ROOT` * tests: Work with Git entirely in a test repo Co-authored-by: Ivan Pozdeev --- libexec/pyenv | 16 ++++++++++------ libexec/pyenv-exec | 1 + libexec/pyenv-init | 2 +- plugins/python-build/bin/pyenv-install | 8 ++++---- plugins/python-build/test/pyenv.bats | 12 ++++++++---- test/--version.bats | 12 +++++------- test/init.bats | 6 ++---- test/test_helper.bash | 5 +++-- 8 files changed, 34 insertions(+), 28 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index a4b0c3aed4..9a7154f42f 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -76,23 +76,27 @@ export PYENV_DIR shopt -s nullglob -bin_path="$(abs_dirname "$0")" -for plugin_bin in "${bin_path%/*}"/plugins/*/bin; do +_PYENV_INSTALL_PREFIX="$(abs_dirname "$0")" +_PYENV_INSTALL_PREFIX="${_PYENV_INSTALL_PREFIX%/*}" + +export _PYENV_INSTALL_PREFIX + +for plugin_bin in "${_PYENV_INSTALL_PREFIX}"/plugins/*/bin; do PATH="${plugin_bin}:${PATH}" done # PYENV_ROOT can be set to anything, so it may happen to be equal to the base path above, # resulting in duplicate PATH entries -if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then +if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then for plugin_bin in "${PYENV_ROOT}"/plugins/*/bin; do PATH="${plugin_bin}:${PATH}" done fi -export PATH="${bin_path}:${PATH}" +export PATH="${_PYENV_INSTALL_PREFIX}/libexec:${PATH}" PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d" -if [ "${bin_path%/*}" != "$PYENV_ROOT" ]; then +if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then # Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT - PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${bin_path%/*}/pyenv.d" + PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${_PYENV_INSTALL_PREFIX}/pyenv.d" fi PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:/usr/etc/pyenv.d:/usr/local/etc/pyenv.d:/etc/pyenv.d:/usr/lib/pyenv/hooks" for plugin_hook in "${PYENV_ROOT}/plugins/"*/etc/pyenv.d; do diff --git a/libexec/pyenv-exec b/libexec/pyenv-exec index 2368bdd359..d0f6d07163 100755 --- a/libexec/pyenv-exec +++ b/libexec/pyenv-exec @@ -39,6 +39,7 @@ fi PYENV_COMMAND_PATH="$(pyenv-which "$PYENV_COMMAND")" PYENV_BIN_PATH="${PYENV_COMMAND_PATH%/*}" + export PYENV_VERSION OLDIFS="$IFS" diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 293f988147..36fbf9602a 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -270,7 +270,7 @@ function print_env() { } function print_completion() { - completion="${0%/*/*}/completions/pyenv.${shell}" + completion="${_PYENV_INSTALL_PREFIX}/completions/pyenv.${shell}" if [ -r "$completion" ]; then case "$shell" in pwsh ) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 778489b7ed..508e8a24e8 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -256,7 +256,6 @@ for DEFINITION in "${DEFINITIONS[@]}"; do # Display a more helpful message if the definition wasn't found. if [ "$STATUS" == "2" ]; then { candidates="$(definitions "$DEFINITION")" - here="$(dirname "${0%/*}")/../.." if [ -n "$candidates" ]; then echo echo "The following versions contain \`$DEFINITION' in the name:" @@ -266,12 +265,13 @@ for DEFINITION in "${DEFINITIONS[@]}"; do echo "See all available versions with \`pyenv install --list'." echo echo -n "If the version you need is missing, try upgrading pyenv" - if [ "$here" != "${here#$(brew --prefix 2>/dev/null)}" ]; then + declare brew_prefix + if brew_prefix="$(brew --prefix 2>/dev/null)" && [[ $_PYENV_INSTALL_PREFIX/ == "$brew_prefix/"* ]]; then printf ":\n\n" echo " brew update && brew upgrade pyenv" - elif [ -d "${here}/.git" ]; then + elif [ -d "${_PYENV_INSTALL_PREFIX}/.git" ]; then printf ":\n\n" - echo " cd ${here} && git pull && cd -" + echo " cd ${_PYENV_INSTALL_PREFIX} && git pull && cd -" else printf ".\n" fi diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index f3b3c617fe..9b514d780a 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -140,7 +140,11 @@ OUT stub_python_build 'echo ERROR >&2 && exit 2' stub_python_build "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" - run pyenv-install 2.7.9 + mkdir "$BATS_TEST_TMPDIR/.git" + #Faking the Pyenv installation prefix may break things. + # May have to move some dependent stuff into the fake root for the code to find it + # or introduce an overriding test variable in the code specifically for the hint. + _PYENV_INSTALL_PREFIX="$BATS_TEST_TMPDIR" run pyenv-install 2.7.9 assert_failure assert_output <&2 && exit 2' \ "--definitions : true" - run pyenv-install 1.9.3 + _PYENV_INSTALL_PREFIX="$BATS_TEST_TMPDIR" run pyenv-install 1.9.3 assert_failure assert_output </dev/null; then + if ! enable -f "${_PYENV_INSTALL_PREFIX}"/libexec/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 @@ -25,7 +26,7 @@ setup() { PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin PATH="${PYENV_TEST_DIR}/bin:$PATH" - PATH="${BATS_TEST_DIRNAME%/*}/libexec:$PATH" + PATH="${_PYENV_INSTALL_PREFIX}/libexec:$PATH" PATH="${BATS_TEST_DIRNAME}/libexec:$PATH" PATH="${PYENV_ROOT}/shims:$PATH" PATH="${BATS_TEST_TMPDIR}/stubs:$PATH" From 48743aa8f3fbbeccce010200162d57e5950b8998 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 26 Dec 2025 17:19:10 +0300 Subject: [PATCH 1062/1324] README: Document how to change Python version in a shell spawned from a Python-based program (e.g. Jupyter) (#3380) --- README.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/README.md b/README.md index f43c4aa164..b436c18dd9 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Locating Pyenv-provided Python Installations](#locating-pyenv-provided-python-installations) * [Advanced Configuration](#advanced-configuration) * [Using Pyenv without shims](#using-pyenv-without-shims) + * [Running nested shells from Python-based programs](#running-nested-shells-from-python-based-programs) * [Environment variables](#environment-variables) * **[Development](#development)** * [Contributing](#contributing) @@ -754,6 +755,32 @@ as currently configured. `pyenv exec` works by prepending `$(pyenv root)/versions//bin` to `PATH` in the ``'s environment, the same as what e.g. RVM does. +### Running nested shells from Python-based programs + +In addition to altering `PATH`, `pyenv exec` sets `PYENV_VERSION` in the +executed program's environment to ensure that it won't spontaneouly switch to +using a different Python version. + +Some Python-based programs (e.g. Jupyter) can spawn nested shell sessions. +`pyenv version` in such a shell would dutily report that the current version was +set by an environment variable. + +Depending on your use case, this version lock may be undesirable. +In this case, you need to change or unset the environment variable, +either directly or via `pyenv shell`. + +To automate this, you can do so in your shell's interactive startup file, +detecting the nested shell session via some characteristic environment variable +that the spawning application sets. + +E.g. in Jupyter's case (as of this writing), it's `JUPYTER_SERVER_ROOT`, +and the corresponding `~/.bashrc` line may look like this: + +```bash +[[ -n $JUPYTER_SERVER_ROOT ]] && unset PYENV_VERSION +``` + + ### Environment variables From 8ef33165b88e6f66bd7205041c164cf012f2bc99 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 26 Dec 2025 16:57:27 +0300 Subject: [PATCH 1063/1324] CI: fix CPython-only checks --- .github/workflows/modified_scripts_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 71dd3cb385..0ac15ba642 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -129,7 +129,7 @@ jobs: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | #check - python -c 'if True: + python -c ' import os, sys, os.path correct_dir = os.path.join( os.environ["PYENV_ROOT"], @@ -242,7 +242,7 @@ jobs: EXPECTED_PYTHON: ${{ matrix.python-version }} run: | #check - python -c 'if True: + python -c ' import os, sys, os.path correct_dir = os.path.join( os.environ["PYENV_ROOT"], From 56bc05d5d6de2f380f438240f4d2c01afe7afd5a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 26 Dec 2025 22:35:22 +0300 Subject: [PATCH 1064/1324] python-build: Use no-tests only for OpenSSL 1.1.1+ Introduced in 1.1.1-pre1 --- plugins/python-build/bin/python-build | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 3071c6e0c7..deecea5256 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1769,12 +1769,16 @@ build_package_mac_openssl() { local nokerberos [[ "$1" != openssl-1.0.* ]] || nokerberos=1 + # switches introduced in OpenSSL 1.1.1 + local notests + [[ $(openssl_version $1) -ge 10101 ]] && notests=1 + # switches introduced in OpenSSL 3.2 local extra_no_features [[ $(openssl_version $1) -ge 30200 ]] && extra_no_features=1 # Compile a shared lib with zlib dynamically linked. - package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5} ${extra_no_features:+no-docs no-apps} no-tests + package_option openssl configure --openssldir="$OPENSSLDIR" zlib-dynamic no-ssl3 shared ${nokerberos:+no-ssl2 no-krb5} ${extra_no_features:+no-docs no-apps} ${notests:+no-tests} build_package_standard "$@" From 956f78df428e5664b2f75895783b56ff936469c1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 26 Dec 2025 15:49:46 +0300 Subject: [PATCH 1065/1324] Recognize an argument to -j in MAKEFLAGS when building extensions in 3.10-3.11 and latest 3.5-3.9 Upstream issue fixed in 3.12 (https://github.com/python/cpython/issues/87800) --- ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 29 +++++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 29 +++++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 29 +++++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++ 40 files changed, 1086 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0003-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0011-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/00012-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0004-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.8.20/Python-3.8.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.9.25/Python-3.9.25/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch diff --git a/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0003-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0003-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0003-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0011-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0011-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..e98e8459d7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.5.10/Python-3.5.10/0011-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,29 @@ +From ed9010349e8f6351a64ba2c7005fa0c3e40655bd Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 467362813dc..a3623c577af 100644 +--- a/setup.py ++++ b/setup.py +@@ -277,8 +277,10 @@ class PyBuildExt(build_ext): + build_ext.__init__(self, dist) + self.failed = [] + self.failed_on_import = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ m=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', '')) ++ if m is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True ++ del m + + def build_extensions(self): + +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/00012-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/00012-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..e98e8459d7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.6.15/Python-3.6.15/00012-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,29 @@ +From ed9010349e8f6351a64ba2c7005fa0c3e40655bd Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 467362813dc..a3623c577af 100644 +--- a/setup.py ++++ b/setup.py +@@ -277,8 +277,10 @@ class PyBuildExt(build_ext): + build_ext.__init__(self, dist) + self.failed = [] + self.failed_on_import = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ m=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', '')) ++ if m is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True ++ del m + + def build_extensions(self): + +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0004-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0004-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..e98e8459d7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.7.17/Python-3.7.17/0004-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,29 @@ +From ed9010349e8f6351a64ba2c7005fa0c3e40655bd Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 467362813dc..a3623c577af 100644 +--- a/setup.py ++++ b/setup.py +@@ -277,8 +277,10 @@ class PyBuildExt(build_ext): + build_ext.__init__(self, dist) + self.failed = [] + self.failed_on_import = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ m=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', '')) ++ if m is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True ++ del m + + def build_extensions(self): + +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.8.20/Python-3.8.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.8.20/Python-3.8.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..d896c24330 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.8.20/Python-3.8.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 89a756fe5d31962b8daf5d31c445556c42dfb764 Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index 57be07a7e0f..e55cfb88c35 100644 +--- a/setup.py ++++ b/setup.py +@@ -288,8 +288,8 @@ class PyBuildExt(build_ext): + self.failed = [] + self.failed_on_import = [] + self.missing = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.9.25/Python-3.9.25/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.9.25/Python-3.9.25/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.9.25/Python-3.9.25/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + From 99faf7f217f6566157a65bc0870871b54c226993 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 29 Jun 2025 20:12:44 +0300 Subject: [PATCH 1066/1324] Add a script to generate CPython installation scripts [no ci] --- plugins/python-build/scripts/add_cpython.py | 567 ++++++++++++++++++ plugins/python-build/scripts/requirements.txt | 7 + 2 files changed, 574 insertions(+) create mode 100644 plugins/python-build/scripts/add_cpython.py diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py new file mode 100644 index 0000000000..a21ae6618d --- /dev/null +++ b/plugins/python-build/scripts/add_cpython.py @@ -0,0 +1,567 @@ +#!/usr/bin/env python3 +"""Script to add CPython releases. + +Checks the CPython download archives for new versions, +then writes a build script for any which do not exist locally, +saving it to plugins/python-build/share/python-build. + +""" +import argparse +import dataclasses +import hashlib +import io +import itertools +import logging +import operator +import pathlib +import pprint +import re +import sys +import typing +import urllib.parse + +import jc +import more_itertools +import packaging.version +import requests +import requests_html +import sortedcontainers +import tqdm + +logger = logging.getLogger(__name__) + +REPO = "https://www.python.org/ftp/python/" + +CUTOFF_VERSION=packaging.version.Version('3.9') +EXCLUDED_VERSIONS= { + packaging.version.Version("3.9.3") #recalled upstream +} + +here = pathlib.Path(__file__).resolve() +OUT_DIR: pathlib.Path = here.parent.parent / "share" / "python-build" + +T_THUNK=\ +'''export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}"''' + + +def adapt_script(version: packaging.version.Version, + previous_version: packaging.version.Version) -> typing.Union[pathlib.Path, None]: + + previous_version_path = OUT_DIR.joinpath(str(previous_version)) + + with previous_version_path.open("r", encoding='utf-8') as f: + script = f.readlines() + result = io.StringIO() + for line in script: + if m:=re.match(r'\s*install_package\s+"(?PPython-\S+)"\s+' + r'"(?P\S+)"\s+.*\s+verify_py(?P\d+)\s+.*$', + line): + existing_url_path = urllib.parse.urlparse(m.group('url')).path + try: + matched_download = more_itertools.one( + item for item in VersionDirectory.available[version].downloads + if existing_url_path.endswith(item.extension)) + except ValueError: + logger.error(f'Cannot match existing URL path\'s {existing_url_path} extension ' + f'to available downloads {VersionDirectory.available[version].downloads}') + return + new_package_name, new_package_url = matched_download.package_name, matched_download.url + new_package_hash = Url.sha256_url(new_package_url, VersionDirectory.session) + + verify_py_suffix = str(version.major)+str(version.minor) + + line = Re.sub_groups(m, + package=new_package_name, + url=new_package_url+'#'+new_package_hash, + verify_py_suffix=verify_py_suffix) + + elif m:=re.match(r'\s*install_package\s+"(?Popenssl-\S+)"\s+' + r'"(?P\S+)"\s.*$', + line): + item = VersionDirectory.openssl.get_store_latest_release() + + line = Re.sub_groups(m, + package=item.package_name, + url=item.url + '#' + item.hash) + + elif m:=re.match(r'\s*install_package\s+"(?Preadline-\S+)"\s+' + r'"(?P\S+)"\s.*$', + line): + item = VersionDirectory.readline.get_store_latest_release() + + line = Re.sub_groups(m, + package=item.package_name, + url=item.url + '#' + item.hash) + + result.write(line) + + result_path = OUT_DIR.joinpath(str(version)) + logger.info(f"Writing {result_path}") + result_path.write_text(result.getvalue(), encoding='utf-8') + result.close() + + return result_path + +def add_version(version: packaging.version.Version): + + previous_version = VersionDirectory.existing.pick_previous_version(version).version + + is_prerelease_upgrade = previous_version.major==version.major\ + and previous_version.minor==version.minor\ + and previous_version.micro==version.micro + + logger.info(f"Adding {version} based on {previous_version}" + + (" (prerelease upgrade)" if is_prerelease_upgrade else "")) + + VersionDirectory.available.get_store_available_source_downloads(version) + + new_path = adapt_script(version, + previous_version) + if not new_path: + return False + VersionDirectory.existing.append(_CPythonExistingScriptInfo(version,str(new_path))) + + cleanup_prerelease_upgrade(is_prerelease_upgrade, previous_version) + + handle_t_thunks(version, previous_version, is_prerelease_upgrade) + + return True + + +def cleanup_prerelease_upgrade( + is_prerelease_upgrade: bool, + previous_version: packaging.version.Version)\ + -> None: + if is_prerelease_upgrade: + previous_version_path = OUT_DIR / str(previous_version) + logger.info(f'Deleting {previous_version_path}') + previous_version_path.unlink() + del VersionDirectory.existing[previous_version] + + +def handle_t_thunks(version, previous_version, is_prerelease_upgrade): + if (version.major, version.minor) >= (3, 13): + # an old thunk may have older version-specific code + # so it's safer to write a known version-independent template + thunk_path = OUT_DIR.joinpath(str(version) + "t") + logger.info(f"Writing {thunk_path}") + thunk_path.write_text(T_THUNK, encoding='utf-8') + if is_prerelease_upgrade: + previous_thunk_path = OUT_DIR.joinpath(str(previous_version) + "t") + logger.info(f"Deleting {previous_thunk_path}") + previous_thunk_path.unlink() + +Arguments: argparse.Namespace + +def main(): + global Arguments + Arguments = parse_args() + logging.basicConfig(level=logging.DEBUG if Arguments.verbose else logging.INFO) + + cached_session=requests_html.HTMLSession() + global VersionDirectory + VersionDirectory = _VersionDirectory(cached_session) + + VersionDirectory.existing.populate() + VersionDirectory.available.populate() + + for initial_release in (v for v in frozenset(VersionDirectory.available.keys()) + if v.micro == 0 and v not in VersionDirectory.existing): + # may actually be a prerelease + VersionDirectory.available.get_store_available_source_downloads(initial_release, True) + del initial_release + + versions_to_add = sorted(VersionDirectory.available.keys() - VersionDirectory.existing.keys()) + + logger.info("Versions to add:\n"+pprint.pformat(versions_to_add)) + result = False + for version_to_add in versions_to_add: + result = add_version(version_to_add) or result + return int(not result) + +def parse_args(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-d", "--dry-run", action="store_true", + help="Do not write scripts, just report them to stdout", + ) + parser.add_argument( + "-v", "--verbose", action="store_true", default=0, + help="Increase verbosity of logging", + ) + parsed = parser.parse_args() + return parsed + + +T = typing.TypeVar('T', bound=object) + +K = typing.TypeVar('K', bound=typing.Hashable) + +class KeyedList(typing.List[T], typing.Mapping[K, T]): + key_field: str + item_init: typing.Callable[..., T] = None + + def __init__(self, seq: typing.Union[typing.Iterable[T], None] = None): + super().__init__() + self._map = {} + if seq is not None: + self.__iadd__(seq) + + # read + + def __getitem__(self, key: K) -> T: + return self._map[key] + + def __contains__(self, key: K): + return key in self._map + + def keys(self) -> typing.AbstractSet[K]: + return self._map.keys() + + # write + + def append(self, item: T) -> None: + key = self._getkey(item) + if key in self: + raise ValueError(f"Key '{key:r}' already present") + super().append(item) + self._map[key] = item + + def __iadd__(self, other: typing.Iterable[T]): + for item in other: + self.append(item) + return self + + def __delitem__(self, key: K): + super().remove(self[key]) + del self._map[key] + + def clear(self): + super().__delitem__(slice(None,None)) + self._map.clear() + + # read-write + + def get_or_create(self, key: K, **kwargs): + try: + return self[key] + except KeyError as e: + if self.item_init is None: + raise AttributeError("'item_init' must be set to use automatic item creation") from e + kwargs[self.key_field] = key + item = self.item_init(**kwargs) + self.append(item) + return item + + # info + + def __repr__(self): + return self.__class__.__name__ + "([" + ", ".join(repr(i) for i in self) + "])" + + # private + + def _getkey(self, item: T) -> K: + return getattr(item, self.key_field) + +del T, K + +@dataclasses.dataclass(frozen=True) +class _CPythonAvailableVersionDownloadInfo: + extension: str + package_name: str + url: str + +class _CPythonAvailableVersionDownloadsDirectory(KeyedList[_CPythonAvailableVersionDownloadInfo, str]): + key_field = "extension" + + +@dataclasses.dataclass(frozen=True) +class _CPythonAvailableVersionInfo: + version: packaging.version.Version + download_page_url: str + downloads: _CPythonAvailableVersionDownloadsDirectory = dataclasses.field( + default_factory=lambda:_CPythonAvailableVersionDownloadsDirectory() + ) + + +class CPythonAvailableVersionsDirectory(KeyedList[_CPythonAvailableVersionInfo, packaging.version.Version]): + key_field = "version" + _session: requests.Session + item_init = _CPythonAvailableVersionInfo + + def __init__(self, session: requests.Session, seq=None): + super().__init__(seq) + self._session = session + + def populate(self, url=REPO, pattern=r'^\d+'): + """ + Fetch remote versions + """ + logger.info("Fetching available CPython versions") + for name, url in DownloadPage.enum_download_entries(url, pattern, self._session): + v = packaging.version.Version(name) + if v < CUTOFF_VERSION or v in EXCLUDED_VERSIONS: + continue + logger.debug(f'Available version: {name} ({v}), {url}') + self.append(_CPythonAvailableVersionInfo( + v, + url + )) + + def get_store_available_source_downloads(self, version, refine_mode=False): + entry = self[version] + if entry.downloads: + #already retrieved + return + additional_versions_found =\ + CPythonAvailableVersionsDirectory(self._session) if refine_mode else None + exact_download_found = False + for name, url in DownloadPage.enum_download_entries( + entry.download_page_url, + r'Python-.*\.(tar\.xz|tgz)$', + self._session): + m = re.match(r'(?PPython-(?P.*))\.(?Ptar\.xz|tgz)$', name) + + download_version = packaging.version.Version(m.group("version")) + if download_version != version: + if not refine_mode: + raise ValueError(f"Unexpectedly found a download {name} for {download_version} " + f"at page {entry.download_page_url} for {version}") + entry_to_fill = additional_versions_found.get_or_create( + download_version, + download_page_url=entry.download_page_url + ) + else: + exact_download_found = True + entry_to_fill = entry + + entry_to_fill.downloads.append(_CPythonAvailableVersionDownloadInfo( + m.group("extension"), m.group('package'), url + )) + + if not exact_download_found: + del self[version] + + self.append( + additional_versions_found[ + max(additional_versions_found.keys()) + ]) + + +class _CPythonExistingScriptInfo(typing.NamedTuple): + version: packaging.version.Version + filename: str + +class CPythonExistingScriptsDirectory(KeyedList[_CPythonExistingScriptInfo, packaging.version.Version]): + key_field = "version" + _filename_pattern = r'^\d+\.\d+(?:(t?)(-\w+)|(.\d+((?:a|b|rc)\d)?(t?)))$' + + def populate(self): + """ + Enumerate existing installation scripts in share/python-build/ by pattern + """ + logger.info(f"Enumerating existing versions in {OUT_DIR}") + for entry_name in (p.name for p in OUT_DIR.iterdir() if p.is_file()): + if (not (m := re.match(self._filename_pattern, entry_name)) + or m.group(1) == 't' or m.group(5) == 't'): + continue + try: + v = packaging.version.Version(entry_name) + # branch tip scrpts are different from release scripts and thus unusable as a pattern + if v.dev is not None: + continue + logger.debug(f"Existing version {v}") + + self.append(_CPythonExistingScriptInfo(v, entry_name)) + + except ValueError as e: + logger.error(f"Unable to parse existing version {entry_name}: {e}") + + def pick_previous_version(self, + version: packaging.version.Version) \ + -> _CPythonExistingScriptInfo: + return max(v for v in self if v.version < version) + + +class _OpenSSLVersionInfo(typing.NamedTuple): + version: packaging.version.Version + package_name: str + url: str + hash: str + +class OpenSSLVersionsDirectory(KeyedList[_OpenSSLVersionInfo, packaging.version.Version]): + key_field = "version" + + def get_store_latest_release(self) \ + -> _OpenSSLVersionInfo: + if self: + #already retrieved + return self[max(self.keys())] + + j = requests.get("https://api.github.com/repos/openssl/openssl/releases/latest").json() + # noinspection PyTypeChecker + # urlparse can parse str as well as bytes + shasum_url = more_itertools.one( + asset['browser_download_url'] + for asset in j['assets'] + if urllib.parse.urlparse(asset['browser_download_url']).path.split('/')[-1].endswith('.sha256') + ) + shasum_text = requests.get(shasum_url).text + shasum_data = jc.parse("hashsum", shasum_text, quiet=True)[0] + package_hash, package_filename = shasum_data["hash"], shasum_data["filename"] + del shasum_data, shasum_text, shasum_url + + # OpenSSL Github repo has tag names "openssl-" as of this writing like we need + # but let's not rely on that + # splitext doesn't work with a chained extension, it only splits off the last one + package_name, package_version_str = re.match(r"([^-]+-(.*?))\.\D", package_filename).groups() + package_version = packaging.version.Version(package_version_str) + + package_url = more_itertools.one( + asset['browser_download_url'] + for asset in j['assets'] + if urllib.parse.urlparse(asset['browser_download_url']).path.split('/')[-1] == package_filename + ) + + result = _OpenSSLVersionInfo(package_version, package_name, package_url, package_hash) + self.append(result) + + return result + + +class _ReadlineVersionInfo(typing.NamedTuple): + version : packaging.version.Version + package_name : str + url : str + hash : str + +class ReadlineVersionsDirectory(KeyedList[_ReadlineVersionInfo, packaging.version.Version]): + key_field = "version" + + def get_store_latest_release(self): + if not self: + self._store_latest_release() + return self._latest_release() + + def _store_latest_release(self): + candidates = ReadlineVersionsDirectory() + + pattern = r'(?Preadline-(?P\d+(?:\.\d+)+)).tar\.gz$' + for name, url in DownloadPage.enum_download_entries( + 'https://ftpmirror.gnu.org/readline/', pattern, VersionDirectory.session): + m = re.match(pattern, name) + version = packaging.version.Version(m.group('version')) + candidates.append(_ReadlineVersionInfo( + version, + m.group('package_name'), + url, + "" + )) + max_item = candidates._latest_release() + hash_ = Url.sha256_url(max_item.url, VersionDirectory.session) + + result = _ReadlineVersionInfo( + max_item.version, + max_item.package_name, + max_item.url, + hash_) + self.append(result) + + return result + + def _latest_release(self): + return self[max(self.keys())] + +class _VersionDirectory: + def __init__(self, session): + self.existing = CPythonExistingScriptsDirectory() + self.available = CPythonAvailableVersionsDirectory(session) + self.openssl = OpenSSLVersionsDirectory() + self.readline = ReadlineVersionsDirectory() + self.session = session +VersionDirectory : _VersionDirectory + +class DownloadPage: + class _DownloadPageEntry(typing.NamedTuple): + name: str + url: str + + @classmethod + def enum_download_entries(cls, url, pattern, session=None) -> typing.Generator[_DownloadPageEntry, None, None]: + if session is None: + session = requests_html.HTMLSession() + response = session.get(url) + page = response.html + table = page.find("pre", first=True) + # the first entry is ".." + links = table.find("a")[1:] + for link in links: + name = link.text.rstrip('/') + if not re.match(pattern, name): + continue + yield cls._DownloadPageEntry(name, urllib.parse.urljoin(response.url, link.attrs['href'])) + + +class Re: + @dataclasses.dataclass + class _interval: + group: typing.Union[int, str, None] + start: int + end: int + @staticmethod + def sub_groups(match: re.Match, + /, *args: [typing.AnyStr], + **kwargs: [typing.AnyStr])\ + -> typing.AnyStr: + repls={i:repl for i,repl in enumerate(args) if repl is not None} + repls.update({n:repl for n,repl in kwargs.items() if repl is not None}) + + intervals: sortedcontainers.SortedList[Re._interval]=\ + sortedcontainers.SortedKeyList(key=operator.attrgetter("start","end")) + + for group_id in itertools.chain(range(1,len(match.groups())), match.groupdict().keys()): + if group_id not in repls: + continue + if match.start(group_id) == -1: + continue + intervals.add(Re._interval(group_id,match.start(group_id),match.end(group_id))) + del group_id + + last_interval=Re._interval(None,0,0) + result="" + for interval in intervals: + if interval.start < last_interval.end: + raise ValueError(f"Cannot replace intersecting matches " + f"for groups {last_interval.group} and {interval.group} " + f"(position {interval.start})") + if interval.end == interval.start and \ + last_interval.start == last_interval.end == interval.start: + raise ValueError(f"Cannot replace consecutive zero-length matches " + f"for groups {last_interval.group} and {interval.group} " + f"(position {interval.start})") + + result+=match.string[last_interval.end:interval.start]+repls[interval.group] + last_interval = interval + result+=match.string[last_interval.end:] + + return result + +class Url: + @staticmethod + def sha256_url(url, session=None): + if session is None: + session = requests_html.HTMLSession() + logger.info(f"Downloading and computing hash of {url}") + h=hashlib.sha256() + r=session.get(url,stream=True) + total_bytes=int(r.headers.get('content-length',0)) or float('inf') + with tqdm.tqdm(total=total_bytes, unit='B', unit_scale=True, unit_divisor=1024) as t: + for c in r.iter_content(1024): + t.update(len(c)) + h.update(c) + return h.hexdigest() + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index 995ee3557d..ec87e23102 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -1,2 +1,9 @@ requests-html lxml[html_clean] +packaging~=20.4 +requests~=2.32.4 +sortedcontainers~=2.4.0 +tqdm~=4.51.0 +pandas~=1.5.3 +numpy~=1.24.2 +jc @ git+https://github.com/native-api/jc@haslib_mode From ff94d498db8b0bbf050d8a1cffa9fa238751c0e9 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 3 Sep 2025 20:58:23 +0300 Subject: [PATCH 1067/1324] (refactor) --- plugins/python-build/scripts/add_miniforge.py | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 3003605c32..cb90c9d898 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -124,20 +124,25 @@ def add_version(release, distributions): else: logger.info('Did not find specs for %(distribution)s', locals()) -for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/releases').json(): - version = release['tag_name'] - if version in SKIPPED_RELEASES: - continue +def main(): + for release in requests.get(f'https://api.github.com/repos/{MINIFORGE_REPO}/releases').json(): + version = release['tag_name'] - logger.info('Looking for %(version)s in %(out_dir)s', locals()) + if version in SKIPPED_RELEASES: + continue - # mambaforge is retired https://github.com/conda-forge/miniforge/releases/tag/24.11.2-0 - if version_tuple(version) >= (24,11,2): - distributions = DISTRIBUTIONS - else: - distributions = DISTRIBUTIONS_PRE25 + logger.info('Looking for %(version)s in %(out_dir)s', locals()) + + # mambaforge is retired https://github.com/conda-forge/miniforge/releases/tag/24.11.2-0 + if version_tuple(version) >= (24, 11, 2): + distributions = DISTRIBUTIONS + else: + distributions = DISTRIBUTIONS_PRE25 + + if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in distributions): + logger.info('Downloading %(version)s', locals()) + add_version(release, distributions) - if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in distributions): - logger.info('Downloading %(version)s', locals()) - add_version(release, distributions) +if __name__ == '__main__': + main() From 4a3aaf4327f1ad1c88c2d42178fa3dbc9dddc6df Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Jan 2026 13:31:48 +0300 Subject: [PATCH 1068/1324] scripts: relax version requirements Latest version are okay. Freezing them causes Dependabot alerts about vulnerabilities in old versions --- plugins/python-build/scripts/requirements.txt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index ec87e23102..117c7628fe 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -1,9 +1,9 @@ requests-html lxml[html_clean] -packaging~=20.4 -requests~=2.32.4 -sortedcontainers~=2.4.0 -tqdm~=4.51.0 -pandas~=1.5.3 -numpy~=1.24.2 +packaging +requests +sortedcontainers +tqdm +pandas +numpy jc @ git+https://github.com/native-api/jc@haslib_mode From e5a6b49e02a544e5fe5bee15de7e41df7ea73b0f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 7 Jan 2026 07:32:00 +0300 Subject: [PATCH 1069/1324] scripts: remove unused --- plugins/python-build/scripts/requirements.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index 117c7628fe..d7bf7606c5 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -4,6 +4,4 @@ packaging requests sortedcontainers tqdm -pandas -numpy jc @ git+https://github.com/native-api/jc@haslib_mode From 1d8240a641359cf6a163a5f34c698c84c441c814 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 7 Jan 2026 22:48:36 +0300 Subject: [PATCH 1070/1324] set executable bit for add_cpython.py --- plugins/python-build/scripts/add_cpython.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 plugins/python-build/scripts/add_cpython.py diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py old mode 100644 new mode 100755 From 967ed2c3676971b7d46ec97820960eed202e3760 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Thu, 8 Jan 2026 05:27:49 +0800 Subject: [PATCH 1071/1324] Add miniconda3-25.11.1-1 (#3382) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-25.11.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.11-25.11.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.12-25.11.1-1 | 19 +++++++++++++++++++ .../python-build/miniconda3-3.13-25.11.1-1 | 19 +++++++++++++++++++ 4 files changed, 76 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 new file mode 100644 index 0000000000..25d0f8f364 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-aarch64.sh#cbac1da35d4c8635384f58b9a776c23fcb3c4dc0b936b8d4d0526f2d0a4b1c4c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-x86_64.sh#f6174765edd75e1ef2bb3f16e99266d291deebf6532f2f7e800569afc084d0eb" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-MacOSX-arm64.sh#c83c7a20dd45442ef05321637872bdd9ee13395098e9bb1a22a28b1dccdd9a31" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 new file mode 100644 index 0000000000..2cd0ad93d8 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-aarch64.sh#ed0c6cc091802bc4d1440260d60d431b263f22d5cb9be5df71e7ff176c8f1cd8" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-x86_64.sh#cf5fe14f1be074b82908f188ff759b61ddf87ed15a766f8641182ebf190832b4" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-MacOSX-arm64.sh#5d76efda2d459389e35d5406494230bb78635bdb99500bda7d7eb3c4e3742f1c" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 new file mode 100644 index 0000000000..8df10e1ed1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-aarch64.sh#f51aa82c395a2c5854c28ef8b7a24e252d5daca4a7a054ec8d9d6847d1d84518" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-x86_64.sh#498ddb7c091002e4fd76e3496d91d2d915b183d1d850bef6e060fd45e2523213" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-MacOSX-arm64.sh#febaaeddd0deff2d3b034f7ef99efcab7169549d9be4175e1870170d59377a58" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 new file mode 100644 index 0000000000..ea62bdeba5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-aarch64.sh#9f39cc8c46ca37afed5e563cc234b3add34fea2f1119e076dcae7a377ca6b8ee" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-x86_64.sh#e0b10e050e8928e2eb9aad2c522ee3b5d31d30048b8a9997663a8a460d538cef" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-MacOSX-arm64.sh#9f84ad10ea513fb59bb714933bc8dc092bd25fdb03c236868f5d5af3c26a1fd4" "miniconda" verify_py313 + ;; +* ) + { 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 From c35f26af3e311741df5fe2bd9f55181451da8b71 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Thu, 8 Jan 2026 14:08:08 +0800 Subject: [PATCH 1072/1324] CI: exclude unsupported MacOS-x64 for recent Miniconda versions (#3385) * split macOS Intel build and filter unsupported Miniconda * Generate exclusions instead --------- Co-authored-by: binbjz Co-authored-by: Ivan Pozdeev --- .github/workflows/modified_scripts_build.yml | 34 ++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 0ac15ba642..babdb895e5 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -6,6 +6,7 @@ jobs: outputs: versions: ${{steps.modified-versions.outputs.versions}} versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}} + versions_macos_build_exclude: ${{steps.modified-versions.outputs.versions_macos_build_exclude}} steps: - uses: actions/checkout@v6 - run: git fetch origin "$GITHUB_BASE_REF" @@ -26,10 +27,41 @@ jobs: echo "versions_cpython_only<<$EOF" >> $GITHUB_ENV; echo "$versions_cpython_only" >> $GITHUB_ENV; echo "$EOF" >> $GITHUB_ENV; + - run: pip install packaging + - name: Build exclusions JSON + shell: python + run: | + import base64 + import os + import json + import random + import re + import subprocess + + import packaging.version + + result=[] + + for line in os.environ['versions'].splitlines(): + if m:=re.match(r'([^-]+)-(\d+\.\d+)-(\d+\.\d+.\d+)', line): + name, version = m.group(1), packaging.version.Version(m.group(3)) + + # Miniconda dropped MacOS x64 support + if name == 'miniconda3' and version >= packaging.version.Version('25.9.1'): + result.append({'os':'macos-15-intel','python-version':line}) + + EOF = str(random.getrandbits(15*8)) + + with open(os.environ['GITHUB_ENV'],'w') as f: + f.write(f"versions_macos_build_exclude_json<<{EOF}\n") + json.dump(result, f) + f.write(f'\n{EOF}\n') + - id: modified-versions run: | echo "versions=`echo "${{ env.versions }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT echo "versions_cpython_only=`echo "${{ env.versions_cpython_only }}" | jq -R . | jq -sc .`" >> $GITHUB_OUTPUT + echo 'versions_macos_build_exclude=${{ env.versions_macos_build_exclude_json }}' >> $GITHUB_OUTPUT macos_build: needs: discover_modified_scripts if: needs.discover_modified_scripts.outputs.versions != '[""]' @@ -38,6 +70,7 @@ jobs: matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} os: ["macos-14", "macos-15", "macos-15-intel"] + exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}} runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 @@ -90,6 +123,7 @@ jobs: - run: | pyenv global system rm -f "$(pyenv root)"/shims/* + macos_build_bundled_dependencies: needs: discover_modified_scripts From 45ef1677c4978a8281f49013786045381f29a383 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 8 Jan 2026 11:16:16 +0300 Subject: [PATCH 1073/1324] Auto-accept TOS in miniconda3-25+ Required for installation since this version --- plugins/python-build/scripts/add_miniconda.py | 14 +++++++++++++- .../share/python-build/miniconda3-3.10-25.1.1-0 | 11 ++++++----- .../share/python-build/miniconda3-3.10-25.1.1-1 | 11 ++++++----- .../share/python-build/miniconda3-3.10-25.1.1-2 | 11 ++++++----- .../share/python-build/miniconda3-3.10-25.11.1-1 | 1 + .../share/python-build/miniconda3-3.10-25.3.1-1 | 1 + .../share/python-build/miniconda3-3.10-25.5.1-0 | 1 + .../share/python-build/miniconda3-3.10-25.5.1-1 | 1 + .../share/python-build/miniconda3-3.10-25.7.0-2 | 1 + .../share/python-build/miniconda3-3.10-25.9.1-1 | 1 + .../share/python-build/miniconda3-3.10-25.9.1-3 | 1 + .../share/python-build/miniconda3-3.11-25.1.1-0 | 11 ++++++----- .../share/python-build/miniconda3-3.11-25.1.1-1 | 11 ++++++----- .../share/python-build/miniconda3-3.11-25.1.1-2 | 11 ++++++----- .../share/python-build/miniconda3-3.11-25.11.1-1 | 1 + .../share/python-build/miniconda3-3.11-25.3.1-1 | 1 + .../share/python-build/miniconda3-3.11-25.5.1-0 | 1 + .../share/python-build/miniconda3-3.11-25.5.1-1 | 1 + .../share/python-build/miniconda3-3.11-25.7.0-2 | 1 + .../share/python-build/miniconda3-3.11-25.9.1-1 | 1 + .../share/python-build/miniconda3-3.11-25.9.1-3 | 1 + .../share/python-build/miniconda3-3.12-25.1.1-0 | 11 ++++++----- .../share/python-build/miniconda3-3.12-25.1.1-1 | 11 ++++++----- .../share/python-build/miniconda3-3.12-25.1.1-2 | 11 ++++++----- .../share/python-build/miniconda3-3.12-25.11.1-1 | 1 + .../share/python-build/miniconda3-3.12-25.3.1-1 | 1 + .../share/python-build/miniconda3-3.12-25.5.1-0 | 1 + .../share/python-build/miniconda3-3.12-25.5.1-1 | 1 + .../share/python-build/miniconda3-3.12-25.7.0-2 | 1 + .../share/python-build/miniconda3-3.12-25.9.1-1 | 1 + .../share/python-build/miniconda3-3.12-25.9.1-3 | 1 + .../share/python-build/miniconda3-3.13-25.11.1-1 | 1 + .../share/python-build/miniconda3-3.13-25.3.1-1 | 1 + .../share/python-build/miniconda3-3.13-25.5.1-0 | 1 + .../share/python-build/miniconda3-3.13-25.5.1-1 | 1 + .../share/python-build/miniconda3-3.13-25.7.0-2 | 1 + .../share/python-build/miniconda3-3.13-25.9.1-1 | 1 + .../share/python-build/miniconda3-3.13-25.9.1-3 | 1 + .../share/python-build/miniconda3-3.9-25.1.1-0 | 11 ++++++----- .../share/python-build/miniconda3-3.9-25.1.1-1 | 11 ++++++----- .../share/python-build/miniconda3-3.9-25.1.1-2 | 11 ++++++----- .../share/python-build/miniconda3-3.9-25.3.1-1 | 1 + .../share/python-build/miniconda3-3.9-25.5.1-0 | 1 + .../share/python-build/miniconda3-3.9-25.5.1-1 | 1 + .../share/python-build/miniconda3-3.9-25.7.0-2 | 1 + .../share/python-build/miniconda3-3.9-25.9.1-1 | 1 + .../share/python-build/miniconda3-3.9-25.9.1-3 | 1 + 47 files changed, 119 insertions(+), 61 deletions(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index db2acc6b0d..8d3e348082 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -32,7 +32,11 @@ MINICONDA_REPO = CONDA_REPO + "/miniconda" ANACONDA_REPO = CONDA_REPO + "/archive" +auto_accept_tos_fmt="""export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +""".strip() + install_script_fmt = """ +{auto_accept_tos} case "$(anaconda_architecture 2>/dev/null || true)" in {install_lines} * ) @@ -233,6 +237,13 @@ def default_py_version(self): return PyVersion.PY36 raise ValueError(self.flavor) + + def requires_tos_accept(self): + """ + requires to accept TOS for installation + """ + return self.flavor == Flavor.MINICONDA \ + and self.version_str.info() >= (25,) class CondaSpec(NamedTuple): @@ -302,7 +313,8 @@ def make_script(specs: List[CondaSpec]): return install_script_fmt.format( install_lines="\n".join(install_lines), tflavor=specs[0].tflavor, - ) + auto_accept_tos = auto_accept_tos_fmt if specs[0].version.requires_tos_accept() else "" + ).lstrip() def get_existing_condas(name): diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 index edb1093d63..6d89065cfa 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-0 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py310_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-aarch64.sh#d8a975d2194aab5ace390c273c5328be89342b956711c1648d02c87e4c4ffeb1" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-aarch64.sh#d8a975d2194aab5ace390c273c5328be89342b956711c1648d02c87e4c4ffeb1" "miniconda" verify_py310 ;; "Linux-s390x" ) - install_script "Miniconda3-py310_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-s390x.sh#087d1cb3708da2a07def69e925731a87b500a9b5befec5e7666422480a5edc67" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-s390x.sh#087d1cb3708da2a07def69e925731a87b500a9b5befec5e7666422480a5edc67" "miniconda" verify_py310 ;; "Linux-x86_64" ) - install_script "Miniconda3-py310_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-x86_64.sh#2346f43213d3e96abca95d0a7df2575d52c66030f2feb90d3d58ed3eabe76aa3" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-Linux-x86_64.sh#2346f43213d3e96abca95d0a7df2575d52c66030f2feb90d3d58ed3eabe76aa3" "miniconda" verify_py310 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py310_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-MacOSX-arm64.sh#e52fabc1c331e79cb4a348eea0ac9fc75742609ed5a41370a1e8790a97c13449" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-MacOSX-arm64.sh#e52fabc1c331e79cb4a348eea0ac9fc75742609ed5a41370a1e8790a97c13449" "miniconda" verify_py310 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py310_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-MacOSX-x86_64.sh#3d9720b16428a924b09f460f942be1f841c28d9ceeff9149051a8f4241745839" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-0-MacOSX-x86_64.sh#3d9720b16428a924b09f460f942be1f841c28d9ceeff9149051a8f4241745839" "miniconda" verify_py310 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 index 5b28037662..e0f31b5df1 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-1 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py310_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-aarch64.sh#"a72a3247d4c5843bf9ba3e902218ada02e2b75b16260541befd7ac0961077fa9 "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-aarch64.sh#a72a3247d4c5843bf9ba3e902218ada02e2b75b16260541befd7ac0961077fa9" "miniconda" verify_py310 ;; "Linux-s390x" ) - install_script "Miniconda3-py310_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-s390x.sh#072b62a97432048e5ad1e9a987c6739de719192f6c19c79b06d1e05424cd4c35" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-s390x.sh#072b62a97432048e5ad1e9a987c6739de719192f6c19c79b06d1e05424cd4c35" "miniconda" verify_py310 ;; "Linux-x86_64" ) - install_script "Miniconda3-py310_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-x86_64.sh#585972959914f1f9be463284d477717eb10f7306bda63f2ec3c4c86047b9dd72" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-Linux-x86_64.sh#585972959914f1f9be463284d477717eb10f7306bda63f2ec3c4c86047b9dd72" "miniconda" verify_py310 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py310_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-MacOSX-arm64.sh#0be344f9eb9e7cf7c2d45598922674e599739c9a9f6c5ee1436238005da9dd03" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-MacOSX-arm64.sh#0be344f9eb9e7cf7c2d45598922674e599739c9a9f6c5ee1436238005da9dd03" "miniconda" verify_py310 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py310_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-MacOSX-x86_64.sh#497d6deb3932f8f0257a3db515419e871a0f1ecb155e0fd80d13ca7bbccbecac" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-1-MacOSX-x86_64.sh#497d6deb3932f8f0257a3db515419e871a0f1ecb155e0fd80d13ca7bbccbecac" "miniconda" verify_py310 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 index 74a8143666..3b660ac810 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.1.1-2 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py310_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-aarch64.sh#5f61143e93d9d48a82aa99a1d7b1c77561f599b9a67ab954862e6e8d6a25c0cc" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-aarch64.sh#5f61143e93d9d48a82aa99a1d7b1c77561f599b9a67ab954862e6e8d6a25c0cc" "miniconda" verify_py310 ;; "Linux-s390x" ) - install_script "Miniconda3-py310_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-s390x.sh#89d689248a6855da3e6087cfeebaad6886e4ef46b4e96671bf251bb9aa6b1499" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-s390x.sh#89d689248a6855da3e6087cfeebaad6886e4ef46b4e96671bf251bb9aa6b1499" "miniconda" verify_py310 ;; "Linux-x86_64" ) - install_script "Miniconda3-py310_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-x86_64.sh#7f298109ab95b5436632973a04189a125282cc948f1dd1b03fa9cb6c71443915" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-Linux-x86_64.sh#7f298109ab95b5436632973a04189a125282cc948f1dd1b03fa9cb6c71443915" "miniconda" verify_py310 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py310_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-MacOSX-arm64.sh#119e3196d9e67f8eb0f88d4a3188849b5b8bf14a8dd87873c0bff7ce016eea52" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-MacOSX-arm64.sh#119e3196d9e67f8eb0f88d4a3188849b5b8bf14a8dd87873c0bff7ce016eea52" "miniconda" verify_py310 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py310_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-MacOSX-x86_64.sh#543d635dcd34256ac87ffe7a242259cf8f639d51a503da4e4eb3e29ecf406302" "miniconda" verify_py310 + install_script "Miniconda3-py310_25.1.1-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.1.1-2-MacOSX-x86_64.sh#543d635dcd34256ac87ffe7a242259cf8f639d51a503da4e4eb3e29ecf406302" "miniconda" verify_py310 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 index 25d0f8f364..bd6c3721a9 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.11.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-aarch64.sh#cbac1da35d4c8635384f58b9a776c23fcb3c4dc0b936b8d4d0526f2d0a4b1c4c" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 index 66d105e528..bfca1d2eb0 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.3.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.3.1-1-Linux-aarch64.sh#7879e8e2c89d26d8c4776fbad72656afda697e67e2e70b9b8eef368b111d2253" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 index ca482d37ea..58936af2c3 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-0 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-0-Linux-aarch64.sh#6886af5e5db79dfb4429cde937b6f806d02b0e98dd11249c74917661fc7b1f4b" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 index ce3d7e7bb4..3223806800 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.5.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.5.1-1-Linux-aarch64.sh#630f724622a3f45f66b3b08f708bc44e2cb595ad147f68750271c6352cb4d734" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 index 22159b874b..f1184c6843 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.7.0-2 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.7.0-2-Linux-aarch64.sh#e13bd0e0b4f70841f78aea8a978eb35cd6afb0af3e2d2b8f85d24636bb56bc21" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 index 0499200972..bec3df9f46 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-1-Linux-aarch64.sh#28fc3db9c7ee63cedab38b0e6006409f1f448be7ffc57b270623efd4422b0608" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 index 68a3a28af2..59b021eea0 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 +++ b/plugins/python-build/share/python-build/miniconda3-3.10-25.9.1-3 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py310_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.9.1-3-Linux-aarch64.sh#bc58460f17ec60d6c920d4352dd4d5e465aa22b56580bd4cd57c9693859761ec" "miniconda" verify_py310 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 index 2234a3dacf..4b01e5d6e9 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-0 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py311_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-aarch64.sh#737f02e2e6c192afbef000f6dba79f4dbbe852193c6890243516ea50d916d31c" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-aarch64.sh#737f02e2e6c192afbef000f6dba79f4dbbe852193c6890243516ea50d916d31c" "miniconda" verify_py311 ;; "Linux-s390x" ) - install_script "Miniconda3-py311_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-s390x.sh#6244e894c56afc095eba0d2c2e88125af1a6a661187b136b8d1abc1392cca8eb" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-s390x.sh#6244e894c56afc095eba0d2c2e88125af1a6a661187b136b8d1abc1392cca8eb" "miniconda" verify_py311 ;; "Linux-x86_64" ) - install_script "Miniconda3-py311_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-x86_64.sh#9bc631a7edfc015bbf944d5f48c3852e7c0c83aeae0359b75bee9f402942413a" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-Linux-x86_64.sh#9bc631a7edfc015bbf944d5f48c3852e7c0c83aeae0359b75bee9f402942413a" "miniconda" verify_py311 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py311_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-MacOSX-arm64.sh#0189917c28f8c3a8e9f113532225d4878e6f018d215739ccff92f99750fe7083" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-MacOSX-arm64.sh#0189917c28f8c3a8e9f113532225d4878e6f018d215739ccff92f99750fe7083" "miniconda" verify_py311 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py311_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-MacOSX-x86_64.sh#af0d2916b3e3aad814f246a85c48ec9658e2b5f4d1cc7f09246d197fa18169c8" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-0-MacOSX-x86_64.sh#af0d2916b3e3aad814f246a85c48ec9658e2b5f4d1cc7f09246d197fa18169c8" "miniconda" verify_py311 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 index 0ca2864e65..de32f5b9fd 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-1 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py311_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-aarch64.sh#288aa5b21b97db7f09bf6da03323b3a3b97d461a4c5bf666be58312eb6b6e311" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-aarch64.sh#288aa5b21b97db7f09bf6da03323b3a3b97d461a4c5bf666be58312eb6b6e311" "miniconda" verify_py311 ;; "Linux-s390x" ) - install_script "Miniconda3-py311_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-s390x.sh#e0c755e9e2e26f75cccda56fe978e7a964ed559f474486421a0022b7351bc108" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-s390x.sh#e0c755e9e2e26f75cccda56fe978e7a964ed559f474486421a0022b7351bc108" "miniconda" verify_py311 ;; "Linux-x86_64" ) - install_script "Miniconda3-py311_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-x86_64.sh#03a253f7ca5cf1fdfca2aedced769d8479cb559b7c92e70f24c176fd9d23bc8e" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-Linux-x86_64.sh#03a253f7ca5cf1fdfca2aedced769d8479cb559b7c92e70f24c176fd9d23bc8e" "miniconda" verify_py311 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py311_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-MacOSX-arm64.sh#871ca583ee0be45d5fa36eba4143a6701e775c500c7b30ac519ef1a0205d78c3" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-MacOSX-arm64.sh#871ca583ee0be45d5fa36eba4143a6701e775c500c7b30ac519ef1a0205d78c3" "miniconda" verify_py311 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py311_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-MacOSX-x86_64.sh#deb025449147280611e6ca8bf89291cddb6eab06e2bff0114ac05f6f67b5ca89" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-1-MacOSX-x86_64.sh#deb025449147280611e6ca8bf89291cddb6eab06e2bff0114ac05f6f67b5ca89" "miniconda" verify_py311 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 index 88a9c78a56..d498393fcd 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.1.1-2 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py311_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-aarch64.sh#8a1d4407fce7ec552ac6ed655ce93d83549e02b819cacefbb7f640f9051e638b" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-aarch64.sh#8a1d4407fce7ec552ac6ed655ce93d83549e02b819cacefbb7f640f9051e638b" "miniconda" verify_py311 ;; "Linux-s390x" ) - install_script "Miniconda3-py311_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-s390x.sh#0b4d5a3f16dcb2d230ba5dfdfdb848c854006aab6dd1bd3dbf29fcddf04b07a4" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-s390x.sh#0b4d5a3f16dcb2d230ba5dfdfdb848c854006aab6dd1bd3dbf29fcddf04b07a4" "miniconda" verify_py311 ;; "Linux-x86_64" ) - install_script "Miniconda3-py311_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-x86_64.sh#d8c1645776c0758214e4191c605abe5878002051316bd423f2b14b22d6cb4251" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-Linux-x86_64.sh#d8c1645776c0758214e4191c605abe5878002051316bd423f2b14b22d6cb4251" "miniconda" verify_py311 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py311_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-MacOSX-arm64.sh#140b80b4d285bbbcc8616891876ec3613e46acbedb02321b9ddc03ff0784c584" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-MacOSX-arm64.sh#140b80b4d285bbbcc8616891876ec3613e46acbedb02321b9ddc03ff0784c584" "miniconda" verify_py311 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py311_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-MacOSX-x86_64.sh#41c4ed1ce9f44049346a7efd8311919f82a8115637eced8796b5d18599f50cae" "miniconda" verify_py311 + install_script "Miniconda3-py311_25.1.1-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.1.1-2-MacOSX-x86_64.sh#41c4ed1ce9f44049346a7efd8311919f82a8115637eced8796b5d18599f50cae" "miniconda" verify_py311 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 index 2cd0ad93d8..9ba7b77676 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.11.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-aarch64.sh#ed0c6cc091802bc4d1440260d60d431b263f22d5cb9be5df71e7ff176c8f1cd8" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 index a1b88cfbf3..7f409f439d 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.3.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.3.1-1-Linux-aarch64.sh#8d2470bdbee7e93d9b4972a3272b63673ba62113282378f98f23b423cc61ef59" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 index 37ed9ef99e..180e9316f3 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-0 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-0-Linux-aarch64.sh#3862c5ecba0949c3bdbeeb7d072664215924fbccb25f0d3f33782362c5405e22" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 index ca4940e950..65c349cb4a 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.5.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.5.1-1-Linux-aarch64.sh#39a6d853df41b74aabe37dd666732f7556f81584af789693d7e3005d7a04c64f" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 index e642858d7d..ba1f829b77 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.7.0-2 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.7.0-2-Linux-aarch64.sh#28ca561ec2d9a1ae72fbf3f833b8918c747ce21f57d79e218e47bf7d4d2ce792" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 index f017ac351e..6d2d135d52 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-1-Linux-aarch64.sh#4e0723b9d76aa491cf22511dac36f4fdec373e41d2a243ff875e19b8df39bf94" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 index 89a94e06e9..faa299517c 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 +++ b/plugins/python-build/share/python-build/miniconda3-3.11-25.9.1-3 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py311_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.9.1-3-Linux-aarch64.sh#92a4df72178d87626072b39aca8fa4721f29d192ed0d70e268586f63b41f7657" "miniconda" verify_py311 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 index caf2cff27a..dc7f588aba 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-0 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py312_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-aarch64.sh#ae9d3ea83df97e78fd51c452d0bc75005a28d504c22db6f1000822293f916b54" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-aarch64.sh#ae9d3ea83df97e78fd51c452d0bc75005a28d504c22db6f1000822293f916b54" "miniconda" verify_py312 ;; "Linux-s390x" ) - install_script "Miniconda3-py312_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-s390x.sh#fa0b443ea73c71abd29eb51212c7b032d5089cbb2761aa07f91668b903a2a575" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-s390x.sh#fa0b443ea73c71abd29eb51212c7b032d5089cbb2761aa07f91668b903a2a575" "miniconda" verify_py312 ;; "Linux-x86_64" ) - install_script "Miniconda3-py312_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-x86_64.sh#832de27a5a35b7963f0d83466abada3eb138e51985255f190e0dc350427a9dd1" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-Linux-x86_64.sh#832de27a5a35b7963f0d83466abada3eb138e51985255f190e0dc350427a9dd1" "miniconda" verify_py312 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py312_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-MacOSX-arm64.sh#24821d2c87598ae0f8e697e612cdf41d0dbc9ae563cae8aacd878d50d1a86e1e" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-MacOSX-arm64.sh#24821d2c87598ae0f8e697e612cdf41d0dbc9ae563cae8aacd878d50d1a86e1e" "miniconda" verify_py312 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py312_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-MacOSX-x86_64.sh#65f91c564abced759ce7fca099239b7ed4ae9835cb4b64a11923cd3b5f57f5f1" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-0-MacOSX-x86_64.sh#65f91c564abced759ce7fca099239b7ed4ae9835cb4b64a11923cd3b5f57f5f1" "miniconda" verify_py312 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 index d644f64546..8f466e4977 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-1 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py312_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-aarch64.sh#c8a2112c5ed07196a0e7cf0682ff39c9a28eac5862df49659af7d4f6906efa70" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-aarch64.sh#c8a2112c5ed07196a0e7cf0682ff39c9a28eac5862df49659af7d4f6906efa70" "miniconda" verify_py312 ;; "Linux-s390x" ) - install_script "Miniconda3-py312_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-s390x.sh#f644f5c18985078e6cd1af9c517f9634dbb3199a86f75eb90a9fb303289ebf0b" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-s390x.sh#f644f5c18985078e6cd1af9c517f9634dbb3199a86f75eb90a9fb303289ebf0b" "miniconda" verify_py312 ;; "Linux-x86_64" ) - install_script "Miniconda3-py312_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-x86_64.sh#2cc524b9b47b268e1a3ecca1f7f3c1bb4142f42a10001c88fb69c6664ca8a9a6" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-Linux-x86_64.sh#2cc524b9b47b268e1a3ecca1f7f3c1bb4142f42a10001c88fb69c6664ca8a9a6" "miniconda" verify_py312 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py312_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-MacOSX-arm64.sh#c8f316330308f712b94dd7ac2a6048f87d6b364c3354f4e619ed4aef6d99dfad" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-MacOSX-arm64.sh#c8f316330308f712b94dd7ac2a6048f87d6b364c3354f4e619ed4aef6d99dfad" "miniconda" verify_py312 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py312_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-MacOSX-x86_64.sh#29fce1ea800ff167e2f44d5a0dbd33124384b33520fd481378908e94de68b1a1" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-1-MacOSX-x86_64.sh#29fce1ea800ff167e2f44d5a0dbd33124384b33520fd481378908e94de68b1a1" "miniconda" verify_py312 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 index d712136f99..dc68b3c3ee 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.1.1-2 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py312_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-aarch64.sh#6d05b9f9b7f327b90797a4cf56d68c81578bab2f63257a3e7a8b72cb0f0e4b5d" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-aarch64.sh#6d05b9f9b7f327b90797a4cf56d68c81578bab2f63257a3e7a8b72cb0f0e4b5d" "miniconda" verify_py312 ;; "Linux-s390x" ) - install_script "Miniconda3-py312_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-s390x.sh#55c681937c27e13a8ed818d1fec182e623e0308fffc1b10605896dac15f90077" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-s390x.sh#55c681937c27e13a8ed818d1fec182e623e0308fffc1b10605896dac15f90077" "miniconda" verify_py312 ;; "Linux-x86_64" ) - install_script "Miniconda3-py312_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-x86_64.sh#4766d85b5f7d235ce250e998ebb5a8a8210cbd4f2b0fea4d2177b3ed9ea87884" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-Linux-x86_64.sh#4766d85b5f7d235ce250e998ebb5a8a8210cbd4f2b0fea4d2177b3ed9ea87884" "miniconda" verify_py312 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py312_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-MacOSX-arm64.sh#16e7eea739d470d0c3451e9bb779bbfa169b98cfb283d2d6508945e0c6b36ada" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-MacOSX-arm64.sh#16e7eea739d470d0c3451e9bb779bbfa169b98cfb283d2d6508945e0c6b36ada" "miniconda" verify_py312 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py312_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-MacOSX-x86_64.sh#0df9f4b7d063a78d18fd02af2b0a97121879af00b535ea79ee23d68d1005e6f8" "miniconda" verify_py312 + install_script "Miniconda3-py312_25.1.1-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.1.1-2-MacOSX-x86_64.sh#0df9f4b7d063a78d18fd02af2b0a97121879af00b535ea79ee23d68d1005e6f8" "miniconda" verify_py312 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 index 8df10e1ed1..108113a232 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.11.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-aarch64.sh#f51aa82c395a2c5854c28ef8b7a24e252d5daca4a7a054ec8d9d6847d1d84518" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 index 98a6bc271b..3c732316b3 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.3.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.3.1-1-Linux-aarch64.sh#4b8078ef311bad880b2497c098d734cd0e7316410a4f4fa1a8dbf6ab9ade98ea" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 index 1f046692a3..226d169a7c 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-0 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-0-Linux-aarch64.sh#9bd5765f163568f4ac85b8189aa2b260d1febb1080d085bb2535a3cae2d7f0e4" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 index 8d2b79cad9..847f0c74b9 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.5.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.5.1-1-Linux-aarch64.sh#b007c6307c9a2081b8abfa0ff16caf0117226a7a9485031853fea125795de7ca" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 index 6173575b39..c546558e30 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.7.0-2 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.7.0-2-Linux-aarch64.sh#edc03373d75b3a06de594a7f819ad351bd2fa7602854f392107998e62468c783" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 index 52243e0564..a2f4b3aaee 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-1-Linux-aarch64.sh#11ab86931679e6d9b15112f2e866dad1fcbd89a039a6442c0bce7b86fd282f0a" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 index c138464b89..ed38ff5bb7 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 +++ b/plugins/python-build/share/python-build/miniconda3-3.12-25.9.1-3 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py312_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.9.1-3-Linux-aarch64.sh#8c5c1d38011fed8053d7bdaaf7fab372c3f71dbb77791e07692fb8059b7828bd" "miniconda" verify_py312 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 index ea62bdeba5..f5e3f151b3 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.11.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-aarch64.sh#9f39cc8c46ca37afed5e563cc234b3add34fea2f1119e076dcae7a377ca6b8ee" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 index af30da494f..a468d36afe 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.3.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.3.1-1-Linux-aarch64.sh#4caa0c266ab726b440ccad40a74774167494e001da5de281b74f2d5673e4ace9" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 index 2f0fcd47d4..9cea933d81 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-0 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-0-Linux-aarch64.sh#368d5250682c12d3e1810e8cf5ce4f08e95ccc56c96dcf559567a6b4f72b203d" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 index f0d9115d33..e795f997c3 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.5.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.5.1-1-Linux-aarch64.sh#b7d611dcaa638efd700a4a4eb24fbcb9f7b94cc1773d7c655959c330d0b68e16" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 index 3e68cf75fd..75c1bdbdfb 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.7.0-2 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.7.0-2-Linux-aarch64.sh#350dc95067e0c87bcaa67367e60ea1caae01872adeb945c760bb4a67518d9673" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 index 1a7e9902c6..374743aece 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-1-Linux-aarch64.sh#a0de4562c368a8b5ca4385843f405684c79bea7aa3b75d7513ff99c0c6435d51" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 index 89d21ac471..5d4e8915bb 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 +++ b/plugins/python-build/share/python-build/miniconda3-3.13-25.9.1-3 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py313_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.9.1-3-Linux-aarch64.sh#036053e7e6e5866435bc1a11711b41293e5bf0776bb4aa9a7ea46d01f30eda31" "miniconda" verify_py313 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 index 3b3b24d8b2..d8499f88e2 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-0 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py39_25.1.1-0-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-aarch64.sh#6813ed27242f8c6a000fcdc0b2bb93253411a22ef110eec915b7d1a4aab3587b" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-aarch64.sh#6813ed27242f8c6a000fcdc0b2bb93253411a22ef110eec915b7d1a4aab3587b" "miniconda" verify_py39 ;; "Linux-s390x" ) - install_script "Miniconda3-py39_25.1.1-0-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-s390x.sh#8220e1e67cc73a51d90108f5bdf5451aefae0b00d400958ae7d42e21d9a32999" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-0-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-s390x.sh#8220e1e67cc73a51d90108f5bdf5451aefae0b00d400958ae7d42e21d9a32999" "miniconda" verify_py39 ;; "Linux-x86_64" ) - install_script "Miniconda3-py39_25.1.1-0-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-x86_64.sh#13a5870ab5b5c75f23a54eac2ba8dbff38bd4bd33d52aecbc6154ca0ff488e10" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-Linux-x86_64.sh#13a5870ab5b5c75f23a54eac2ba8dbff38bd4bd33d52aecbc6154ca0ff488e10" "miniconda" verify_py39 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py39_25.1.1-0-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-MacOSX-arm64.sh#6d60e9a8e0f531e09791f033529a6142ceb39ec7d23f8fc8231d287e39cdb30d" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-MacOSX-arm64.sh#6d60e9a8e0f531e09791f033529a6142ceb39ec7d23f8fc8231d287e39cdb30d" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py39_25.1.1-0-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-MacOSX-x86_64.sh#3752cbfae31526e53cae1b2976e183787fc98782c63bbd048853ed8860616051" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-0-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-0-MacOSX-x86_64.sh#3752cbfae31526e53cae1b2976e183787fc98782c63bbd048853ed8860616051" "miniconda" verify_py39 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 index 4a692027cb..4176313c63 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-1 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py39_25.1.1-1-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-aarch64.sh#ae55c260fd250154627f74d0ede010c99c20741698d7d687b2dfca0aa14ce2d5" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-aarch64.sh#ae55c260fd250154627f74d0ede010c99c20741698d7d687b2dfca0aa14ce2d5" "miniconda" verify_py39 ;; "Linux-s390x" ) - install_script "Miniconda3-py39_25.1.1-1-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-s390x.sh#6957a17c17e86fe43ba3c2e18dcfc1415710410c4a36f7a1c46fbc64aab4fb27" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-1-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-s390x.sh#6957a17c17e86fe43ba3c2e18dcfc1415710410c4a36f7a1c46fbc64aab4fb27" "miniconda" verify_py39 ;; "Linux-x86_64" ) - install_script "Miniconda3-py39_25.1.1-1-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-x86_64.sh#c5ec876718798ccd6ce93ce38eb3253ef103244ea6efaa8c978df19047ba916a" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-Linux-x86_64.sh#c5ec876718798ccd6ce93ce38eb3253ef103244ea6efaa8c978df19047ba916a" "miniconda" verify_py39 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py39_25.1.1-1-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-MacOSX-arm64.sh#d717fb09b137a048d9b2f6ee9d3e7ef63ab841e35d80cb37f40d20ac949915c2" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-MacOSX-arm64.sh#d717fb09b137a048d9b2f6ee9d3e7ef63ab841e35d80cb37f40d20ac949915c2" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py39_25.1.1-1-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-MacOSX-x86_64.sh#a01dd65f2463bdec15abc1f796847912c67caaf78ea1c67f038ec02aa8c3adaf" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-1-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-1-MacOSX-x86_64.sh#a01dd65f2463bdec15abc1f796847912c67caaf78ea1c67f038ec02aa8c3adaf" "miniconda" verify_py39 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 index f299266da2..2dee6f723a 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.1.1-2 @@ -1,18 +1,19 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniconda3-py39_25.1.1-2-Linux-aarch64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-aarch64.sh#5afee04df06c923462341cfc87727100a67fa854550d0d7a2e6295005168e6b7" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-aarch64.sh#5afee04df06c923462341cfc87727100a67fa854550d0d7a2e6295005168e6b7" "miniconda" verify_py39 ;; "Linux-s390x" ) - install_script "Miniconda3-py39_25.1.1-2-Linux-s390x.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-s390x.sh#94a10a8a43dfd0360ecad9df24ef768db1b776d1a76fc2df1928d76c0bbb5535" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-2-Linux-s390x" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-s390x.sh#94a10a8a43dfd0360ecad9df24ef768db1b776d1a76fc2df1928d76c0bbb5535" "miniconda" verify_py39 ;; "Linux-x86_64" ) - install_script "Miniconda3-py39_25.1.1-2-Linux-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-x86_64.sh#b40682cedf1e1755c02555f8d3d98aadb4607a68da7caf72a9bbe1fb9ae0b904" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-Linux-x86_64.sh#b40682cedf1e1755c02555f8d3d98aadb4607a68da7caf72a9bbe1fb9ae0b904" "miniconda" verify_py39 ;; "MacOSX-arm64" ) - install_script "Miniconda3-py39_25.1.1-2-MacOSX-arm64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-MacOSX-arm64.sh#b50b4c46b481d3c9cb4befdbcf18087748d85eee9148c56a35f199940d607933" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-MacOSX-arm64.sh#b50b4c46b481d3c9cb4befdbcf18087748d85eee9148c56a35f199940d607933" "miniconda" verify_py39 ;; "MacOSX-x86_64" ) - install_script "Miniconda3-py39_25.1.1-2-MacOSX-x86_64.sh" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-MacOSX-x86_64.sh#92109afe5edcc06d3a3c61b0faf1edd3e3e2539eaad637d2711305ccd0065046" "miniconda" verify_py39 + install_script "Miniconda3-py39_25.1.1-2-MacOSX-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.1.1-2-MacOSX-x86_64.sh#92109afe5edcc06d3a3c61b0faf1edd3e3e2539eaad637d2711305ccd0065046" "miniconda" verify_py39 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 index 63a64094d3..dc9cecb330 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.3.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py39_25.3.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.3.1-1-Linux-aarch64.sh#435f9b5640716dd770e9abe404c54db7d3493cb61a814c5de1fe345ea017d4a6" "miniconda" verify_py39 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 index c89582fde5..fb760401e9 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-0 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py39_25.5.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-0-Linux-aarch64.sh#e4311fcce812cce6a914e7a82fb1180d278eaa705e40be6789795781d375fe53" "miniconda" verify_py39 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 index f41114c582..7ebea2f8cb 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.5.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py39_25.5.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.5.1-1-Linux-aarch64.sh#a1078a803928d8f8f1fd29a2bdad6689f19239844ee3beb84372f66f00cbfb19" "miniconda" verify_py39 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 b/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 index b04c87b5a9..582a42dc58 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.7.0-2 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py39_25.7.0-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.7.0-2-Linux-aarch64.sh#18befc78dbfca5bbdc2c8085f2bedd0345a5fbf7d0f1e189fddaf2d17f31d3af" "miniconda" verify_py39 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 index a192f5ef38..d06e0b5d32 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-1 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py39_25.9.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-1-Linux-aarch64.sh#983ef280dec1d0f965b6b6133c585ce902e07136105d4977aa5de3aa027cfa55" "miniconda" verify_py39 diff --git a/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 index d949df07f7..37aa2e98dd 100644 --- a/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 +++ b/plugins/python-build/share/python-build/miniconda3-3.9-25.9.1-3 @@ -1,3 +1,4 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) install_script "Miniconda3-py39_25.9.1-3-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py39_25.9.1-3-Linux-aarch64.sh#2cf395401906b6968cfd2bc5b522ad4dca40374987e790c4daa83f049d132841" "miniconda" verify_py39 From 98a7a6809cb335b16ee37881d4c574ebf0a61cab Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 8 Jan 2026 11:17:11 +0300 Subject: [PATCH 1074/1324] Fix verify_py prefix in anaconda3-2025.06 --- plugins/python-build/scripts/add_miniconda.py | 4 +++- .../python-build/share/python-build/anaconda3-2025.06-0 | 8 ++++---- .../python-build/share/python-build/anaconda3-2025.06-1 | 8 ++++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index 8d3e348082..ddea065d15 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -219,7 +219,9 @@ def default_py_version(self): # since 4.8, Miniconda specifies versions explicitly in the file name raise ValueError("Miniconda 4.8+ is supposed to specify a Python version explicitly") if self.flavor == "anaconda": - # https://docs.anaconda.com/free/anaconda/reference/release-notes/ + # https://www.anaconda.com/docs/tools/anaconda-org/release-notes + if v >= (2025,6): + return PyVersion.PY313 if v >= (2024,6): return PyVersion.PY312 if v >= (2023,7): diff --git a/plugins/python-build/share/python-build/anaconda3-2025.06-0 b/plugins/python-build/share/python-build/anaconda3-2025.06-0 index 2ad64f9467..f95f512789 100644 --- a/plugins/python-build/share/python-build/anaconda3-2025.06-0 +++ b/plugins/python-build/share/python-build/anaconda3-2025.06-0 @@ -1,15 +1,15 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Anaconda3-2025.06-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-aarch64.sh#e6177f844f6156f07978c85b1f18ca3b7724d5ab5dba44b88a7f6b2452ba6271" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-0-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-aarch64.sh#e6177f844f6156f07978c85b1f18ca3b7724d5ab5dba44b88a7f6b2452ba6271" "anaconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Anaconda3-2025.06-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh#08db13f6db5dd4f99b3a6db96c68d064d50ea23742013b70f588e3a27a5204da" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-0-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-Linux-x86_64.sh#08db13f6db5dd4f99b3a6db96c68d064d50ea23742013b70f588e3a27a5204da" "anaconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Anaconda3-2025.06-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-MacOSX-arm64.sh#195f234204e2f18803cea38bbebefcaac5a3d8d95e2e4ee106d1b87b23b9fc4a" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-0-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-MacOSX-arm64.sh#195f234204e2f18803cea38bbebefcaac5a3d8d95e2e4ee106d1b87b23b9fc4a" "anaconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Anaconda3-2025.06-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-MacOSX-x86_64.sh#8625a155ff1d2848afa360e70357e14c25f0ac7ac21e4e4bf15015bc58b08d06" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-0-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-0-MacOSX-x86_64.sh#8625a155ff1d2848afa360e70357e14c25f0ac7ac21e4e4bf15015bc58b08d06" "anaconda" verify_py313 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/anaconda3-2025.06-1 b/plugins/python-build/share/python-build/anaconda3-2025.06-1 index 10f343c753..96278df577 100644 --- a/plugins/python-build/share/python-build/anaconda3-2025.06-1 +++ b/plugins/python-build/share/python-build/anaconda3-2025.06-1 @@ -1,15 +1,15 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Anaconda3-2025.06-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-Linux-aarch64.sh#98dfb82732991f3f4d385a265da5fd2190d65ec31ceafa0b93f3c5edf4431a5b" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-Linux-aarch64.sh#98dfb82732991f3f4d385a265da5fd2190d65ec31ceafa0b93f3c5edf4431a5b" "anaconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Anaconda3-2025.06-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-Linux-x86_64.sh#82976426a2c91fe1453281def386f9ebebd8fdb45dc6c970b54cfef4e9120857" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-Linux-x86_64.sh#82976426a2c91fe1453281def386f9ebebd8fdb45dc6c970b54cfef4e9120857" "anaconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Anaconda3-2025.06-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-MacOSX-arm64.sh#f9366a024ac6f043dc224986c54f1b4e1226e6ccb6291d83bdadb489f159d847" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-MacOSX-arm64.sh#f9366a024ac6f043dc224986c54f1b4e1226e6ccb6291d83bdadb489f159d847" "anaconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Anaconda3-2025.06-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-MacOSX-x86_64.sh#58139fe195337f3041259e3a611339ed3afa4d164cc9aa2a7e8e84c0673e3670" "anaconda" verify_py312 + install_script "Anaconda3-2025.06-1-MacOSX-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.06-1-MacOSX-x86_64.sh#58139fe195337f3041259e3a611339ed3afa4d164cc9aa2a7e8e84c0673e3670" "anaconda" verify_py313 ;; * ) { echo From 935e1a68cd66ad6902706049c5c3c4e396c30420 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 8 Jan 2026 11:17:52 +0300 Subject: [PATCH 1075/1324] Add anaconda3-2025.12-1 --- .../share/python-build/anaconda3-2025.12-1 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2025.12-1 diff --git a/plugins/python-build/share/python-build/anaconda3-2025.12-1 b/plugins/python-build/share/python-build/anaconda3-2025.12-1 new file mode 100644 index 0000000000..b9b72537e3 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2025.12-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2025.12-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.12-1-Linux-aarch64.sh#9ba6b32919dfd1964377a4ac5c5e4de645b6bd09efab4a25aaf6e121a60e525c" "anaconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2025.12-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.12-1-Linux-x86_64.sh#132f1f312d05e391906b959ad83aa411b97ece55966bb34df011ef41ba60a35c" "anaconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2025.12-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.12-1-MacOSX-arm64.sh#f998f0918b9f06e08c3444f2b2c897fd3036da6725441ca064aa71ad47c75481" "anaconda" verify_py313 + ;; +* ) + { 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 From f614e5caa540be3ec0f4cbae2fd81e0b8ba3b0c5 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 8 Jan 2026 12:55:27 +0300 Subject: [PATCH 1076/1324] Fix hang in Ubuntu build for Anaconda-2025.12 --- .github/workflows/modified_scripts_build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index babdb895e5..a538763be6 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -171,10 +171,6 @@ jobs: os.environ["EXPECTED_PYTHON"], "bin") assert os.path.dirname(sys.executable) == correct_dir' - # bundled executables in some Anaconda releases cause the post-run step to hang in MacOS - - run: | - pyenv global system - rm -f "$(pyenv root)"/shims/* ubuntu_build: needs: discover_modified_scripts @@ -235,6 +231,10 @@ jobs: "bin") assert os.path.dirname(sys.executable) == correct_dir' fi + # bundled executables in some Anaconda releases cause the post-run step to break + - run: | + pyenv global system + rm -f "$(pyenv root)"/shims/* ubuntu_build_tar_gz: needs: discover_modified_scripts if: needs.discover_modified_scripts.outputs.versions_cpython_only != '[""]' From 8c50260ba2b35b07868ab2f1d26a322e45412279 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 8 Jan 2026 13:26:35 +0300 Subject: [PATCH 1077/1324] Anaconda 2025.12 dropped MacOS x64 support --- .github/workflows/modified_scripts_build.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index a538763be6..b53de07dbd 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -31,7 +31,6 @@ jobs: - name: Build exclusions JSON shell: python run: | - import base64 import os import json import random @@ -47,7 +46,14 @@ jobs: name, version = m.group(1), packaging.version.Version(m.group(3)) # Miniconda dropped MacOS x64 support - if name == 'miniconda3' and version >= packaging.version.Version('25.9.1'): + if (name == 'miniconda3' and version >= packaging.version.Version('25.9.1')): + result.append({'os':'macos-15-intel','python-version':line}) + + if m:=re.match(r'([^-]+)-(\d+\.\d+)', line): + name, version = m.group(1), packaging.version.Version(m.group(2)) + + # Anaconda dropped MacOS x64 support + if name == 'anaconda3' and version >= packaging.version.Version('2025.12'): result.append({'os':'macos-15-intel','python-version':line}) EOF = str(random.getrandbits(15*8)) From d9182d6edc5ab978c586a602cba3236e2d7b2a37 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 9 Jan 2026 09:52:09 +0300 Subject: [PATCH 1078/1324] CI: automatically check for CPython releases (#3388) * .gitignore local venv * Add alt GNU mirror support with * Fix UnboundLocalError when no micro 0 releases * Cutoff for existing vetsions as well * add missing dependency more_itertools * workaround fake_useragent 2.0.0 falsely declaring 3.8 compatibility --- .github/workflows/add_version.yml | 45 ++++++++++++++++++ plugins/python-build/scripts/.gitignore | 1 + plugins/python-build/scripts/add_cpython.py | 46 ++++++++++++++----- plugins/python-build/scripts/requirements.txt | 2 + 4 files changed, 82 insertions(+), 12 deletions(-) create mode 100644 .github/workflows/add_version.yml create mode 100644 plugins/python-build/scripts/.gitignore diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml new file mode 100644 index 0000000000..c4b31efbde --- /dev/null +++ b/.github/workflows/add_version.yml @@ -0,0 +1,45 @@ +name: Add versions + +on: + - workflow_dispatch + - schedule: + # Every N hours + - cron: '* */8 * * *' + +permissions: + contents: write + pull-requests: write + +jobs: + add_cpython: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 + with: + python-version: 3 + cache: 'pip' + cache-dependency-path: plugins/python-build/scripts/requirements.txt + - run: pip install -r plugins/python-build/scripts/requirements.txt + + - name: check for a release + run: | + python plugins/python-build/scripts/add_cpython.py --verbose >added_versions.lst && rc=$? || rc=$? + echo "rc=$rc" >> $GITHUB_ENV + - name: set PR properties + shell: python + run: | + import os + import sys + versions=[l.rstrip() for l in open("added_versions.lst")] + with open(os.environ['GITHUB_ENV'],'a') as f: + f.write(f'branch_name=auto_add_version/{"_".join(versions)}\n') + f.write(f'pr_name=Add {", ".join(versions)}\n') + os.remove("added_versions.lst") + + - name: Create Pull Request + uses: peter-evans/create-pull-request@v8 + if: env.rc == 0 + with: + branch: ${{ env.branch_name }} + title: ${{ env.pr_name }} diff --git a/plugins/python-build/scripts/.gitignore b/plugins/python-build/scripts/.gitignore new file mode 100644 index 0000000000..f9606a377c --- /dev/null +++ b/plugins/python-build/scripts/.gitignore @@ -0,0 +1 @@ +/venv diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index a21ae6618d..44551bc35a 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -30,8 +30,6 @@ logger = logging.getLogger(__name__) -REPO = "https://www.python.org/ftp/python/" - CUTOFF_VERSION=packaging.version.Version('3.9') EXCLUDED_VERSIONS= { packaging.version.Version("3.9.3") #recalled upstream @@ -126,6 +124,7 @@ def add_version(version: packaging.version.Version): handle_t_thunks(version, previous_version, is_prerelease_upgrade) + print(version) return True @@ -170,7 +169,7 @@ def main(): if v.micro == 0 and v not in VersionDirectory.existing): # may actually be a prerelease VersionDirectory.available.get_store_available_source_downloads(initial_release, True) - del initial_release + del initial_release versions_to_add = sorted(VersionDirectory.available.keys() - VersionDirectory.existing.keys()) @@ -294,12 +293,16 @@ def __init__(self, session: requests.Session, seq=None): super().__init__(seq) self._session = session - def populate(self, url=REPO, pattern=r'^\d+'): + def populate(self): """ Fetch remote versions """ logger.info("Fetching available CPython versions") - for name, url in DownloadPage.enum_download_entries(url, pattern, self._session): + for name, url in DownloadPage.enum_download_entries( + "https://www.python.org/ftp/python/", + r'^(\d+.*)/$', self._session, + make_name= lambda m: m.group(1) + ): v = packaging.version.Version(name) if v < CUTOFF_VERSION or v in EXCLUDED_VERSIONS: continue @@ -341,11 +344,13 @@ def get_store_available_source_downloads(self, version, refine_mode=False): )) if not exact_download_found: + actual_version = max(additional_versions_found.keys()) + logger.debug(f"Refining available version {version} to {actual_version}") del self[version] self.append( additional_versions_found[ - max(additional_versions_found.keys()) + actual_version ]) @@ -368,6 +373,8 @@ def populate(self): continue try: v = packaging.version.Version(entry_name) + if v < CUTOFF_VERSION: + continue # branch tip scrpts are different from release scripts and thus unusable as a pattern if v.dev is not None: continue @@ -488,19 +495,34 @@ class _DownloadPageEntry(typing.NamedTuple): url: str @classmethod - def enum_download_entries(cls, url, pattern, session=None) -> typing.Generator[_DownloadPageEntry, None, None]: + def enum_download_entries(cls, url, pattern, session=None, + make_name = lambda m: m.string ) \ + -> typing.Generator[_DownloadPageEntry, None, None]: + """ + Enum download entries in a standard Apache directory page + (incl. CPython download page https://www.python.org/ftp/python/) + or a GNU mirror directory page + (https://ftpmirror.gnu.org// destinations) + """ if session is None: session = requests_html.HTMLSession() response = session.get(url) page = response.html table = page.find("pre", first=True) - # the first entry is ".." - links = table.find("a")[1:] + # some GNU mirrors format entries as a table + # (e.g. https://mirrors.ibiblio.org/gnu/readline/) + if table is None: + table = page.find("table", first=True) + links = table.find("a") for link in links: - name = link.text.rstrip('/') - if not re.match(pattern, name): + href = link.attrs['href'] + # CPython entries are directories + name = link.text + # skip directory entries + if not (m:=re.match(pattern, name)): continue - yield cls._DownloadPageEntry(name, urllib.parse.urljoin(response.url, link.attrs['href'])) + name = make_name(m) + yield cls._DownloadPageEntry(name, urllib.parse.urljoin(response.url, href)) class Re: diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index d7bf7606c5..c79b3e294b 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -1,4 +1,6 @@ +more_itertools requests-html +fake_useragent<2 lxml[html_clean] packaging requests From c8129ceee62792f57f873f2ffc9e277cace3c092 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 Jan 2026 12:04:52 +0300 Subject: [PATCH 1079/1324] fix schedule syntax --- .github/workflows/add_version.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index c4b31efbde..291d983ee0 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -1,8 +1,8 @@ name: Add versions on: - - workflow_dispatch - - schedule: + workflow_dispatch: {} + schedule: # Every N hours - cron: '* */8 * * *' From c62be31e8c5c5bf517f406440855683b977b3f02 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 10 Jan 2026 06:16:21 +0300 Subject: [PATCH 1080/1324] 2.6.18 --- CHANGELOG.md | 16 ++++++++++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fd74e1c1a2..3ff5818060 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Version History +## Release v2.6.18 +* Fix an infinite loop if a shim is symlinked to and called from a different location with "system" version active by @native-api in https://github.com/pyenv/pyenv/pull/3375 +* CI: Update and cleanup workflow scripts by @native-api in https://github.com/pyenv/pyenv/pull/3372 +* Add PowerShell support by @fblanchetNaN in https://github.com/pyenv/pyenv/pull/2749 +* rehash: support older BSD `mktemp` by @native-api in https://github.com/pyenv/pyenv/pull/3376 +* rehash: report final lock acquisition error while silencing provisional ones; init: don't silence automatic rehash by @native-api in https://github.com/pyenv/pyenv/pull/3377 +* pyenv launcher: introduce and export _PYENV_INSTALL_PREFIX by @rockandska in https://github.com/pyenv/pyenv/pull/3334 +* README: Document how to change Python version in a shell spawned from a Python-based program (e.g. Jupyter) by @native-api in https://github.com/pyenv/pyenv/pull/3380 +* Recognize an argument to -j in MAKEFLAGS when building extensions in 3.10-3.11 and latest 3.5-3.9 by @native-api in https://github.com/pyenv/pyenv/pull/3379 +* CI: add a script to autogenerate CPython build scripts by @native-api in https://github.com/pyenv/pyenv/pull/3358 +* Add miniconda3-25.11.1-1 by @binbjz in https://github.com/pyenv/pyenv/pull/3382 +* CI: exclude unsupported MacOS-x64 for recent Miniconda versions by @binbjz in https://github.com/pyenv/pyenv/pull/3385 +* Auto-accept TOS for miniconda3-25+ by @native-api in https://github.com/pyenv/pyenv/pull/3386 +* Add anaconda-2025.12-1 by @native-api in https://github.com/pyenv/pyenv/pull/3387 +* CI: automatically check for CPython releases and generate PRs by @native-api in https://github.com/pyenv/pyenv/pull/3388 + ## Release v2.6.17 * Add miniforge 25.9.1-0, 25.11.0-1 by @13steinj in https://github.com/pyenv/pyenv/pull/3371 * miniconda3-latest: auto accept TOS by @native-api in https://github.com/pyenv/pyenv/pull/3373 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 79ea6d983c..d51607ce1f 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.17" +version="2.6.18" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index deecea5256..625c2aae74 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.17" +PYTHON_BUILD_VERSION="2.6.18" OLDIFS="$IFS" From 05ba9388a7ff079541ef5b9525beed6cdfb80b2d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 11 Jan 2026 23:45:25 +0300 Subject: [PATCH 1081/1324] Fix schedule --- .github/workflows/add_version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 291d983ee0..e2cd392041 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: {} schedule: # Every N hours - - cron: '* */8 * * *' + - cron: '0 */8 * * *' permissions: contents: write From 37bf92af84d4fbb4f5db5f1db5b905d52a52226a Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Tue, 13 Jan 2026 20:00:41 -0500 Subject: [PATCH 1082/1324] Add CPython 3.15.0a4 (#3390) --- .../python-build/share/python-build/{3.15.0a3 => 3.15.0a4} | 4 ++-- .../python-build/share/python-build/{3.15.0a3t => 3.15.0a4t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0a3 => 3.15.0a4} (61%) rename plugins/python-build/share/python-build/{3.15.0a3t => 3.15.0a4t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a3 b/plugins/python-build/share/python-build/3.15.0a4 similarity index 61% rename from plugins/python-build/share/python-build/3.15.0a3 rename to plugins/python-build/share/python-build/3.15.0a4 index d4f07bba57..c3b486ae91 100644 --- a/plugins/python-build/share/python-build/3.15.0a3 +++ b/plugins/python-build/share/python-build/3.15.0a4 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0a3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a3.tar.xz#6ab02cdac24505779877bb1d9189432d67e90ddf2a9b8b7b373ead54ac07b607" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a4.tar.xz#a0a521d5c480b89979da1aefce29750eb158128c0178728ebfef7511c21b4e77" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0a3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a3.tgz#a8afd71361baf8f02f459a4ab9b73eb4cdf2895991218b8418cf7ba49c96bef7" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a4.tgz#c6e450064e38f903cb2857018fc31cff8fcdedae04820b0bfff0825d690ff85f" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0a3t b/plugins/python-build/share/python-build/3.15.0a4t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a3t rename to plugins/python-build/share/python-build/3.15.0a4t From 92c9ab52731b289a3866be0620be840b43059faf Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 14 Jan 2026 04:11:02 +0300 Subject: [PATCH 1083/1324] 2.6.19 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3ff5818060..5ee619be71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.19 +* Add CPython 3.15.0a4 by @nedbat in https://github.com/pyenv/pyenv/pull/3390 + ## Release v2.6.18 * Fix an infinite loop if a shim is symlinked to and called from a different location with "system" version active by @native-api in https://github.com/pyenv/pyenv/pull/3375 * CI: Update and cleanup workflow scripts by @native-api in https://github.com/pyenv/pyenv/pull/3372 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index d51607ce1f..23beb12ada 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.18" +version="2.6.19" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 625c2aae74..76d83531eb 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.18" +PYTHON_BUILD_VERSION="2.6.19" OLDIFS="$IFS" From 94faa168cbde67c00e35e7f3a4561c661d7501d1 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 14 Jan 2026 07:03:58 +0300 Subject: [PATCH 1084/1324] CI: adjust CPython PR generation logic (#3392) * For files retrieved through the GNU mirror load balancer, specify the load balancer URL * Explicitly `git mv` files on prerelease upgrade in case Git doesn't detect it * Add a trailing newline to a thunk --- .github/workflows/add_version.yml | 2 +- plugins/python-build/scripts/add_cpython.py | 73 +++++++++++++++------ 2 files changed, 55 insertions(+), 20 deletions(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index e2cd392041..b0b7cb9de7 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -34,7 +34,7 @@ jobs: versions=[l.rstrip() for l in open("added_versions.lst")] with open(os.environ['GITHUB_ENV'],'a') as f: f.write(f'branch_name=auto_add_version/{"_".join(versions)}\n') - f.write(f'pr_name=Add {", ".join(versions)}\n') + f.write(f'pr_name=Add CPython {", ".join(versions)}\n') os.remove("added_versions.lst") - name: Create Pull Request diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index 44551bc35a..f72f3d644f 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -13,9 +13,11 @@ import itertools import logging import operator +import os.path import pathlib import pprint import re +import subprocess import sys import typing import urllib.parse @@ -40,7 +42,8 @@ T_THUNK=\ '''export PYTHON_BUILD_FREE_THREADING=1 -source "${BASH_SOURCE[0]%t}"''' +source "${BASH_SOURCE[0]%t}" +''' def adapt_script(version: packaging.version.Version, @@ -120,7 +123,7 @@ def add_version(version: packaging.version.Version): return False VersionDirectory.existing.append(_CPythonExistingScriptInfo(version,str(new_path))) - cleanup_prerelease_upgrade(is_prerelease_upgrade, previous_version) + cleanup_prerelease_upgrade(is_prerelease_upgrade, previous_version, version) handle_t_thunks(version, previous_version, is_prerelease_upgrade) @@ -130,26 +133,55 @@ def add_version(version: packaging.version.Version): def cleanup_prerelease_upgrade( is_prerelease_upgrade: bool, - previous_version: packaging.version.Version)\ + previous_version: packaging.version.Version, + new_version: packaging.version.Version)\ -> None: - if is_prerelease_upgrade: - previous_version_path = OUT_DIR / str(previous_version) - logger.info(f'Deleting {previous_version_path}') - previous_version_path.unlink() - del VersionDirectory.existing[previous_version] + if not is_prerelease_upgrade: + return + + previous_version_filename = str(previous_version) + new_version_filename = str(new_version) + new_version_path = OUT_DIR / new_version_filename + + logger.info(f'Git moving {previous_version_filename} ' + f'to {new_version_filename} (preserving new data)') + + data = new_version_path.read_text() + new_version_path.unlink() + + subprocess.check_call(("git","-C",OUT_DIR, + "mv", + previous_version_filename, + new_version_filename)) + + new_version_path.write_text(data) + + del VersionDirectory.existing[previous_version] def handle_t_thunks(version, previous_version, is_prerelease_upgrade): - if (version.major, version.minor) >= (3, 13): - # an old thunk may have older version-specific code - # so it's safer to write a known version-independent template - thunk_path = OUT_DIR.joinpath(str(version) + "t") - logger.info(f"Writing {thunk_path}") - thunk_path.write_text(T_THUNK, encoding='utf-8') - if is_prerelease_upgrade: - previous_thunk_path = OUT_DIR.joinpath(str(previous_version) + "t") - logger.info(f"Deleting {previous_thunk_path}") - previous_thunk_path.unlink() + if (version.major, version.minor) < (3, 13): + return + + # an old thunk may have older version-specific code + # so it's safer to write a known version-independent template + thunk_name = (str(version) + "t") + thunk_path = OUT_DIR / thunk_name + previous_thunk_name = str(previous_version) + "t" + previous_thunk_path = OUT_DIR / previous_thunk_name + if is_prerelease_upgrade: + logger.info(f"Git moving {previous_thunk_name} to {thunk_name}") + subprocess.check_call(("git","-C",OUT_DIR, + "mv", + previous_thunk_name, + thunk_name)) + else: + logger.info(f"Deleting {previous_thunk_path}") + previous_thunk_path.unlink() + + logger.info(f"Writing {thunk_path}") + thunk_path.write_text(T_THUNK, encoding='utf-8') + Arguments: argparse.Namespace @@ -468,10 +500,13 @@ def _store_latest_release(self): max_item = candidates._latest_release() hash_ = Url.sha256_url(max_item.url, VersionDirectory.session) + permalink = 'https://ftpmirror.gnu.org/readline/' +\ + os.path.basename(urllib.parse.urlparse(max_item.url).path) + result = _ReadlineVersionInfo( max_item.version, max_item.package_name, - max_item.url, + permalink, hash_) self.append(result) From bd2f32dd7d818ee677ba691585edea7dfa3bc0f7 Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Wed, 14 Jan 2026 23:00:46 -0500 Subject: [PATCH 1085/1324] Add CPython 3.15.0a5 (#3393) --- .../python-build/share/python-build/{3.15.0a4 => 3.15.0a5} | 4 ++-- .../python-build/share/python-build/{3.15.0a4t => 3.15.0a5t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0a4 => 3.15.0a5} (61%) rename plugins/python-build/share/python-build/{3.15.0a4t => 3.15.0a5t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a4 b/plugins/python-build/share/python-build/3.15.0a5 similarity index 61% rename from plugins/python-build/share/python-build/3.15.0a4 rename to plugins/python-build/share/python-build/3.15.0a5 index c3b486ae91..831f777679 100644 --- a/plugins/python-build/share/python-build/3.15.0a4 +++ b/plugins/python-build/share/python-build/3.15.0a5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0a4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a4.tar.xz#a0a521d5c480b89979da1aefce29750eb158128c0178728ebfef7511c21b4e77" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a5" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a5.tar.xz#fee40da6450b67547c079dcb2852e8a03db6d57e06415466b2d3294449db22ef" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0a4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a4.tgz#c6e450064e38f903cb2857018fc31cff8fcdedae04820b0bfff0825d690ff85f" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a5" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a5.tgz#c4b535cd6f4c07889a53ce68fedf00c77c720086ab018723a8b5079b25a1e051" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0a4t b/plugins/python-build/share/python-build/3.15.0a5t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a4t rename to plugins/python-build/share/python-build/3.15.0a5t From 3441980e83bb1c5fdb2f1734ae4dab694d10ef71 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 15 Jan 2026 07:05:06 +0300 Subject: [PATCH 1086/1324] 2.6.20 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ee619be71..bc92f0f964 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.6.20 +* CI: adjust CPython PR generation logic by @native-api in https://github.com/pyenv/pyenv/pull/3392 +* Add CPython 3.15.0a5 by @nedbat in https://github.com/pyenv/pyenv/pull/3393 + ## Release v2.6.19 * Add CPython 3.15.0a4 by @nedbat in https://github.com/pyenv/pyenv/pull/3390 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 23beb12ada..72164ea87b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.19" +version="2.6.20" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 76d83531eb..5a0d4b480c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.19" +PYTHON_BUILD_VERSION="2.6.20" OLDIFS="$IFS" From 5447f1f8591e7a0497a5a83ccb17e6f69b5b00c0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 15 Jan 2026 16:09:57 +0300 Subject: [PATCH 1087/1324] CI: add_script: make more frequent practice shows a long enough delay that contributors step in --- .github/workflows/add_version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index b0b7cb9de7..0056c749fc 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: {} schedule: # Every N hours - - cron: '0 */8 * * *' + - cron: '0 */4 * * *' permissions: contents: write From 968cd11daa79b025898a3e62f55501def96f12ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 20 Jan 2026 16:12:44 +0100 Subject: [PATCH 1088/1324] Add GraalPy 25.0.2 (#3395) --- .../share/python-build/graalpy-25.0.2 | 61 +++++++++++++++++++ .../python-build/graalpy-community-25.0.2 | 51 ++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-25.0.2 create mode 100644 plugins/python-build/share/python-build/graalpy-community-25.0.2 diff --git a/plugins/python-build/share/python-build/graalpy-25.0.2 b/plugins/python-build/share/python-build/graalpy-25.0.2 new file mode 100644 index 0000000000..883906fd04 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-25.0.2 @@ -0,0 +1,61 @@ +# Copyright (c) 2026, 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='25.0.2' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="8967e4bae1c5040d62dbc98976f2099d5c36c00a79944e99b848d455e618ecdf" + ;; +"linux-aarch64" ) + checksum="805f3526296e04692b27ca001ba97674e53d0f036412d9ffc29aeb8b51517ab6" + ;; +"macos-aarch64" ) + checksum="c771688b8636932026180bdd9b5e3d6116316fa868faf7e602a60ba020c7bade" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-25.0.2 b/plugins/python-build/share/python-build/graalpy-community-25.0.2 new file mode 100644 index 0000000000..bf8b7e2653 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-25.0.2 @@ -0,0 +1,51 @@ +# Copyright (c) 2026, 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='25.0.2' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="8db86f13c0b701bab0780e8821052a40303c08b83fdc9c21da06605d14d4cc79" + ;; +"linux-aarch64" ) + checksum="98f7b9dea867c45cde5c2886b7544bd267242b2fa93586f2c9d3d38e88d5d109" + ;; +"macos-aarch64" ) + checksum="c64bef17f34d42327d5c3fe40c05eddf791c3653cc8366f6bf1149b51ce9d517" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 82f4de559302c8d517c09cc92390e824007e705f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 20 Jan 2026 18:52:39 +0300 Subject: [PATCH 1089/1324] CI: reflect GraalPy 25.0.2 dropping MacOS x64 support --- .github/workflows/modified_scripts_build.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index b53de07dbd..bdd82d9dcf 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -56,6 +56,14 @@ jobs: if name == 'anaconda3' and version >= packaging.version.Version('2025.12'): result.append({'os':'macos-15-intel','python-version':line}) + if m:=re.match(r'graalpy-(community-)?-(\d+\.\d+.\d+)', line): + version = packaging.version.Version(m.group(2)) + + # GraalPy dropped MacOS x64 support + if version >= packaging.version.Version('25.0.2'): + result.append({'os':'macos-15-intel','python-version':line}) + + EOF = str(random.getrandbits(15*8)) with open(os.environ['GITHUB_ENV'],'w') as f: From fbc7067e3fa34461d6b6cdc58e4f267cb9d6c6d2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 3 Feb 2026 23:44:14 +0300 Subject: [PATCH 1090/1324] Add CPython 3.14.3 (#3400) --- plugins/python-build/share/python-build/3.14.3 | 10 ++++++++++ .../share/python-build/{3.14.2t => 3.14.3t} | 0 2 files changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.3 rename plugins/python-build/share/python-build/{3.14.2t => 3.14.3t} (100%) diff --git a/plugins/python-build/share/python-build/3.14.3 b/plugins/python-build/share/python-build/3.14.3 new file mode 100644 index 0000000000..b62e224750 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.3 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.3" "https://www.python.org/ftp/python/3.14.3/Python-3.14.3.tar.xz#a97d5549e9ad81fe17159ed02c68774ad5d266c72f8d9a0b5a9c371fe85d902b" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.3" "https://www.python.org/ftp/python/3.14.3/Python-3.14.3.tgz#d7fe130d0501ae047ca318fa92aa642603ab6f217901015a1df6ce650d5470cd" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.2t b/plugins/python-build/share/python-build/3.14.3t similarity index 100% rename from plugins/python-build/share/python-build/3.14.2t rename to plugins/python-build/share/python-build/3.14.3t From 6d8c0e40216efd7b049f98493c1da0afb47dd38b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 3 Feb 2026 23:46:41 +0300 Subject: [PATCH 1091/1324] 2.6.21 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc92f0f964..f274b3bba0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.6.21 +* Add GraalPy 25.0.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3395 +* Add CPython 3.14.3 by @github-actions[bot] in https://github.com/pyenv/pyenv/pull/3400 + ## Release v2.6.20 * CI: adjust CPython PR generation logic by @native-api in https://github.com/pyenv/pyenv/pull/3392 * Add CPython 3.15.0a5 by @nedbat in https://github.com/pyenv/pyenv/pull/3393 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 72164ea87b..00b81e3a9d 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.20" +version="2.6.21" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5a0d4b480c..8d219a6eca 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.20" +PYTHON_BUILD_VERSION="2.6.21" OLDIFS="$IFS" From 63edb9137500acbeb9d7236f30746f4e896ee4e7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 4 Feb 2026 03:50:15 +0300 Subject: [PATCH 1092/1324] Add CPython 3.13.12 (#3401) --- plugins/python-build/share/python-build/3.13.12 | 10 ++++++++++ .../share/python-build/{3.13.11t => 3.13.12t} | 0 2 files changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.12 rename plugins/python-build/share/python-build/{3.13.11t => 3.13.12t} (100%) diff --git a/plugins/python-build/share/python-build/3.13.12 b/plugins/python-build/share/python-build/3.13.12 new file mode 100644 index 0000000000..7b4723c315 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.12 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.12" "https://www.python.org/ftp/python/3.13.12/Python-3.13.12.tar.xz#2a84cd31dd8d8ea8aaff75de66fc1b4b0127dd5799aa50a64ae9a313885b4593" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.12" "https://www.python.org/ftp/python/3.13.12/Python-3.13.12.tgz#12e7cb170ad2d1a69aee96a1cc7fc8de5b1e97a2bdac51683a3db016ec9a2996" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.11t b/plugins/python-build/share/python-build/3.13.12t similarity index 100% rename from plugins/python-build/share/python-build/3.13.11t rename to plugins/python-build/share/python-build/3.13.12t From 57ec277d6a476b8ecc7a254c2ad69bf65e464187 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 Feb 2026 03:52:39 +0300 Subject: [PATCH 1093/1324] 2.6.22 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f274b3bba0..3917cde288 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.22 +* Add CPython 3.13.12 by @github-actions[bot] in https://github.com/pyenv/pyenv/pull/3401 + ## Release v2.6.21 * Add GraalPy 25.0.2 by @msimacek in https://github.com/pyenv/pyenv/pull/3395 * Add CPython 3.14.3 by @github-actions[bot] in https://github.com/pyenv/pyenv/pull/3400 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 00b81e3a9d..88fbbd4f3c 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.21" +version="2.6.22" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 8d219a6eca..3c91759dab 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.21" +PYTHON_BUILD_VERSION="2.6.22" OLDIFS="$IFS" From 2f10394d337402c0ca7e3b6f45453f66db632f11 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 Feb 2026 04:15:00 +0300 Subject: [PATCH 1094/1324] CI: add_version: fix Actions not triggering for the pull request --- .github/workflows/add_version.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 0056c749fc..0d5c600436 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -43,3 +43,4 @@ jobs: with: branch: ${{ env.branch_name }} title: ${{ env.pr_name }} + token: ${{ secrets.TOKEN_AUTO_PR }} From b2a43bbcdb59c8b3ffb1f2b66eb89475cef75b78 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 4 Feb 2026 13:58:08 +0300 Subject: [PATCH 1095/1324] CI: add_verison: Don't run "set PR properties" unnecessarily --- .github/workflows/add_version.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 0d5c600436..21c31728ae 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -27,6 +27,7 @@ jobs: python plugins/python-build/scripts/add_cpython.py --verbose >added_versions.lst && rc=$? || rc=$? echo "rc=$rc" >> $GITHUB_ENV - name: set PR properties + if: env.rc == 0 shell: python run: | import os From c44f03c058348b899b334f6f3c2fa2ccebb85b18 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 17 Feb 2026 02:36:26 +0300 Subject: [PATCH 1096/1324] Add CPython 3.15.0a6 (#3403) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.15.0a5 | 10 ---------- plugins/python-build/share/python-build/3.15.0a6 | 10 ++++++++++ .../share/python-build/{3.15.0a5t => 3.15.0a6t} | 0 3 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.15.0a5 create mode 100644 plugins/python-build/share/python-build/3.15.0a6 rename plugins/python-build/share/python-build/{3.15.0a5t => 3.15.0a6t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a5 b/plugins/python-build/share/python-build/3.15.0a5 deleted file mode 100644 index 831f777679..0000000000 --- a/plugins/python-build/share/python-build/3.15.0a5 +++ /dev/null @@ -1,10 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.15.0a5" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a5.tar.xz#fee40da6450b67547c079dcb2852e8a03db6d57e06415466b2d3294449db22ef" standard verify_py315 copy_python_gdb ensurepip -else - install_package "Python-3.15.0a5" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a5.tgz#c4b535cd6f4c07889a53ce68fedf00c77c720086ab018723a8b5079b25a1e051" standard verify_py315 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0a6 b/plugins/python-build/share/python-build/3.15.0a6 new file mode 100644 index 0000000000..72043ba65f --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0a6 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0a6" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a6.tar.xz#8e2a4e1b2afb93a84d659d431b1f384544b3da00a4b8ff5bf3580f07ad4ff989" standard verify_py315 copy_python_gdb ensurepip +else + install_package "Python-3.15.0a6" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a6.tgz#2539a4693f26f5df1e59cd64b55c7624294ba296ad00f49e328083059720c20f" standard verify_py315 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0a5t b/plugins/python-build/share/python-build/3.15.0a6t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a5t rename to plugins/python-build/share/python-build/3.15.0a6t From 81befc15926fe94b015a0e47a60edb5085e26add Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 17 Feb 2026 02:38:47 +0300 Subject: [PATCH 1097/1324] 2.6.23 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3917cde288..2cbee365e5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.23 +* Add CPython 3.15.0a6 by @native-api in https://github.com/pyenv/pyenv/pull/3403 + ## Release v2.6.22 * Add CPython 3.13.12 by @github-actions[bot] in https://github.com/pyenv/pyenv/pull/3401 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 88fbbd4f3c..22347395fc 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.22" +version="2.6.23" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 3c91759dab..10331324e3 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.22" +PYTHON_BUILD_VERSION="2.6.23" OLDIFS="$IFS" From 47b6fce29daf3d58acc77a21077a4b01e8278409 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 19 Feb 2026 04:04:07 +0300 Subject: [PATCH 1098/1324] CI: add_version: use Github App token to create PR The only way atm that allows to both trigger CI and get PR notifications, as per https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens Created helper app https://github.com/apps/pyenv-bot/ --- .github/workflows/add_version.yml | 16 ++++++++++++---- plugins/python-build/share/python-build/3.14.1 | 10 ---------- .../share/python-build/{3.15.0a6 => 3.15.0a5} | 0 .../share/python-build/{3.14.1t => 3.15.0a5t} | 0 .../python-build/share/python-build/3.15.0a6t | 2 -- 5 files changed, 12 insertions(+), 16 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.14.1 rename plugins/python-build/share/python-build/{3.15.0a6 => 3.15.0a5} (100%) rename plugins/python-build/share/python-build/{3.14.1t => 3.15.0a5t} (100%) delete mode 100644 plugins/python-build/share/python-build/3.15.0a6t diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 21c31728ae..8e5903a92e 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -15,13 +15,13 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v6 with: python-version: 3 cache: 'pip' cache-dependency-path: plugins/python-build/scripts/requirements.txt - run: pip install -r plugins/python-build/scripts/requirements.txt - + - name: check for a release run: | python plugins/python-build/scripts/add_cpython.py --verbose >added_versions.lst && rc=$? || rc=$? @@ -37,11 +37,19 @@ jobs: f.write(f'branch_name=auto_add_version/{"_".join(versions)}\n') f.write(f'pr_name=Add CPython {", ".join(versions)}\n') os.remove("added_versions.lst") - + + # https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens + - name: Generate Github token + if: env.rc == 0 + uses: actions/create-github-app-token@v2 + id: generate-token + with: + app-id: ${{ vars.PYENV_BOT_APP_ID }} + private-key: ${{ secrets.PYENV_BOT_PRIVATE_KEY }} - name: Create Pull Request uses: peter-evans/create-pull-request@v8 if: env.rc == 0 with: branch: ${{ env.branch_name }} title: ${{ env.pr_name }} - token: ${{ secrets.TOKEN_AUTO_PR }} + token: ${{ steps.generate-token.outputs.token }} diff --git a/plugins/python-build/share/python-build/3.14.1 b/plugins/python-build/share/python-build/3.14.1 deleted file mode 100644 index 37f2e8c765..0000000000 --- a/plugins/python-build/share/python-build/3.14.1 +++ /dev/null @@ -1,10 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.14.1" "https://www.python.org/ftp/python/3.14.1/Python-3.14.1.tar.xz#8dfa08b1959d9d15838a1c2dab77dc8d8ff4a553a1ed046dfacbc8095c6d42fc" standard verify_py314 copy_python_gdb ensurepip -else - install_package "Python-3.14.1" "https://www.python.org/ftp/python/3.14.1/Python-3.14.1.tgz#8343f001dede23812c7e9c6064f776bade2ef5813f46f0ae4b5a4c10c9069e9a" standard verify_py314 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0a6 b/plugins/python-build/share/python-build/3.15.0a5 similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a6 rename to plugins/python-build/share/python-build/3.15.0a5 diff --git a/plugins/python-build/share/python-build/3.14.1t b/plugins/python-build/share/python-build/3.15.0a5t similarity index 100% rename from plugins/python-build/share/python-build/3.14.1t rename to plugins/python-build/share/python-build/3.15.0a5t diff --git a/plugins/python-build/share/python-build/3.15.0a6t b/plugins/python-build/share/python-build/3.15.0a6t deleted file mode 100644 index 518be93e76..0000000000 --- a/plugins/python-build/share/python-build/3.15.0a6t +++ /dev/null @@ -1,2 +0,0 @@ -export PYTHON_BUILD_FREE_THREADING=1 -source "${BASH_SOURCE[0]%t}" From 06bac52676248d5604a5afc8b7201f02e5f5a004 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 19 Feb 2026 04:48:55 +0300 Subject: [PATCH 1099/1324] add_cpython: fix erroneously deleting old thunks Looks like a leftover from older logic, before we `git mv`'d thunks on prerelease upgrade --- plugins/python-build/scripts/add_cpython.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index f72f3d644f..afb9982a67 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -175,9 +175,6 @@ def handle_t_thunks(version, previous_version, is_prerelease_upgrade): "mv", previous_thunk_name, thunk_name)) - else: - logger.info(f"Deleting {previous_thunk_path}") - previous_thunk_path.unlink() logger.info(f"Writing {thunk_path}") thunk_path.write_text(T_THUNK, encoding='utf-8') From 9279111a60ff0f3eeb627a98b498387d0d9d354a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 19 Feb 2026 07:41:21 +0300 Subject: [PATCH 1100/1324] Revert accidentally left test code from "CI: add_version: use Github App token to create PR" This partially reverts commit 47b6fce29daf3d58acc77a21077a4b01e8278409. --- plugins/python-build/share/python-build/3.14.1 | 10 ++++++++++ .../share/python-build/{3.15.0a5t => 3.14.1t} | 0 .../share/python-build/{3.15.0a5 => 3.15.0a6} | 0 plugins/python-build/share/python-build/3.15.0a6t | 2 ++ 4 files changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.1 rename plugins/python-build/share/python-build/{3.15.0a5t => 3.14.1t} (100%) rename plugins/python-build/share/python-build/{3.15.0a5 => 3.15.0a6} (100%) create mode 100644 plugins/python-build/share/python-build/3.15.0a6t diff --git a/plugins/python-build/share/python-build/3.14.1 b/plugins/python-build/share/python-build/3.14.1 new file mode 100644 index 0000000000..37f2e8c765 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.1 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.1" "https://www.python.org/ftp/python/3.14.1/Python-3.14.1.tar.xz#8dfa08b1959d9d15838a1c2dab77dc8d8ff4a553a1ed046dfacbc8095c6d42fc" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.1" "https://www.python.org/ftp/python/3.14.1/Python-3.14.1.tgz#8343f001dede23812c7e9c6064f776bade2ef5813f46f0ae4b5a4c10c9069e9a" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0a5t b/plugins/python-build/share/python-build/3.14.1t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a5t rename to plugins/python-build/share/python-build/3.14.1t diff --git a/plugins/python-build/share/python-build/3.15.0a5 b/plugins/python-build/share/python-build/3.15.0a6 similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a5 rename to plugins/python-build/share/python-build/3.15.0a6 diff --git a/plugins/python-build/share/python-build/3.15.0a6t b/plugins/python-build/share/python-build/3.15.0a6t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0a6t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 43e83b52a27340c31b018dca7dd38a18a0bffb17 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Sat, 21 Feb 2026 05:32:12 +0800 Subject: [PATCH 1101/1324] Add Anaconda3-2025.12-2 (#3408) Co-authored-by: binbjz --- .../share/python-build/anaconda3-2025.12-2 | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/anaconda3-2025.12-2 diff --git a/plugins/python-build/share/python-build/anaconda3-2025.12-2 b/plugins/python-build/share/python-build/anaconda3-2025.12-2 new file mode 100644 index 0000000000..ebb6dfa394 --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2025.12-2 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2025.12-2-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2025.12-2-Linux-aarch64.sh#be13a20f31d82508a061984fa3555369cfd8e4692643721415c19e7dc2e9e0f9" "anaconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2025.12-2-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2025.12-2-Linux-x86_64.sh#57b2b48cc5b8665e25fce7011f0389d47c1288288007844b3b1ba482d4f39029" "anaconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2025.12-2-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2025.12-2-MacOSX-arm64.sh#8d0b858358456d4ee159feb0c4ee6d635590b777f8b9ffa4aa7553c469aae2b6" "anaconda" verify_py313 + ;; +* ) + { 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 From 47871b2dc3aa788c000b6e49861939eefd106248 Mon Sep 17 00:00:00 2001 From: Jake Lodwick Date: Sun, 1 Mar 2026 14:36:24 -0700 Subject: [PATCH 1102/1324] rehash: drop redundant sort -u from make_shims call (#3410) register_shim() already deduplicates via associative array (bash 4+) or by checking if a shim already exists (bash 3.2). The sort -u pipe in the make_shims call is thus redundant -- the dedup happens downstream regardless. Shim creation is order-independent and idempotent, so sorting has no semantic effect either. Saves one subprocess fork during every rehash invocation. --- libexec/pyenv-rehash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 7ef7bf202e..e20413013a 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -196,7 +196,7 @@ shopt -s nullglob create_prototype_shim remove_outdated_shims # shellcheck disable=SC2046 -make_shims $(list_executable_names | sort -u) +make_shims $(list_executable_names) # Allow plugins to register shims. From c4ed80826fd1a4795894ef6db548dfafe43374bc Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 08:15:01 +0300 Subject: [PATCH 1103/1324] Add CPython 3.10.20, 3.11.15 Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.10.20 | 9 +++++++++ plugins/python-build/share/python-build/3.11.15 | 10 ++++++++++ 2 files changed, 19 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.20 create mode 100644 plugins/python-build/share/python-build/3.11.15 diff --git a/plugins/python-build/share/python-build/3.10.20 b/plugins/python-build/share/python-build/3.10.20 new file mode 100644 index 0000000000..7807d8084f --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.20 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.20" "https://www.python.org/ftp/python/3.10.20/Python-3.10.20.tar.xz#de6517421601e39a9a3bc3e1bc4c7b2f239297423ee05e282598c83ec0647505" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.20" "https://www.python.org/ftp/python/3.10.20/Python-3.10.20.tgz#4ff5fd4c5bab803b935019f3e31d7219cebd6f870d00389cea53b88bbe935d1a" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.15 b/plugins/python-build/share/python-build/3.11.15 new file mode 100644 index 0000000000..9fd16e5383 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.15 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.11.15" "https://www.python.org/ftp/python/3.11.15/Python-3.11.15.tar.xz#272179ddd9a2e41a0fc8e42e33dfbdca0b3711aa5abf372d3f2d51543d09b625" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.15" "https://www.python.org/ftp/python/3.11.15/Python-3.11.15.tgz#f4de1b10bd6c70cbb9fa1cd71fc5038b832747a74ee59d599c69ce4846defb50" standard verify_py311 copy_python_gdb ensurepip +fi From c89b6b46dc1988a80500ccc2bc5950ffb0ab6f08 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 3 Mar 2026 08:17:57 +0300 Subject: [PATCH 1104/1324] 2.6.24 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2cbee365e5..4730e60a4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.6.24 +* CI: add_version: use Github App token to create PR by @native-api in https://github.com/pyenv/pyenv/pull/3406 +* Add Anaconda3-2025.12-2 by @binbjz in https://github.com/pyenv/pyenv/pull/3408 +* rehash: Drop redundant sort -u from make_shims call by @jakelodwick in https://github.com/pyenv/pyenv/pull/3410 +* Add CPython 3.10.20, 3.11.15 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3412 + ## Release v2.6.23 * Add CPython 3.15.0a6 by @native-api in https://github.com/pyenv/pyenv/pull/3403 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 22347395fc..326428c040 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.23" +version="2.6.24" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 10331324e3..a52b6d4010 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.23" +PYTHON_BUILD_VERSION="2.6.24" OLDIFS="$IFS" From 05d3a598c41e9d95273863fdd6e9683bae3aa468 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 3 Mar 2026 09:07:15 +0300 Subject: [PATCH 1105/1324] Add miniforge3-26.1.0-0 (#3413) --- .../share/python-build/miniforge3-26.1.0-0 | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-26.1.0-0 diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.0-0 b/plugins/python-build/share/python-build/miniforge3-26.1.0-0 new file mode 100644 index 0000000000..6d3eecc8a2 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.1.0-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.1.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-aarch64.sh#8baf8844ecf13e1458f81659ea286251d04b2d5ed90040efb77f158adedb2d95" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.1.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-ppc64le.sh#902190ad825b74b78a6a2816364453bb4d6989a599172aa3785d4afd0ebeb917" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.1.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-x86_64.sh#127b5e14cfe6c83b787f624487cdc2168645ed82fdca1b0c1937caa086aed6d5" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.1.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-MacOSX-arm64.sh#219b9e0d733fa2086d7d094a5ed830db146ccf22ae32c330b2da5df5c9604b78" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.1.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-MacOSX-x86_64.sh#90a41a28ad0221fbaf728ca1267f6243638a56c579fba8a1b970edfee4062d53" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From c9d3829169a57946600afac3674c1121d2d76203 Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2026 20:04:59 +0300 Subject: [PATCH 1106/1324] Add CPython 3.12.13 (#3414) --- plugins/python-build/share/python-build/3.12.13 | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.13 diff --git a/plugins/python-build/share/python-build/3.12.13 b/plugins/python-build/share/python-build/3.12.13 new file mode 100644 index 0000000000..c3f37cb73a --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.13 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.12.13" "https://www.python.org/ftp/python/3.12.13/Python-3.12.13.tar.xz#c08bc65a81971c1dd5783182826503369466c7e67374d1646519adf05207b684" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.13" "https://www.python.org/ftp/python/3.12.13/Python-3.12.13.tgz#0816c4761c97ecdb3f50a3924de0a93fd78cb63ee8e6c04201ddfaedca500b0b" standard verify_py312 copy_python_gdb ensurepip +fi From aa2e8b82605b8ba085dd15f7a31fe1990fabdcfa Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 3 Mar 2026 20:06:38 +0300 Subject: [PATCH 1107/1324] 2.6.25 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4730e60a4c..3b55d403c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.6.25 +* Add miniforge3-26.1.0-0 by @native-api in https://github.com/pyenv/pyenv/pull/3413 +* Add CPython 3.12.13 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3414 + ## Release v2.6.24 * CI: add_version: use Github App token to create PR by @native-api in https://github.com/pyenv/pyenv/pull/3406 * Add Anaconda3-2025.12-2 by @binbjz in https://github.com/pyenv/pyenv/pull/3408 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 326428c040..f93adc7946 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.24" +version="2.6.25" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a52b6d4010..41edeefcc6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.24" +PYTHON_BUILD_VERSION="2.6.25" OLDIFS="$IFS" From 23bcdebe18a475613022307fba6ce966d70fb29a Mon Sep 17 00:00:00 2001 From: Jake Lodwick Date: Tue, 3 Mar 2026 23:02:44 -0800 Subject: [PATCH 1108/1324] versions: fast path for --bare --skip-aliases (#3411) Skip sort, native extension probe, and per-symlink realpath when called with --bare --skip-aliases (the rehash case). Use readlink to distinguish internal aliases (relative target) from external installs (absolute target). In MacOS, speeds up rehash by 5.2 ms (7%) in empty environment, 55.9 ms (33%) in a regular environment (3 ver, 12 venvs, 320 bins), 93.7 ms (15%) in a large environment (6 ver, 60 venvs, 1466 bins) --- libexec/pyenv-versions | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index dbccaa32c0..afe8747fa0 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -26,6 +26,29 @@ for arg; do esac done +# Fast path for --bare --skip-aliases: skip sort and full realpath resolution +if [[ -n "$bare" && -n "$skip_aliases" ]]; then + versions_dir="${PYENV_ROOT}/versions" + if [ -d "$versions_dir" ]; then + shopt -s dotglob nullglob + for path in "$versions_dir"/*/; do + path="${path%/}" + if [ -L "$path" ]; then + # Relative link = internal alias → skip; absolute = external → keep + [[ "$(readlink "$path")" == /* ]] || continue + fi + echo "${path##*/}" + if [[ -z "$skip_envs" ]]; then + for env_path in "${path}/envs/"*; do + [ -d "$env_path" ] && echo "${env_path#${versions_dir}/}" + done + fi + done + shopt -u dotglob nullglob + fi + exit 0 +fi + versions_dir="${PYENV_ROOT}/versions" if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then From d5fa1e225e1db461cdea53f0e9b6c691d215ea03 Mon Sep 17 00:00:00 2001 From: Tekin Tian Date: Sat, 7 Mar 2026 16:44:57 +0800 Subject: [PATCH 1109/1324] Fix MacPorts OpenSSL formula detection (#3417) Co-authored-by: Ivan Pozdeev --- plugins/python-build/README.md | 1 + plugins/python-build/bin/python-build | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 22dc242001..93e6612020 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -175,6 +175,7 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will. * `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. +* `PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA`, override the MacPorts OpenSSL formula to use. The default is `openssl3 openssl`. * `PYTHON_BUILD_TCLTK_FORMULA`, override the Homebrew Tcl/Tk formula to use. * `PYTHON_BUILD_SKIP_MACPORTS`, if set, will not search for libraries installed by MacPorts when it would normally will. * `PYTHON_BUILD_USE_MACPORTS`, if set, will search for libraries installed by MacPorts when it would normally not. diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 41edeefcc6..30a10b9700 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1663,12 +1663,20 @@ prefer_openssl11() { # Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA + + PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl3 openssl}" + export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA + } prefer_openssl3() { # Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@1.1 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA + + # Set MacPorts OpenSSL formula names for MacPorts environment + PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3 openssl openssl11}" + export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA } build_package_mac_readline() { @@ -1727,7 +1735,8 @@ use_macports_openssl() { command -v port >/dev/null || return 1 local port_location="$(command -v port)" local prefix="${port_location%/bin/port}" - for openssl in ${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl}; do + # MacPorts uses a different package naming convention and does not use the @ symbol. + for openssl in ${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3 openssl}; do if [[ $(port -q installed ${openssl} | awk '{print $3}') == "(active)" ]]; then echo "python-build: use ${openssl} from MacPorts" if [[ -n "${PYTHON_BUILD_CONFIGURE_WITH_OPENSSL:-}" ]]; then From 8037f226650ffbe161b914ce0cabbbd9705d696a Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 7 Mar 2026 13:09:14 +0300 Subject: [PATCH 1110/1324] rehash: streamline executables discovery; fix regression (#3418) Separate the corner-cutting code for `rehash' into a dedicated branch. Saves some more time (about 100ms for the large fixture) --- libexec/pyenv-rehash | 13 +------------ libexec/pyenv-versions | 39 +++++++++++++++++++-------------------- test/test_helper.bash | 2 +- test/versions.bats | 35 ++++++++++++++++++++++++++++++++--- 4 files changed, 53 insertions(+), 36 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index e20413013a..253ab68afc 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -110,17 +110,6 @@ remove_outdated_shims() { done } -# List basenames of executables for every Python version -list_executable_names() { - local version file - pyenv-versions --bare --skip-aliases | \ - while read -r version; do - for file in "${PYENV_ROOT}/versions/${version}/bin/"*; do - echo "${file##*/}" - done - done -} - # The basename of each argument passed to `make_shims` will be # registered for installation as a shim. In this way, plugins may call # `make_shims` with a glob to register many shims at once. @@ -196,7 +185,7 @@ shopt -s nullglob create_prototype_shim remove_outdated_shims # shellcheck disable=SC2046 -make_shims $(list_executable_names) +make_shims $(pyenv-versions --executables) # Allow plugins to register shims. diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index afe8747fa0..bfd67c70a8 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -1,13 +1,21 @@ #!/usr/bin/env bash # Summary: List all Python versions available to pyenv -# Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs] +# Usage: pyenv versions [--bare] [--skip-aliases] [--skip-envs] [--executables] # # Lists all Python versions found in `$PYENV_ROOT/versions/*'. +# +# --bare List just the names, omit `system' +# --skip-aliases Skip symlinks to other versions and to virtual environments +# --skip-envs Skip virtual environments (under /envs) +# --executables Internal. Overrides other options. +# Optimally get a deduplicated list of all executable names in Pyenv-managed +# versions and environments for `pyenv rehash' +# set -e [ -n "$PYENV_DEBUG" ] && set -x -unset bare skip_aliases skip_envs +unset bare skip_aliases skip_envs executables # Provide pyenv completions for arg; do case "$arg" in @@ -16,6 +24,7 @@ for arg; do echo --skip-aliases echo --skip-envs exit ;; + --executables ) executables=1; break ;; --bare ) bare=1 ;; --skip-aliases ) skip_aliases=1 ;; --skip-envs ) skip_envs=1 ;; @@ -26,31 +35,21 @@ for arg; do esac done -# Fast path for --bare --skip-aliases: skip sort and full realpath resolution -if [[ -n "$bare" && -n "$skip_aliases" ]]; then - versions_dir="${PYENV_ROOT}/versions" + +versions_dir="${PYENV_ROOT}/versions" + +# Fast path for rehash: skip filtering and link resolution +if [[ -n "$executables" ]]; then if [ -d "$versions_dir" ]; then shopt -s dotglob nullglob - for path in "$versions_dir"/*/; do - path="${path%/}" - if [ -L "$path" ]; then - # Relative link = internal alias → skip; absolute = external → keep - [[ "$(readlink "$path")" == /* ]] || continue - fi - echo "${path##*/}" - if [[ -z "$skip_envs" ]]; then - for env_path in "${path}/envs/"*; do - [ -d "$env_path" ] && echo "${env_path#${versions_dir}/}" - done - fi - done + # MacOS 12+ and FreeBSD 15 support `xargs -r -0' and `basename -a' + # `sort -u` is simpler and a bit faster than `awk '!seen[$0]++'`, with the same result for rehash purposes + printf '%s\0' "$versions_dir"/*/bin/* "$versions_dir"/*/envs/*/bin/* | xargs -0 -r basename -a | sort -u shopt -u dotglob nullglob fi exit 0 fi -versions_dir="${PYENV_ROOT}/versions" - if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 diff --git a/test/test_helper.bash b/test/test_helper.bash index dba2e58c5a..9df7a1ce53 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -135,7 +135,7 @@ path_without() { if [ "$found" != "${PYENV_ROOT}/shims" ]; then alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" mkdir -p "$alt" - for util in bash head cut readlink greadlink tr sed; do + for util in bash head cut readlink greadlink tr sed xargs basename sort; do if [ -x "${found}/$util" ]; then ln -s "${found}/$util" "${alt}/$util" fi diff --git a/test/versions.bats b/test/versions.bats index 58ab032cd7..07acc4f654 100644 --- a/test/versions.bats +++ b/test/versions.bats @@ -11,6 +11,11 @@ create_alias() { ln -s "$2" "${PYENV_ROOT}/versions/$1" } +create_external_version() { + mkdir -p "$PYENV_TEST_DIR/${1:?}" + create_alias "${1:?}" "$PYENV_TEST_DIR/${1:?}" +} + _setup() { mkdir -p "$PYENV_TEST_DIR" cd "$PYENV_TEST_DIR" @@ -168,15 +173,39 @@ OUT @test "doesn't list symlink aliases when --skip-aliases" { create_version "1.8.7" create_alias "1.8" "1.8.7" - mkdir moo - create_alias "1.9" "${PWD}/moo" + create_external_version "moo" run pyenv-versions --bare --skip-aliases assert_success assert_output < Date: Mon, 9 Mar 2026 22:15:46 -0700 Subject: [PATCH 1111/1324] rehash: simplify source.bash pipeline (#3419) Same cleanup applied to conda.bash in #3151. --- pyenv.d/rehash/source.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyenv.d/rehash/source.bash b/pyenv.d/rehash/source.bash index 6bcbcbd7c9..8e38fb4e22 100644 --- a/pyenv.d/rehash/source.bash +++ b/pyenv.d/rehash/source.bash @@ -2,7 +2,7 @@ PROTOTYPE_SOURCE_SHIM_PATH="${SHIM_PATH}/.pyenv-source-shim" shims=() shopt -s nullglob -for shim in $(cat "${BASH_SOURCE%/*}/source.d/"*".list" | sort | uniq | sed -e 's/#.*$//' | sed -e '/^[[:space:]]*$/d'); do +for shim in $(sort -u "${BASH_SOURCE%/*}/source.d/"*".list" | sed -e 's/#.*$//' -e '/^[[:space:]]*$/d'); do if [ -n "${shim##*/}" ]; then shims[${#shims[*]}]="${shim})return 0;;" fi From 1534421e564e2fe74bfa23fb4516294fbeb3ae06 Mon Sep 17 00:00:00 2001 From: binbjz <8213913+binbjz@users.noreply.github.com> Date: Tue, 10 Mar 2026 13:21:06 +0800 Subject: [PATCH 1112/1324] Add miniconda3-26.1.1-1 (#3420) Co-authored-by: binbjz --- .../python-build/miniconda3-3.10-26.1.1-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.11-26.1.1-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.12-26.1.1-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.13-26.1.1-1 | 20 +++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 new file mode 100644 index 0000000000..bd6c3721a9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-aarch64.sh#cbac1da35d4c8635384f58b9a776c23fcb3c4dc0b936b8d4d0526f2d0a4b1c4c" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-x86_64.sh#f6174765edd75e1ef2bb3f16e99266d291deebf6532f2f7e800569afc084d0eb" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-MacOSX-arm64.sh#c83c7a20dd45442ef05321637872bdd9ee13395098e9bb1a22a28b1dccdd9a31" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 new file mode 100644 index 0000000000..9ba7b77676 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-aarch64.sh#ed0c6cc091802bc4d1440260d60d431b263f22d5cb9be5df71e7ff176c8f1cd8" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-x86_64.sh#cf5fe14f1be074b82908f188ff759b61ddf87ed15a766f8641182ebf190832b4" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-MacOSX-arm64.sh#5d76efda2d459389e35d5406494230bb78635bdb99500bda7d7eb3c4e3742f1c" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 new file mode 100644 index 0000000000..108113a232 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-aarch64.sh#f51aa82c395a2c5854c28ef8b7a24e252d5daca4a7a054ec8d9d6847d1d84518" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-x86_64.sh#498ddb7c091002e4fd76e3496d91d2d915b183d1d850bef6e060fd45e2523213" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-MacOSX-arm64.sh#febaaeddd0deff2d3b034f7ef99efcab7169549d9be4175e1870170d59377a58" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 new file mode 100644 index 0000000000..f5e3f151b3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-aarch64.sh#9f39cc8c46ca37afed5e563cc234b3add34fea2f1119e076dcae7a377ca6b8ee" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-x86_64.sh#e0b10e050e8928e2eb9aad2c522ee3b5d31d30048b8a9997663a8a460d538cef" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-MacOSX-arm64.sh#9f84ad10ea513fb59bb714933bc8dc092bd25fdb03c236868f5d5af3c26a1fd4" "miniconda" verify_py313 + ;; +* ) + { 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 From d5cd462a350f57bf2a42b3f37d7fb3a2a4dd97d0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 10 Mar 2026 08:23:42 +0300 Subject: [PATCH 1113/1324] Revert "Add miniconda3-26.1.1-1 (#3420)" This reverts commit 1534421e564e2fe74bfa23fb4516294fbeb3ae06. The scripts actually contain the previous version, 25.11.1-1 --- .../python-build/miniconda3-3.10-26.1.1-1 | 20 ------------------- .../python-build/miniconda3-3.11-26.1.1-1 | 20 ------------------- .../python-build/miniconda3-3.12-26.1.1-1 | 20 ------------------- .../python-build/miniconda3-3.13-26.1.1-1 | 20 ------------------- 4 files changed, 80 deletions(-) delete mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 delete mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 delete mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 delete mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 deleted file mode 100644 index bd6c3721a9..0000000000 --- a/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 +++ /dev/null @@ -1,20 +0,0 @@ -export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniconda3-py310_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-aarch64.sh#cbac1da35d4c8635384f58b9a776c23fcb3c4dc0b936b8d4d0526f2d0a4b1c4c" "miniconda" verify_py310 - ;; -"Linux-x86_64" ) - install_script "Miniconda3-py310_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-Linux-x86_64.sh#f6174765edd75e1ef2bb3f16e99266d291deebf6532f2f7e800569afc084d0eb" "miniconda" verify_py310 - ;; -"MacOSX-arm64" ) - install_script "Miniconda3-py310_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_25.11.1-1-MacOSX-arm64.sh#c83c7a20dd45442ef05321637872bdd9ee13395098e9bb1a22a28b1dccdd9a31" "miniconda" verify_py310 - ;; -* ) - { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 deleted file mode 100644 index 9ba7b77676..0000000000 --- a/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 +++ /dev/null @@ -1,20 +0,0 @@ -export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniconda3-py311_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-aarch64.sh#ed0c6cc091802bc4d1440260d60d431b263f22d5cb9be5df71e7ff176c8f1cd8" "miniconda" verify_py311 - ;; -"Linux-x86_64" ) - install_script "Miniconda3-py311_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-Linux-x86_64.sh#cf5fe14f1be074b82908f188ff759b61ddf87ed15a766f8641182ebf190832b4" "miniconda" verify_py311 - ;; -"MacOSX-arm64" ) - install_script "Miniconda3-py311_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_25.11.1-1-MacOSX-arm64.sh#5d76efda2d459389e35d5406494230bb78635bdb99500bda7d7eb3c4e3742f1c" "miniconda" verify_py311 - ;; -* ) - { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 deleted file mode 100644 index 108113a232..0000000000 --- a/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 +++ /dev/null @@ -1,20 +0,0 @@ -export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniconda3-py312_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-aarch64.sh#f51aa82c395a2c5854c28ef8b7a24e252d5daca4a7a054ec8d9d6847d1d84518" "miniconda" verify_py312 - ;; -"Linux-x86_64" ) - install_script "Miniconda3-py312_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-Linux-x86_64.sh#498ddb7c091002e4fd76e3496d91d2d915b183d1d850bef6e060fd45e2523213" "miniconda" verify_py312 - ;; -"MacOSX-arm64" ) - install_script "Miniconda3-py312_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_25.11.1-1-MacOSX-arm64.sh#febaaeddd0deff2d3b034f7ef99efcab7169549d9be4175e1870170d59377a58" "miniconda" verify_py312 - ;; -* ) - { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 deleted file mode 100644 index f5e3f151b3..0000000000 --- a/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 +++ /dev/null @@ -1,20 +0,0 @@ -export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true -case "$(anaconda_architecture 2>/dev/null || true)" in -"Linux-aarch64" ) - install_script "Miniconda3-py313_25.11.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-aarch64.sh#9f39cc8c46ca37afed5e563cc234b3add34fea2f1119e076dcae7a377ca6b8ee" "miniconda" verify_py313 - ;; -"Linux-x86_64" ) - install_script "Miniconda3-py313_25.11.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-Linux-x86_64.sh#e0b10e050e8928e2eb9aad2c522ee3b5d31d30048b8a9997663a8a460d538cef" "miniconda" verify_py313 - ;; -"MacOSX-arm64" ) - install_script "Miniconda3-py313_25.11.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_25.11.1-1-MacOSX-arm64.sh#9f84ad10ea513fb59bb714933bc8dc092bd25fdb03c236868f5d5af3c26a1fd4" "miniconda" verify_py313 - ;; -* ) - { 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 From a47dae91311271b4d0958db5a90ffa9c3d07b01b Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2026 01:11:17 +0300 Subject: [PATCH 1114/1324] Add CPython 3.15.0a7 (#3421) --- .../python-build/share/python-build/{3.15.0a6 => 3.15.0a7} | 4 ++-- .../python-build/share/python-build/{3.15.0a6t => 3.15.0a7t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0a6 => 3.15.0a7} (61%) rename plugins/python-build/share/python-build/{3.15.0a6t => 3.15.0a7t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a6 b/plugins/python-build/share/python-build/3.15.0a7 similarity index 61% rename from plugins/python-build/share/python-build/3.15.0a6 rename to plugins/python-build/share/python-build/3.15.0a7 index 72043ba65f..4af5fe6134 100644 --- a/plugins/python-build/share/python-build/3.15.0a6 +++ b/plugins/python-build/share/python-build/3.15.0a7 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0a6" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a6.tar.xz#8e2a4e1b2afb93a84d659d431b1f384544b3da00a4b8ff5bf3580f07ad4ff989" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a7" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a7.tar.xz#8f590c428b7f0d406df928b85737e7a3afa28eddd4d1419410ea809687ed1ea7" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0a6" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a6.tgz#2539a4693f26f5df1e59cd64b55c7624294ba296ad00f49e328083059720c20f" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0a7" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a7.tgz#a3ab00d82e04559369fecc98fab90ccb38e14f00bc0171f06e94821c1d2b1413" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0a6t b/plugins/python-build/share/python-build/3.15.0a7t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a6t rename to plugins/python-build/share/python-build/3.15.0a7t From 974e820478ab73dd90578a38f147c86b4f6d84b6 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 11 Mar 2026 01:17:34 +0300 Subject: [PATCH 1115/1324] Replace patterns with f-strings for logging fix KeyError: out_dir --- plugins/python-build/scripts/add_miniforge.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index cb90c9d898..824382e0a5 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -47,9 +47,9 @@ out_dir: Path = here.parent.parent / "share" / "python-build" def download_sha(url): - logger.info('Downloading SHA file %(url)s', locals()) + logger.info(f'Downloading SHA file {url}') tup = tuple(reversed(requests.get(url).text.replace('./', '').rstrip().split())) - logger.debug('Got %(tup)s', locals()) + logger.debug(f'Got {tup}') return tup def create_spec(filename, sha, url): @@ -72,7 +72,7 @@ def create_spec(filename, sha, url): 'installer_filename': f'{flavor_with_suffix.lower()}-{version}-{subversion}', } - logger.debug('Created spec %(spec)s', locals()) + logger.debug(f'Created spec {spec}') return spec @@ -112,7 +112,7 @@ def add_version(release, distributions): if count > 0: output_file = out_dir / distribution_specs[0]['installer_filename'] - logger.info('Writing %(count)d specs for %(distribution)s to %(output_file)s', locals()) + logger.info(f'Writing {count} specs for {distribution} to {output_file}') script_str = install_script_fmt.format( install_lines="\n".join([install_line_fmt.format_map(s) for s in distribution_specs]), @@ -122,7 +122,7 @@ def add_version(release, distributions): with open(output_file, 'w') as f: f.write(script_str) else: - logger.info('Did not find specs for %(distribution)s', locals()) + logger.info(f'Did not find specs for {distribution}') def main(): @@ -132,7 +132,7 @@ def main(): if version in SKIPPED_RELEASES: continue - logger.info('Looking for %(version)s in %(out_dir)s', locals()) + logger.info(f'Looking for {version} in {out_dir}') # mambaforge is retired https://github.com/conda-forge/miniforge/releases/tag/24.11.2-0 if version_tuple(version) >= (24, 11, 2): @@ -141,7 +141,7 @@ def main(): distributions = DISTRIBUTIONS_PRE25 if any(not list(out_dir.glob(f'{distribution}*-{version}')) for distribution in distributions): - logger.info('Downloading %(version)s', locals()) + logger.info(f'Downloading {version}') add_version(release, distributions) if __name__ == '__main__': From 5bd084d81601aa1ee6eefcf888fef85761af1973 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 11 Mar 2026 01:18:41 +0300 Subject: [PATCH 1116/1324] Add miniconda3-26.1.1-1 --- .../python-build/miniconda3-3.10-26.1.1-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.11-26.1.1-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.12-26.1.1-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.13-26.1.1-1 | 20 +++++++++++++++++++ 4 files changed, 80 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 new file mode 100644 index 0000000000..2826d05012 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_26.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.1.1-1-Linux-aarch64.sh#0a78d6620113acd42d840925514c0f5eec9f2e1e8ae4394755c401b3b605875b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_26.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.1.1-1-Linux-x86_64.sh#4410410a6343f688bbfd48d80eb23e3125964e254e4c18802679d2e61b06876e" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_26.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.1.1-1-MacOSX-arm64.sh#cadb31098a13b7dcc016594f54b01bcf1371161ba762a9ac3ba0d8f04b2615e2" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 new file mode 100644 index 0000000000..fd086b8faf --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_26.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.1.1-1-Linux-aarch64.sh#1726ea55308160a32e82d90a6f4914caa46f58fe157442224f2faf92fdef1e0e" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_26.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.1.1-1-Linux-x86_64.sh#52d1f19154b0716d7dc0872f0d858702640da08a4e53fd0035ba988608203d6b" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_26.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.1.1-1-MacOSX-arm64.sh#720266b29d46b8da1b466342aa02d7d04683670bf2bf53576cc70d89253f60ca" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 new file mode 100644 index 0000000000..2979a4c20d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_26.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.1.1-1-Linux-aarch64.sh#0a84d50ec92fbb248e31bff0a5888bf2f4dc322fc979e94ecc6e9946d0324ce7" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_26.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.1.1-1-Linux-x86_64.sh#eef1283cdc9d37f55743778ea4567e91aa28c2e3be4adab529dda324c3c897a2" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_26.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.1.1-1-MacOSX-arm64.sh#4a1e3630353121edad84fe79982a99ad8001425e27313c34f7ba9b6cec95d3dd" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 new file mode 100644 index 0000000000..5ed822857c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.1.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_26.1.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.1.1-1-Linux-aarch64.sh#07c82b5aec04d5f0f3e4b246835b6bc85e104821cbcb0a059c7ea80f028503f4" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_26.1.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.1.1-1-Linux-x86_64.sh#f6dfb5b59614fd7b2956b240b2575a9d58203ec7f7a99f85128158a0fdc5c1d7" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_26.1.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.1.1-1-MacOSX-arm64.sh#745f97a6553ebdce0bfdaafe00b0d1939784b38cdaadb3378ca7868a51616a65" "miniconda" verify_py313 + ;; +* ) + { 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 From 174c61526f37406a507f64deb9c99d533b1d56e1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 11 Mar 2026 01:37:45 +0300 Subject: [PATCH 1117/1324] 2.6.26 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3b55d403c3..f5b2ee3ad2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.6.26 +* versions: fast path for --bare --skip-aliases by @jakelodwick in https://github.com/pyenv/pyenv/pull/3411 +* Fix MacPorts OpenSSL formula detection by @tekintian in https://github.com/pyenv/pyenv/pull/3417 +* rehash: streamline executables discovery; fix regression by @native-api in https://github.com/pyenv/pyenv/pull/3418 +* rehash: simplify source.bash pipeline by @jakelodwick in https://github.com/pyenv/pyenv/pull/3419 +* Add CPython 3.15.0a7 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3421 + ## Release v2.6.25 * Add miniforge3-26.1.0-0 by @native-api in https://github.com/pyenv/pyenv/pull/3413 * Add CPython 3.12.13 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3414 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f93adc7946..e2a4e2fb95 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.25" +version="2.6.26" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 30a10b9700..36b6f2e24f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.25" +PYTHON_BUILD_VERSION="2.6.26" OLDIFS="$IFS" From 6a246fad63ef8f5cad8e9ee673365f29af5120a7 Mon Sep 17 00:00:00 2001 From: Jake Lodwick Date: Fri, 13 Mar 2026 04:56:23 -0600 Subject: [PATCH 1118/1324] commands: fast path for --sh, replace sort|uniq with sort -u (#3423) --- libexec/pyenv-commands | 41 +++++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/libexec/pyenv-commands b/libexec/pyenv-commands index 283ce44b6c..d0012f8ed6 100755 --- a/libexec/pyenv-commands +++ b/libexec/pyenv-commands @@ -3,19 +3,19 @@ # Usage: pyenv commands [--sh|--no-sh] set -e -[ -n "$PYENV_DEBUG" ] && set -x +[[ -n $PYENV_DEBUG ]] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [[ $1 = "--complete" ]]; then echo --sh echo --no-sh exit fi -if [ "$1" = "--sh" ]; then +if [[ $1 = "--sh" ]]; then sh=1 shift -elif [ "$1" = "--no-sh" ]; then +elif [[ $1 = "--no-sh" ]]; then nosh=1 shift fi @@ -24,20 +24,25 @@ IFS=: paths=($PATH) shopt -s nullglob -{ for path in "${paths[@]}"; do - for command in "${path}/pyenv-"*; do - command="${command##*pyenv-}" - if [ -n "$sh" ]; then - if [ "${command:0:3}" = "sh-" ]; then - echo "${command##sh-}" - fi - elif [ -n "$nosh" ]; then - if [ "${command:0:3}" != "sh-" ]; then +{ + if [[ -n $sh ]]; then + for path in "${paths[@]}"; do + for command in "${path}"/pyenv-sh-*; do + echo "${command##*/pyenv-sh-}" + done + done + else + for path in "${paths[@]}"; do + for command in "${path}"/pyenv-*; do + command="${command##*/pyenv-}" + if [[ -n $nosh ]]; then + if [[ ${command:0:3} != "sh-" ]]; then + echo "$command" + fi + else echo "${command##sh-}" fi - else - echo "${command##sh-}" - fi + done done - done -} | sort | uniq + fi +} | sort -u From 044d816d358dcac587757a7bb0862cc8e7385de0 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 14 Mar 2026 11:23:19 +0300 Subject: [PATCH 1119/1324] which: update `pyenv help global` tip (#3424) --- libexec/pyenv-which | 4 ++-- test/which.bats | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 0ebf82193b..4cdcfeb073 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -112,8 +112,8 @@ else echo "The \`$PYENV_COMMAND' command exists in these Python versions:" echo "$versions" | sed 's/^/ /g' echo - echo "Note: See 'pyenv help global' for tips on allowing both" - echo " python2 and python3 to be found." + echo "Note: See 'pyenv help global' for tips on allowing multiple" + echo " Python versions to be found at the same time." } >&2 fi fi diff --git a/test/which.bats b/test/which.bats index e54c170418..9113880493 100644 --- a/test/which.bats +++ b/test/which.bats @@ -68,8 +68,8 @@ pyenv: py.test: command not found The \`py.test' command exists in these Python versions: 3.4 - Note: See 'pyenv help global' for tips on allowing both - python2 and python3 to be found. +Note: See 'pyenv help global' for tips on allowing multiple + Python versions to be found at the same time. OUT } @@ -85,8 +85,8 @@ pyenv: py.test: command not found The \`py.test' command exists in these Python versions: 3.4 - Note: See 'pyenv help global' for tips on allowing both - python2 and python3 to be found. +Note: See 'pyenv help global' for tips on allowing multiple + Python versions to be found at the same time. OUT } @@ -118,8 +118,8 @@ The \`py.test' command exists in these Python versions: 3.3 3.4 -Note: See 'pyenv help global' for tips on allowing both - python2 and python3 to be found. +Note: See 'pyenv help global' for tips on allowing multiple + Python versions to be found at the same time. OUT } From a6521a0d35ba1b8231d2593a1cd6c99489bb7840 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 23 Mar 2026 17:05:57 +0300 Subject: [PATCH 1120/1324] Fix link [no ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b436c18dd9..f489575af7 100644 --- a/README.md +++ b/README.md @@ -407,7 +407,7 @@ of the following commands: * [`pyenv shell `](COMMANDS.md#pyenv-shell) -- select just for current shell session * [`pyenv local `](COMMANDS.md#pyenv-local) -- automatically select whenever you are in the current directory (or its subdirectories) -* [`pyenv global `](COMMANDS.md#pyenv-shell) -- select globally for your user account +* [`pyenv global `](COMMANDS.md#pyenv-global) -- select globally for your user account E.g. to select the above-mentioned newly-installed Python 3.10.4 as your preferred version to use: From 0d71a264c21a7f5a187ba8755c7df20f2b1aaa28 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 23 Mar 2026 18:11:41 +0300 Subject: [PATCH 1121/1324] Fix factual errors; highlight `pyenv install 3` Closes #3427 [no ci] --- COMMANDS.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index c062175fd3..0b9645867b 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -40,9 +40,8 @@ Lists all available pyenv commands. Sets a local application-specific Python version by writing the version name to a `.python-version` file in the current directory. This version -overrides the global version, and can be overridden itself by setting -the `PYENV_VERSION` environment variable or with the `pyenv shell` -command. +overrides the [global version](#pyenv-global), and can be overridden +itself with the [`pyenv shell`](#pyenv-shell) command. $ pyenv local 2.7.6 @@ -98,9 +97,8 @@ This is mainly useful in special cases like provisioning scripts. ## `pyenv global` Sets the global version of Python to be used in all shells by writing -the version name to the `~/.pyenv/version` file. This version can be -overridden by an application-specific `.python-version` file, or by -setting the `PYENV_VERSION` environment variable. +the version name to the `$PYENV_ROOT/version` file. This version can be +overridden with [`pyenv local`](#pyenv-local) or [`pyenv shell`](#pyenv-shell). $ pyenv global 2.7.6 @@ -236,6 +234,7 @@ Then install the desired versions: You can also install the latest version of Python in a specific version line by supplying a prefix instead of a complete name: $ pyenv install 3.10 + $ pyenv install 3 See the [`pyenv latest` documentation](#pyenv-latest) for details on prefix resolution. @@ -243,9 +242,6 @@ An older option is to use the `:latest` syntax. For example, to install the late pyenv install 3.8:latest -To install the latest major release for Python 3 try: - - pyenv install 3:latest ## `pyenv uninstall` From 8397a19c6467d11509dbd741cf0528f9a68a5541 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 24 Mar 2026 09:05:13 +0300 Subject: [PATCH 1122/1324] - outdated info [no ci] --- COMMANDS.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 0b9645867b..320baaebb4 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -348,10 +348,9 @@ locations of the currently selected versions. Displays the latest installed or known version with the given prefix - Usage: pyenv latest [-k|--known] [-q|--quiet] + Usage: pyenv latest [-k|--known] -k/--known Select from all known versions instead of installed - -q/--quiet Do not print an error message on resolution failure Only full prefixes are searched: in the actual name, the given prefix must be followed by a dot or a dash. From d26308df494f7f48784a10ddb6206dc0f69bac9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Apr 2026 09:31:31 +0300 Subject: [PATCH 1123/1324] Bump actions/create-github-app-token in the github-actions group (#3428) Bumps the github-actions group with 1 update: [actions/create-github-app-token](https://github.com/actions/create-github-app-token). Updates `actions/create-github-app-token` from 2 to 3 - [Release notes](https://github.com/actions/create-github-app-token/releases) - [Commits](https://github.com/actions/create-github-app-token/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/create-github-app-token dependency-version: '3' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 8e5903a92e..9f00b13212 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -41,7 +41,7 @@ jobs: # https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#authenticating-with-github-app-generated-tokens - name: Generate Github token if: env.rc == 0 - uses: actions/create-github-app-token@v2 + uses: actions/create-github-app-token@v3 id: generate-token with: app-id: ${{ vars.PYENV_BOT_APP_ID }} From ce491008e72778104c231449fea1d7aed24d613b Mon Sep 17 00:00:00 2001 From: exurd <7785022+exurd@users.noreply.github.com> Date: Wed, 1 Apr 2026 19:32:48 +0100 Subject: [PATCH 1124/1324] python-build: advise user with no c compiler (#3294) this checks if "no acceptable C compiler found" is in the last 10 lines of the log, and asks if the user has correctly installed the build dependencies. --- plugins/python-build/bin/python-build | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 36b6f2e24f..4d9b054e96 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -202,7 +202,14 @@ build_failed() { colorize 33 "Results logged to ${LOG_PATH}" printf "\n\n" echo "Last 10 log lines:" - tail -n 10 "$LOG_PATH" + TAIL=`tail -n 10 "$LOG_PATH"` + echo "$TAIL" + if echo "$TAIL" | grep -q "no acceptable C compiler found"; then + printf "\n" + echo "Are the build dependencies for Python correctly installed?" + echo "Please consult to the Wiki page for more info." + echo "https://github.com/pyenv/pyenv/wiki#suggested-build-environment" + fi fi } >&3 exit 1 From bfec0e43f51f2d2a1d3261f4ca67b8bddfad623b Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 8 Apr 2026 18:08:59 +0300 Subject: [PATCH 1125/1324] Add CPython 3.13.13, 3.14.4, 3.15.0a8 (#3432) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.13.13 | 10 ++++++++++ .../share/python-build/{3.15.0a7t => 3.13.13t} | 0 plugins/python-build/share/python-build/3.14.4 | 10 ++++++++++ plugins/python-build/share/python-build/3.14.4t | 2 ++ plugins/python-build/share/python-build/3.15.0a7 | 10 ---------- plugins/python-build/share/python-build/3.15.0a8 | 10 ++++++++++ plugins/python-build/share/python-build/3.15.0a8t | 2 ++ 7 files changed, 34 insertions(+), 10 deletions(-) create mode 100644 plugins/python-build/share/python-build/3.13.13 rename plugins/python-build/share/python-build/{3.15.0a7t => 3.13.13t} (100%) create mode 100644 plugins/python-build/share/python-build/3.14.4 create mode 100644 plugins/python-build/share/python-build/3.14.4t delete mode 100644 plugins/python-build/share/python-build/3.15.0a7 create mode 100644 plugins/python-build/share/python-build/3.15.0a8 create mode 100644 plugins/python-build/share/python-build/3.15.0a8t diff --git a/plugins/python-build/share/python-build/3.13.13 b/plugins/python-build/share/python-build/3.13.13 new file mode 100644 index 0000000000..7e4a931da7 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.13 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.13" "https://www.python.org/ftp/python/3.13.13/Python-3.13.13.tar.xz#2ab91ff401783ccca64f75d10c882e957bdfd60e2bf5a72f8421793729b78a71" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.13" "https://www.python.org/ftp/python/3.13.13/Python-3.13.13.tgz#f9cde7b0e2ec8165d7326e2a0f59ea2686ce9d0c617dbbb3d66a7e54d31b74b9" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0a7t b/plugins/python-build/share/python-build/3.13.13t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a7t rename to plugins/python-build/share/python-build/3.13.13t diff --git a/plugins/python-build/share/python-build/3.14.4 b/plugins/python-build/share/python-build/3.14.4 new file mode 100644 index 0000000000..b0f1e5978a --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.4 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.4" "https://www.python.org/ftp/python/3.14.4/Python-3.14.4.tar.xz#d923c51303e38e249136fc1bdf3568d56ecb03214efdef48516176d3d7faaef8" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.4" "https://www.python.org/ftp/python/3.14.4/Python-3.14.4.tgz#b4c059d5895f030e7df9663894ce3732bfa1b32cd3ab2883980266a45ce3cb3b" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.4t b/plugins/python-build/share/python-build/3.14.4t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.4t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/3.15.0a7 b/plugins/python-build/share/python-build/3.15.0a7 deleted file mode 100644 index 4af5fe6134..0000000000 --- a/plugins/python-build/share/python-build/3.15.0a7 +++ /dev/null @@ -1,10 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.15.0a7" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a7.tar.xz#8f590c428b7f0d406df928b85737e7a3afa28eddd4d1419410ea809687ed1ea7" standard verify_py315 copy_python_gdb ensurepip -else - install_package "Python-3.15.0a7" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a7.tgz#a3ab00d82e04559369fecc98fab90ccb38e14f00bc0171f06e94821c1d2b1413" standard verify_py315 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0a8 b/plugins/python-build/share/python-build/3.15.0a8 new file mode 100644 index 0000000000..f68aa88480 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0a8 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0a8" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a8.tar.xz#28f1b6358609042ebcc81488ec24569519f50804bb07dc23cc707b281b031c69" standard verify_py315 copy_python_gdb ensurepip +else + install_package "Python-3.15.0a8" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a8.tgz#1aadddd942e7c80e92fd2d83ab36887cec860c48fa9a2b47efe8c5acaa4a29f3" standard verify_py315 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0a8t b/plugins/python-build/share/python-build/3.15.0a8t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0a8t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 840f3ff7fd50ed1d66c2c0ac3fc0c1bb743782c5 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 8 Apr 2026 18:24:54 +0300 Subject: [PATCH 1126/1324] Add miniforge3 26.1.1-2, 26.1.1-3 (#3433) --- .../share/python-build/miniforge3-26.1.1-2 | 31 +++++++++++++++++++ .../share/python-build/miniforge3-26.1.1-3 | 31 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-26.1.1-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-26.1.1-3 diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.1-2 b/plugins/python-build/share/python-build/miniforge3-26.1.1-2 new file mode 100644 index 0000000000..4347f921c5 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.1.1-2 @@ -0,0 +1,31 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.1.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-aarch64.sh#6525bfb24940c5e063ed14f2d840968b0fc4152a3f4edd253b7a1049a15656e7" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.1.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-ppc64le.sh#637cf03310343d199bcd7725aab54f59666fb1694bb99fc841973203da9c3f25" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.1.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-x86_64.sh#831421c1f32d8b510e0ef7f261aaabdbf567bdbba37373432d492621b824ab1f" "miniconda" verify_py312 + ;; +"MacOSX-arm64.pkg" ) + install_script "Miniforge3-26.1.1-2-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-arm64.pkg#2cf96ab02ab575028bfe2c0d0f8ee8e7c39953588042189507d8f99c53971baf" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.1.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-arm64.sh#ed60de20689ab24dd646b9ec4b06762d35f8c0043026778699ba7c9f0816492c" "miniconda" verify_py312 + ;; +"MacOSX-x86_64.pkg" ) + install_script "Miniforge3-26.1.1-2-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-x86_64.pkg#5b7e555b22515debaf049b7cfe0eec73e0c8dc71ea1ba773b7132c852277aa72" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.1.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-x86_64.sh#74f3e5cdb70bf0ff9bab3e4ba8d35aee5b46bf7eebca94202cbd8d46e16ecf77" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.1-3 b/plugins/python-build/share/python-build/miniforge3-26.1.1-3 new file mode 100644 index 0000000000..5b6c434c3c --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.1.1-3 @@ -0,0 +1,31 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.1.1-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-aarch64.sh#83280e4ee71a5bd547d6b318f96e9ababe1054911ff6cc2b8801ce5493fe67e5" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.1.1-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-ppc64le.sh#5711fd69219bc9746389ef751ee4c2549d40d9b1626a0ea93cc63db1a739eee6" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.1.1-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-x86_64.sh#b25b828b702df4dd2a6d24d4eb56cfa912471dd8e3342cde2c3d86fe3dc2d870" "miniconda" verify_py312 + ;; +"MacOSX-arm64.pkg" ) + install_script "Miniforge3-26.1.1-3-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-arm64.pkg#864d4ba41bae5ad85d41d00a163535ea4b8b1ab7a4fd3b03f875c36c0c323b80" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.1.1-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-arm64.sh#38e73713bc504e11cf2a70f8bc01de4a778c547e9191e682606ba76fa4397fd9" "miniconda" verify_py312 + ;; +"MacOSX-x86_64.pkg" ) + install_script "Miniforge3-26.1.1-3-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-x86_64.pkg#34cb544a2473f2b4755bdd361520114f20a61284bcdf3c2b124a392a1aa9923f" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.1.1-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-x86_64.sh#d81e77d8f3c104c64e0ab27256f901e58ac9965288ccec774db87bf1a98a03e7" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 914ff800628758a8feda2ea57d9c6b91799d9464 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 8 Apr 2026 18:26:46 +0300 Subject: [PATCH 1127/1324] 2.6.27 --- CHANGELOG.md | 8 ++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5b2ee3ad2..b0e42b1bbb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release v2.6.27 +* commands: fast path for --sh, replace sort|uniq with sort -u by @jakelodwick in https://github.com/pyenv/pyenv/pull/3423 +* which: update the `pyenv help global` tip by @native-api in https://github.com/pyenv/pyenv/pull/3424 +* Bump actions/create-github-app-token from 2 to 3 in the github-actions group by @dependabot[bot] in https://github.com/pyenv/pyenv/pull/3428 +* python-build: advise user with no c compiler by @exurd in https://github.com/pyenv/pyenv/pull/3294 +* Add CPython 3.13.13, 3.14.4, 3.15.0a8 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3432 +* Add miniforge3 26.1.1-2, 26.1.1-3 by @native-api in https://github.com/pyenv/pyenv/pull/3433 + ## Release v2.6.26 * versions: fast path for --bare --skip-aliases by @jakelodwick in https://github.com/pyenv/pyenv/pull/3411 * Fix MacPorts OpenSSL formula detection by @tekintian in https://github.com/pyenv/pyenv/pull/3417 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e2a4e2fb95..62a903fd56 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.26" +version="2.6.27" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4d9b054e96..c6128a9d66 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.26" +PYTHON_BUILD_VERSION="2.6.27" OLDIFS="$IFS" From 46e4e6ab07274849a77cfba3bfc44a55eaf9283d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 15 Apr 2026 15:18:16 +0300 Subject: [PATCH 1128/1324] -dead code [no ci] --- plugins/python-build/scripts/add_cpython.py | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index afb9982a67..40ec9e9532 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -168,7 +168,6 @@ def handle_t_thunks(version, previous_version, is_prerelease_upgrade): thunk_name = (str(version) + "t") thunk_path = OUT_DIR / thunk_name previous_thunk_name = str(previous_version) + "t" - previous_thunk_path = OUT_DIR / previous_thunk_name if is_prerelease_upgrade: logger.info(f"Git moving {previous_thunk_name} to {thunk_name}") subprocess.check_call(("git","-C",OUT_DIR, From ae1bb9c06133bab877dc409e93ae17b4b47837f7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 17 Apr 2026 22:30:54 +0300 Subject: [PATCH 1129/1324] CI: add_python: 3.9 is EOL --- plugins/python-build/scripts/add_cpython.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index 40ec9e9532..0669ba878b 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -32,9 +32,8 @@ logger = logging.getLogger(__name__) -CUTOFF_VERSION=packaging.version.Version('3.9') +CUTOFF_VERSION=packaging.version.Version('3.10') EXCLUDED_VERSIONS= { - packaging.version.Version("3.9.3") #recalled upstream } here = pathlib.Path(__file__).resolve() From dfb1a96c3ea8705000fc1adf6ca4d7a745159cdf Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 17 Apr 2026 22:53:42 +0300 Subject: [PATCH 1130/1324] CI: use macos-26 the Github runner is out of beta --- .github/workflows/modified_scripts_build.yml | 10 ++++++++-- .github/workflows/pyenv_tests.yml | 7 ++++--- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index bdd82d9dcf..5a78729c30 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -83,7 +83,11 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["macos-14", "macos-15", "macos-15-intel"] + os: + - macos-14 + - macos-15 + - macos-15-intel + - macos-26 exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}} runs-on: ${{ matrix.os }} steps: @@ -193,7 +197,9 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} - os: ["ubuntu-22.04", "ubuntu-24.04"] + os: + - ubuntu-22.04 + - ubuntu-24.04 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index f9e1092487..f6575f0f6d 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -10,11 +10,12 @@ jobs: fail-fast: false matrix: os: - - ubuntu-24.04 - ubuntu-22.04 - - macos-15-intel - - macos-15 + - ubuntu-24.04 - macos-14 + - macos-15 + - macos-15-intel + - macos-26 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v6 From 6481d1451dca0320e7549367f1d7f263c94b5146 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 24 Apr 2026 00:34:40 +0300 Subject: [PATCH 1131/1324] pyenv-latest: fast path for when there is an exact match (#3437) Avoids O(N^2) complexity when `pyenv-latest` is called in a loop for existing entries --- libexec/pyenv-latest | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 7d85e3026f..3a32439e1c 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -10,6 +10,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x + while [[ $# -gt 0 ]] do case "$1" in @@ -38,6 +39,10 @@ exitcode=0 IFS=$'\n' if [[ -z $FROM_KNOWN ]]; then + if [[ -d $PYENV_ROOT/versions/$prefix ]]; then + echo "$prefix" + exit $exitcode; + fi DEFINITION_CANDIDATES=( $(pyenv-versions --bare --skip-envs) ) else DEFINITION_CANDIDATES=( $(python-build --definitions ) ) From 485090e7131630b191305316571c06e4ecac3a35 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 29 Apr 2026 08:26:10 +0300 Subject: [PATCH 1132/1324] 2.6.28 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0e42b1bbb..a41586f61d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.28 +* pyenv-latest: fast path for when there is an exact match by @native-api in https://github.com/pyenv/pyenv/pull/3437 + ## Release v2.6.27 * commands: fast path for --sh, replace sort|uniq with sort -u by @jakelodwick in https://github.com/pyenv/pyenv/pull/3423 * which: update the `pyenv help global` tip by @native-api in https://github.com/pyenv/pyenv/pull/3424 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 62a903fd56..a3dfb854b0 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.27" +version="2.6.28" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c6128a9d66..9e890fb744 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.27" +PYTHON_BUILD_VERSION="2.6.28" OLDIFS="$IFS" From 3966e507ba3acb28fc97aeca9d88348961c2e728 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Wed, 29 Apr 2026 19:38:51 -0700 Subject: [PATCH 1133/1324] Add PyPy v7.3.22 The release blog entry is here: https://pypy.org/posts/2026/04/pypy-v7322-release.html --- .../share/python-build/pypy2.7-7.3.22 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.22-src | 14 ++++ .../share/python-build/pypy3.11-7.3.22 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-7.3.22-src | 14 ++++ 4 files changed, 182 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.22 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.22-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.22 create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.22-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.22 b/plugins/python-build/share/python-build/pypy2.7-7.3.22 new file mode 100644 index 0000000000..fd0dc19eb3 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.22 @@ -0,0 +1,77 @@ +VERSION='7.3.22' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=49829ef97a36d50870b0a4a7d6d67c4817d98a0bbd936e7a86ac6ef615b07205 +linux32_hash=3512d44a9005b52611ad2d84e63c575c8b592fb1dd1a708a00f787b46e6ee07b +linux64_hash=c47a4030542cbd34d0cb673a0de1956c94c1ebe6c6b094f2ae6a167c55375f68 +osarm64_hash=83f7c9aab17f090a8fc54d917fb627ebf45f57e37e951e25d34cc94f796cb62a +osx64_hash=25adfddbf502a479d57f1948e19881a90162180b2b6dc7e3c2efacead1353438 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.22-src b/plugins/python-build/share/python-build/pypy2.7-7.3.22-src new file mode 100644 index 0000000000..5b3b1d8cbe --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.22-src @@ -0,0 +1,14 @@ +VERSION='7.3.22' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=f4445c1a835effe4d3b26521e73a7780893dec02520aa6799a377c9a0fcdd8ad + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.22 b/plugins/python-build/share/python-build/pypy3.11-7.3.22 new file mode 100644 index 0000000000..de50d2d092 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.22 @@ -0,0 +1,77 @@ +VERSION='7.3.22' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=c29a8933e2084f52df74c829aa0d8f5652b9d5919f68e9fb89cab3afe35dd884 +linux32_hash=6fdad58d6d376810cf6291be1d396032f4da8109517357de0091adc3874f04c9 +linux64_hash=c0c239a6b0d381338bcccf852d0690b9daca632e0216389a3796f8817fd66e0e +osarm64_hash=5de96e2b68a8b347fb24f8b3f5345ce0724605d4122ce194e1decce4dab8d5a0 +osx64_hash=26adf960b6f57cacb39a9f0e8fd87e9de7986762b467c75b3aaf94177aa7af87 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.22-src b/plugins/python-build/share/python-build/pypy3.11-7.3.22-src new file mode 100644 index 0000000000..183c06f9e0 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.22-src @@ -0,0 +1,14 @@ +VERSION='7.3.22' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=9f885a47a232b957f9b5cc4307264af229570ddea62a9c175351afa3a6321820 + +### 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' From b8a6e9c33c6ef83a7105b553e82fae41a5c1c271 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 30 Apr 2026 07:01:27 +0300 Subject: [PATCH 1134/1324] CI: Don't require openssl@1.1 Missing in macos-26 Homebrew, causing an error, no longer required for any supported Pythons --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 5a78729c30..5faf172d48 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -99,7 +99,7 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | #prerequisites - brew install openssl openssl@1.1 readline sqlite3 xz zlib + brew install openssl readline sqlite3 xz zlib if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV From 27b4b4dc84b78f81e85a5836aab845fffc02dd2c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 6 May 2026 01:24:27 +0300 Subject: [PATCH 1135/1324] CI: no-response: half the frequency getting "no runner found" errors --- .github/workflows/no-response.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index 275b75637c..648289e8a5 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -6,8 +6,8 @@ on: issue_comment: types: [created] schedule: - # Schedule for ten minutes after the hour, every hour - - cron: '10 * * * *' + # Schedule for ten minutes after the hour, every 2 hours + - cron: '10 /2 * * *' permissions: {} jobs: From 3f62ee82b58b7d610bfcd8ec9249406773648b6f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 6 May 2026 01:25:17 +0300 Subject: [PATCH 1136/1324] CI: add_version: Fix commit message --- .github/workflows/add_version.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 9f00b13212..d796a3470a 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -52,4 +52,5 @@ jobs: with: branch: ${{ env.branch_name }} title: ${{ env.pr_name }} + commit-message: ${{ env.pr_name }} token: ${{ steps.generate-token.outputs.token }} From 36f37e96eacd105c0b8c5fef60aa0ed81e17533c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 6 May 2026 01:26:56 +0300 Subject: [PATCH 1137/1324] CI: no-response: fix --- .github/workflows/no-response.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index 648289e8a5..c66e7b0ab5 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -7,7 +7,7 @@ on: types: [created] schedule: # Schedule for ten minutes after the hour, every 2 hours - - cron: '10 /2 * * *' + - cron: '10 */2 * * *' permissions: {} jobs: From 6bdb85d8b743a2a0d2416836aa5fac0c90c6acd2 Mon Sep 17 00:00:00 2001 From: orbisai0security Date: Wed, 6 May 2026 09:05:23 +0530 Subject: [PATCH 1138/1324] CI: add-version: Add timeouts to CPython release metadata fetches (#3439) Co-authored-by: Claude Opus 4.6 --- plugins/python-build/scripts/add_cpython.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index 0669ba878b..8c05a0660c 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -433,7 +433,7 @@ def get_store_latest_release(self) \ #already retrieved return self[max(self.keys())] - j = requests.get("https://api.github.com/repos/openssl/openssl/releases/latest").json() + j = requests.get("https://api.github.com/repos/openssl/openssl/releases/latest", timeout=30).json() # noinspection PyTypeChecker # urlparse can parse str as well as bytes shasum_url = more_itertools.one( @@ -441,7 +441,7 @@ def get_store_latest_release(self) \ for asset in j['assets'] if urllib.parse.urlparse(asset['browser_download_url']).path.split('/')[-1].endswith('.sha256') ) - shasum_text = requests.get(shasum_url).text + shasum_text = requests.get(shasum_url, timeout=30).text shasum_data = jc.parse("hashsum", shasum_text, quiet=True)[0] package_hash, package_filename = shasum_data["hash"], shasum_data["filename"] del shasum_data, shasum_text, shasum_url @@ -536,7 +536,7 @@ def enum_download_entries(cls, url, pattern, session=None, """ if session is None: session = requests_html.HTMLSession() - response = session.get(url) + response = session.get(url, timeout=30) page = response.html table = page.find("pre", first=True) # some GNU mirrors format entries as a table @@ -606,7 +606,7 @@ def sha256_url(url, session=None): session = requests_html.HTMLSession() logger.info(f"Downloading and computing hash of {url}") h=hashlib.sha256() - r=session.get(url,stream=True) + r=session.get(url,stream=True,timeout=30) total_bytes=int(r.headers.get('content-length',0)) or float('inf') with tqdm.tqdm(total=total_bytes, unit='B', unit_scale=True, unit_divisor=1024) as t: for c in r.iter_content(1024): From a736e6af27a354be1c7a1a234ac6f6184d36d006 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 6 May 2026 18:18:29 +0300 Subject: [PATCH 1139/1324] CI: add_version: move off the start of the hour Due to load peak at 0 minutes, it may fail to get a runner. Github tries to allocate a runner for ~15 minutes. --- .github/workflows/add_version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index d796a3470a..74575c0edf 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: {} schedule: # Every N hours - - cron: '0 */4 * * *' + - cron: '25 */4 * * *' permissions: contents: write From 709f42cc08d605d5eb60f36b9418bc8b2e5756b7 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Thu, 7 May 2026 17:22:11 -0700 Subject: [PATCH 1140/1324] Add CPython 3.15.0b1 (#3440) --- .../python-build/share/python-build/{3.15.0a8 => 3.15.0b1} | 4 ++-- .../python-build/share/python-build/{3.15.0a8t => 3.15.0b1t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0a8 => 3.15.0b1} (61%) rename plugins/python-build/share/python-build/{3.15.0a8t => 3.15.0b1t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0a8 b/plugins/python-build/share/python-build/3.15.0b1 similarity index 61% rename from plugins/python-build/share/python-build/3.15.0a8 rename to plugins/python-build/share/python-build/3.15.0b1 index f68aa88480..24ab70cb5b 100644 --- a/plugins/python-build/share/python-build/3.15.0a8 +++ b/plugins/python-build/share/python-build/3.15.0b1 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0a8" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a8.tar.xz#28f1b6358609042ebcc81488ec24569519f50804bb07dc23cc707b281b031c69" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0b1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b1.tar.xz#d4d52ccfa1d727ef5235fbb7d70fa1dbacf10b8b3760db622875da05acbe437c" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0a8" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0a8.tgz#1aadddd942e7c80e92fd2d83ab36887cec860c48fa9a2b47efe8c5acaa4a29f3" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0b1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b1.tgz#9b41271890067875db7f0f5cb2fdcb944b90c473f272a18a13b93c059d84c68e" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0a8t b/plugins/python-build/share/python-build/3.15.0b1t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0a8t rename to plugins/python-build/share/python-build/3.15.0b1t From e08497a2b7109bcae5bb915658ee6d34f8a99e0f Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 8 May 2026 03:53:13 +0300 Subject: [PATCH 1141/1324] Add CPython 3.14.5rc1 (#3441) --- plugins/python-build/share/python-build/3.14.5rc1 | 10 ++++++++++ plugins/python-build/share/python-build/3.14.5rc1t | 2 ++ 2 files changed, 12 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.5rc1 create mode 100644 plugins/python-build/share/python-build/3.14.5rc1t diff --git a/plugins/python-build/share/python-build/3.14.5rc1 b/plugins/python-build/share/python-build/3.14.5rc1 new file mode 100644 index 0000000000..0eeb21a69e --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.5rc1 @@ -0,0 +1,10 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.5rc1" "https://www.python.org/ftp/python/3.14.5/Python-3.14.5rc1.tar.xz#67ee56f36fc22e5ada84d452430362e71081804c4f85c33dc5bf4206c27f973c" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.5rc1" "https://www.python.org/ftp/python/3.14.5/Python-3.14.5rc1.tgz#6d3e5301534e221e2a4e8add507fb1a20e31d3530d32eb618f3ae0a7170bc2f0" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.5rc1t b/plugins/python-build/share/python-build/3.14.5rc1t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.5rc1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From a7cc77627456bce3ab9f2ad1b13d9dafd32914bd Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 8 May 2026 03:54:43 +0300 Subject: [PATCH 1142/1324] 2.6.29 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a41586f61d..b193f4ef3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.6.29 +* Add PyPy v7.3.22 by @jsirois in https://github.com/pyenv/pyenv/pull/3438 +* CI: Add timeouts to CPython release metadata fetches by @orbisai0security in https://github.com/pyenv/pyenv/pull/3439 +* Add CPython 3.15.0b1 by @jsirois in https://github.com/pyenv/pyenv/pull/3440 +* Add CPython 3.14.5rc1 by @native-api in https://github.com/pyenv/pyenv/pull/3441 + ## Release v2.6.28 * pyenv-latest: fast path for when there is an exact match by @native-api in https://github.com/pyenv/pyenv/pull/3437 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index a3dfb854b0..3a08bee567 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.28" +version="2.6.29" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 9e890fb744..18a0fdeba6 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.28" +PYTHON_BUILD_VERSION="2.6.29" OLDIFS="$IFS" From e30c23eac2a222091df9430e36760ce3f8eb1abd Mon Sep 17 00:00:00 2001 From: Ned Batchelder Date: Fri, 8 May 2026 10:10:22 -0400 Subject: [PATCH 1143/1324] Add CPython 3.16-dev, switch 3.15-dev to maintenance branch (#3442) 3.15.0b1 released means we need 3.16 support --- plugins/python-build/bin/python-build | 5 +++++ plugins/python-build/share/python-build/3.15-dev | 2 +- plugins/python-build/share/python-build/3.16-dev | 8 ++++++++ plugins/python-build/share/python-build/3.16t-dev | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/3.16-dev create mode 100644 plugins/python-build/share/python-build/3.16t-dev diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 18a0fdeba6..67fd38adad 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2276,6 +2276,11 @@ build_package_verify_py315() { build_package_verify_py314 "$1" "${2:-3.15}" } +# Post-install check for Python 3.16.x +build_package_verify_py316() { + build_package_verify_py315 "$1" "${2:-3.16}" +} + # Post-install check for Python 3.x rolling release scripts # XXX: Will need splitting into project-specific ones if there emerge # multiple rolling-release scripts with different checks needed diff --git a/plugins/python-build/share/python-build/3.15-dev b/plugins/python-build/share/python-build/3.15-dev index 71d8d73906..589139172f 100644 --- a/plugins/python-build/share/python-build/3.15-dev +++ b/plugins/python-build/share/python-build/3.15-dev @@ -5,4 +5,4 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -install_git "Python-3.15-dev" "https://github.com/python/cpython" main standard verify_py315 copy_python_gdb ensurepip +install_git "Python-3.15-dev" "https://github.com/python/cpython" 3.15 standard verify_py315 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.16-dev b/plugins/python-build/share/python-build/3.16-dev new file mode 100644 index 0000000000..a7c6cc7e3c --- /dev/null +++ b/plugins/python-build/share/python-build/3.16-dev @@ -0,0 +1,8 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 +install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +install_git "Python-3.16-dev" "https://github.com/python/cpython" main standard verify_py316 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/3.16t-dev b/plugins/python-build/share/python-build/3.16t-dev new file mode 100644 index 0000000000..0e5159dec1 --- /dev/null +++ b/plugins/python-build/share/python-build/3.16t-dev @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "$(dirname "${BASH_SOURCE[0]}")"/3.16-dev From 40dba8256f482e648dc3d170d0cc18aca9bb313e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 8 May 2026 17:37:31 +0300 Subject: [PATCH 1144/1324] 2.6.30 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b193f4ef3f..21c9a3ac81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.6.30 +* Add CPython 3.16-dev, switch 3.15-dev to maintenance branch by @nedbat in https://github.com/pyenv/pyenv/pull/3442 + ## Release v2.6.29 * Add PyPy v7.3.22 by @jsirois in https://github.com/pyenv/pyenv/pull/3438 * CI: Add timeouts to CPython release metadata fetches by @orbisai0security in https://github.com/pyenv/pyenv/pull/3439 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 3a08bee567..5914b473df 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.29" +version="2.6.30" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 67fd38adad..029081f0ec 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.29" +PYTHON_BUILD_VERSION="2.6.30" OLDIFS="$IFS" From 97573e156e5c42ebdc4fb5b4503a27c1ed5f02dd Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 8 May 2026 17:48:39 +0300 Subject: [PATCH 1145/1324] CI: add_version: correctly handle exceptions exit code 1 is used as a signal that no new version is found -- so have to use a different exit code for unhandled exceptions --- .github/workflows/add_version.yml | 2 ++ plugins/python-build/scripts/add_cpython.py | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 74575c0edf..23c2b6fd27 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -25,6 +25,8 @@ jobs: - name: check for a release run: | python plugins/python-build/scripts/add_cpython.py --verbose >added_versions.lst && rc=$? || rc=$? + #0 means new version found, 1 not found, 2 another error + [[ $rc -gt 1 ]] && false echo "rc=$rc" >> $GITHUB_ENV - name: set PR properties if: env.rc == 0 diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index 8c05a0660c..fc4edb7189 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -30,6 +30,13 @@ import sortedcontainers import tqdm +#CI uses exit code 1 as a signal that no new version is found +#so have to produce a different exit code on an exception +def _excepthook(type,value,traceback): + logging.error("Unhandled exception occured",exc_info=(type,value,traceback)) + sys.exit(2) +sys.excepthook = _excepthook + logger = logging.getLogger(__name__) CUTOFF_VERSION=packaging.version.Version('3.10') From 5bb6b27d61fc579938c877004a9ab6d1537c0805 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 8 May 2026 18:18:59 +0300 Subject: [PATCH 1146/1324] CI: add_version: support prereleases for non-initial releases They unexpectedly made a prerelease 3.14.5rc1 --- plugins/python-build/scripts/add_cpython.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index fc4edb7189..c66ad822b1 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -199,11 +199,17 @@ def main(): VersionDirectory.existing.populate() VersionDirectory.available.populate() - for initial_release in (v for v in frozenset(VersionDirectory.available.keys()) - if v.micro == 0 and v not in VersionDirectory.existing): - # may actually be a prerelease - VersionDirectory.available.get_store_available_source_downloads(initial_release, True) - del initial_release + # Prereleases are placed under the same directory as the corresponding release. + # So until we know the release is out, its directory is a potential prerelease directory. + # Normally, prereleases are only made for initial releases (x.y.0) -- + # but rarely, they may make them for other releases (e.g. 3.14.5). + for release in (v for v in frozenset(VersionDirectory.available.keys()) #refining changes the + #corresponding directory key + #which breaks iteration + #so have to iterate over a copy + if v not in VersionDirectory.existing): + VersionDirectory.available.get_store_available_source_downloads(release, True) + del release versions_to_add = sorted(VersionDirectory.available.keys() - VersionDirectory.existing.keys()) From 3399b2e2e5eae25f6ddc3960b61d561e7d6ea7c0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 8 May 2026 18:35:19 +0300 Subject: [PATCH 1147/1324] clarify confusing error message --- plugins/python-build/scripts/add_cpython.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index c66ad822b1..0742dd7a3a 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -369,8 +369,8 @@ def get_store_available_source_downloads(self, version, refine_mode=False): download_version = packaging.version.Version(m.group("version")) if download_version != version: if not refine_mode: - raise ValueError(f"Unexpectedly found a download {name} for {download_version} " - f"at page {entry.download_page_url} for {version}") + raise ValueError(f"Unexpectedly found a download {name} ({download_version}) " + f"for {version} at page {entry.download_page_url}") entry_to_fill = additional_versions_found.get_or_create( download_version, download_page_url=entry.download_page_url From 331ff66e2de4df73b22aeafb198f3b0e8fae719a Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Mon, 11 May 2026 01:36:03 +0300 Subject: [PATCH 1148/1324] Add CPython 3.14.5 (#3444) * Keep bundled OpenSSL 3 There's no support for OpenSSL 4 yet --------- Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> Co-authored-by: Ivan Pozdeev --- plugins/python-build/share/python-build/{3.14.5rc1 => 3.14.5} | 4 ++-- .../python-build/share/python-build/{3.14.5rc1t => 3.14.5t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.14.5rc1 => 3.14.5} (56%) rename plugins/python-build/share/python-build/{3.14.5rc1t => 3.14.5t} (100%) diff --git a/plugins/python-build/share/python-build/3.14.5rc1 b/plugins/python-build/share/python-build/3.14.5 similarity index 56% rename from plugins/python-build/share/python-build/3.14.5rc1 rename to plugins/python-build/share/python-build/3.14.5 index 0eeb21a69e..7d9342339e 100644 --- a/plugins/python-build/share/python-build/3.14.5rc1 +++ b/plugins/python-build/share/python-build/3.14.5 @@ -4,7 +4,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.14.5rc1" "https://www.python.org/ftp/python/3.14.5/Python-3.14.5rc1.tar.xz#67ee56f36fc22e5ada84d452430362e71081804c4f85c33dc5bf4206c27f973c" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.5" "https://www.python.org/ftp/python/3.14.5/Python-3.14.5.tar.xz#7e32597b99e5d9a39abed35de4693fa169df3e5850d4c334337ffd6a19a36db6" standard verify_py314 copy_python_gdb ensurepip else - install_package "Python-3.14.5rc1" "https://www.python.org/ftp/python/3.14.5/Python-3.14.5rc1.tgz#6d3e5301534e221e2a4e8add507fb1a20e31d3530d32eb618f3ae0a7170bc2f0" standard verify_py314 copy_python_gdb ensurepip + install_package "Python-3.14.5" "https://www.python.org/ftp/python/3.14.5/Python-3.14.5.tgz#9c22bfe9939a6c5418fc74b289a5f1cc41859ae82ac6b163016b5844bd0a86bc" standard verify_py314 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.14.5rc1t b/plugins/python-build/share/python-build/3.14.5t similarity index 100% rename from plugins/python-build/share/python-build/3.14.5rc1t rename to plugins/python-build/share/python-build/3.14.5t From c639152ac78093b397e096142c25676f516af6a0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 11 May 2026 01:39:26 +0300 Subject: [PATCH 1149/1324] 2.6.31 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21c9a3ac81..fc3f724f53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.6.31 +* CI: add_cpython: Support prereleases for non-initial CPython releases by @native-api in https://github.com/pyenv/pyenv/pull/3443 +* Add CPython 3.14.5 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3444 + ## Release v2.6.30 * Add CPython 3.16-dev, switch 3.15-dev to maintenance branch by @nedbat in https://github.com/pyenv/pyenv/pull/3442 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 5914b473df..f9bd180d00 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.30" +version="2.6.31" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 029081f0ec..caa3e7689c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.30" +PYTHON_BUILD_VERSION="2.6.31" OLDIFS="$IFS" From 8c59c44902d7b397f26128d3ce0f1a9c3335ce55 Mon Sep 17 00:00:00 2001 From: native-api Date: Mon, 11 May 2026 23:47:34 +0300 Subject: [PATCH 1150/1324] Add miniconda3 26.3.2-2, miniforge3 26.3.2-0, 26.3.2-1 (#3445) --- .../python-build/miniconda3-3.10-26.3.2-2 | 20 ++++++++++++ .../python-build/miniconda3-3.11-26.3.2-2 | 20 ++++++++++++ .../python-build/miniconda3-3.12-26.3.2-2 | 20 ++++++++++++ .../python-build/miniconda3-3.13-26.3.2-2 | 20 ++++++++++++ .../share/python-build/miniforge3-26.3.2-0 | 31 +++++++++++++++++++ .../share/python-build/miniforge3-26.3.2-1 | 31 +++++++++++++++++++ 6 files changed, 142 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.3.2-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.3.2-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.3.2-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.3.2-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-26.3.2-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-26.3.2-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.3.2-2 b/plugins/python-build/share/python-build/miniconda3-3.10-26.3.2-2 new file mode 100644 index 0000000000..eb8bab9d43 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.3.2-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_26.3.2-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.3.2-2-Linux-aarch64.sh#4b217efc09a7ce2bed8e818ee3c0242c5b267a96254b64ce55a585eca4a79b1a" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_26.3.2-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.3.2-2-Linux-x86_64.sh#f07a277e0f62e2eabe42a6bc1e2ccd3d40503fbeb2b7adb7e808b2d888355761" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_26.3.2-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.3.2-2-MacOSX-arm64.sh#9b699985b4e27b4bfb987f7cbb79096271e3cdb2b1ea14fe0f43dbb63111d593" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.3.2-2 b/plugins/python-build/share/python-build/miniconda3-3.11-26.3.2-2 new file mode 100644 index 0000000000..88d52259be --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.3.2-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_26.3.2-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.3.2-2-Linux-aarch64.sh#4d18bc365dc233d34b35f30d1e2f3491c7a2956cd84c6a13eaa8851619d894b1" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_26.3.2-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.3.2-2-Linux-x86_64.sh#1f5ece9c2c8c5a643f95e0101fab6c824b101e82dee9132c222cbc1c1475bd32" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_26.3.2-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.3.2-2-MacOSX-arm64.sh#4c2ddf372bf41603a5958c756348d436ff19357628cd7e93dd091c1c1c22f229" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.3.2-2 b/plugins/python-build/share/python-build/miniconda3-3.12-26.3.2-2 new file mode 100644 index 0000000000..314134a817 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.3.2-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_26.3.2-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.3.2-2-Linux-aarch64.sh#03d0268de83af20b3ea4e5a8927559b03e968d20f2e080794bc0fb762510773a" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_26.3.2-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.3.2-2-Linux-x86_64.sh#32673413a39a21ae3997c9b38236e9df15c9fcef930b510487c64fe259e03f95" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_26.3.2-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.3.2-2-MacOSX-arm64.sh#ac941aaca113aa07fb429ad3b2f6b8f086d14b1fca5872f190c4a3ac8837308c" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.3.2-2 b/plugins/python-build/share/python-build/miniconda3-3.13-26.3.2-2 new file mode 100644 index 0000000000..1db301999d --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.3.2-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_26.3.2-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.3.2-2-Linux-aarch64.sh#81a5e828724478a7a036027a74356ceff0206147d3b1243c8ba32e0cfa187967" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_26.3.2-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.3.2-2-Linux-x86_64.sh#2284bafb7863a23411b19874d216e237964d4b32dd9beb6807fa8b2d84570961" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_26.3.2-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.3.2-2-MacOSX-arm64.sh#6efc019c78003166fec1551486c68e08605eaca009039b1cda5f4e919e0c6dce" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-0 b/plugins/python-build/share/python-build/miniforge3-26.3.2-0 new file mode 100644 index 0000000000..3aeb427fca --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-0 @@ -0,0 +1,31 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.3.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-aarch64.sh#b8f0320c0fe9bc9dd24be8896ecf4995bbba4227c9822902daeeb7f3689ba7d3" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.3.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-ppc64le.sh#ccfef271bf337a9278d53d57760e7231f678e5ba64c5b6c9a69cbff7669a527f" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.3.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-x86_64.sh#1d9b75bdf29ba48d9f10bb155a685baab02d318d1d591d2495f97524579dccc1" "miniconda" verify_py312 + ;; +"MacOSX-arm64.pkg" ) + install_script "Miniforge3-26.3.2-0-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-arm64.pkg#9c9405a3b84135640e7ef61691b9585867c6cd694f15637f8957ec802a7a5f22" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.3.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-arm64.sh#a58d9e5a30cac3cd5ecdba2dc52dd042584a2f742a47e975779530f89e5768f5" "miniconda" verify_py312 + ;; +"MacOSX-x86_64.pkg" ) + install_script "Miniforge3-26.3.2-0-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-x86_64.pkg#d29414aa8ac138ceec454ca644c7c16a4928edfacb351b786cc6ffaa79f5988d" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.3.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-x86_64.sh#f19cc973899925b29141239880787e26cd524bcecd259c2fee72e0f561fc7b54" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-1 b/plugins/python-build/share/python-build/miniforge3-26.3.2-1 new file mode 100644 index 0000000000..233cd95cc8 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-1 @@ -0,0 +1,31 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.3.2-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-aarch64.sh#22b8f855a3934c105a05a164d23f9a4c770dd127ec1ae26ad43114625585d9f2" "miniconda" verify_py312 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.3.2-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-ppc64le.sh#d00248a68f2083bc1bea9c157191ba2f6be43756bf5b0d6021b70f1f9372843e" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.3.2-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-x86_64.sh#0e80314f5f5088fb10bc06139ac6a097644ee009500e74b627192c93362b4502" "miniconda" verify_py312 + ;; +"MacOSX-arm64.pkg" ) + install_script "Miniforge3-26.3.2-1-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-arm64.pkg#2b23a8ed7e3827d6882d88d8260a1a06055e09832e91fb37fef1185d491941fb" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.3.2-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-arm64.sh#031cc06de7287d1d69d6419bea0daf1a4a8bb8108711f859b1c351aa722d7281" "miniconda" verify_py312 + ;; +"MacOSX-x86_64.pkg" ) + install_script "Miniforge3-26.3.2-1-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-x86_64.pkg#d0b10344beda4cbd2e06d793c4ca2a41719447a6ca225d092e352cea309bcb1f" "miniconda" verify_py312 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.3.2-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-x86_64.sh#720022a19b363b55eadb27c807dfbba6607dc0cc7b312fb39574bdb616f5cc19" "miniconda" verify_py312 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 522164fbd5f3689cdff163f53812eab1d2d48d3d Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 12 May 2026 01:06:24 +0300 Subject: [PATCH 1151/1324] miniforge3 26.1, 26.3, add_miniforge: exclude .pkg installers (#3446) According to Miniforge README, they are only meant for interactive installation --- plugins/python-build/scripts/add_miniforge.py | 5 +++-- plugins/python-build/share/python-build/miniforge3-26.1.1-2 | 6 ------ plugins/python-build/share/python-build/miniforge3-26.1.1-3 | 6 ------ plugins/python-build/share/python-build/miniforge3-26.3.2-0 | 6 ------ plugins/python-build/share/python-build/miniforge3-26.3.2-1 | 6 ------ 5 files changed, 3 insertions(+), 26 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 824382e0a5..2d0802f5ff 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -95,13 +95,14 @@ def py_version(version): raise ValueError("Bundled Python version unknown for release `%s'"%version) def supported(filename): - return ('pypy' not in filename) and ('Windows' not in filename) + return ('pypy' not in filename) and ('Windows' not in filename) and (not filename.endswith('.pkg')) def add_version(release, distributions): tag_name = release['tag_name'] download_urls = { f['name']: f['browser_download_url'] for f in release['assets'] } # can assume that sha files are named similar to release files so can also check supported(on their names) - shas = dict([download_sha(url) for (name, url) in download_urls.items() if name.endswith('.sha256') and supported(os.path.basename(name)) and tag_name in name]) + shas = dict([download_sha(url) for (name, url) in download_urls.items() + if name.endswith('.sha256') and supported(os.path.splitext(name)[0]) and tag_name in name]) specs = [create_spec(filename, sha, download_urls[filename]) for (filename, sha) in shas.items() if supported(filename)] diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.1-2 b/plugins/python-build/share/python-build/miniforge3-26.1.1-2 index 4347f921c5..fe7afd32ec 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.1.1-2 +++ b/plugins/python-build/share/python-build/miniforge3-26.1.1-2 @@ -8,15 +8,9 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86_64" ) install_script "Miniforge3-26.1.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-x86_64.sh#831421c1f32d8b510e0ef7f261aaabdbf567bdbba37373432d492621b824ab1f" "miniconda" verify_py312 ;; -"MacOSX-arm64.pkg" ) - install_script "Miniforge3-26.1.1-2-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-arm64.pkg#2cf96ab02ab575028bfe2c0d0f8ee8e7c39953588042189507d8f99c53971baf" "miniconda" verify_py312 - ;; "MacOSX-arm64" ) install_script "Miniforge3-26.1.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-arm64.sh#ed60de20689ab24dd646b9ec4b06762d35f8c0043026778699ba7c9f0816492c" "miniconda" verify_py312 ;; -"MacOSX-x86_64.pkg" ) - install_script "Miniforge3-26.1.1-2-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-x86_64.pkg#5b7e555b22515debaf049b7cfe0eec73e0c8dc71ea1ba773b7132c852277aa72" "miniconda" verify_py312 - ;; "MacOSX-x86_64" ) install_script "Miniforge3-26.1.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-x86_64.sh#74f3e5cdb70bf0ff9bab3e4ba8d35aee5b46bf7eebca94202cbd8d46e16ecf77" "miniconda" verify_py312 ;; diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.1-3 b/plugins/python-build/share/python-build/miniforge3-26.1.1-3 index 5b6c434c3c..637462fe5e 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.1.1-3 +++ b/plugins/python-build/share/python-build/miniforge3-26.1.1-3 @@ -8,15 +8,9 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86_64" ) install_script "Miniforge3-26.1.1-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-x86_64.sh#b25b828b702df4dd2a6d24d4eb56cfa912471dd8e3342cde2c3d86fe3dc2d870" "miniconda" verify_py312 ;; -"MacOSX-arm64.pkg" ) - install_script "Miniforge3-26.1.1-3-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-arm64.pkg#864d4ba41bae5ad85d41d00a163535ea4b8b1ab7a4fd3b03f875c36c0c323b80" "miniconda" verify_py312 - ;; "MacOSX-arm64" ) install_script "Miniforge3-26.1.1-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-arm64.sh#38e73713bc504e11cf2a70f8bc01de4a778c547e9191e682606ba76fa4397fd9" "miniconda" verify_py312 ;; -"MacOSX-x86_64.pkg" ) - install_script "Miniforge3-26.1.1-3-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-x86_64.pkg#34cb544a2473f2b4755bdd361520114f20a61284bcdf3c2b124a392a1aa9923f" "miniconda" verify_py312 - ;; "MacOSX-x86_64" ) install_script "Miniforge3-26.1.1-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-x86_64.sh#d81e77d8f3c104c64e0ab27256f901e58ac9965288ccec774db87bf1a98a03e7" "miniconda" verify_py312 ;; diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-0 b/plugins/python-build/share/python-build/miniforge3-26.3.2-0 index 3aeb427fca..baee9ea6fd 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.3.2-0 +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-0 @@ -8,15 +8,9 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86_64" ) install_script "Miniforge3-26.3.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-x86_64.sh#1d9b75bdf29ba48d9f10bb155a685baab02d318d1d591d2495f97524579dccc1" "miniconda" verify_py312 ;; -"MacOSX-arm64.pkg" ) - install_script "Miniforge3-26.3.2-0-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-arm64.pkg#9c9405a3b84135640e7ef61691b9585867c6cd694f15637f8957ec802a7a5f22" "miniconda" verify_py312 - ;; "MacOSX-arm64" ) install_script "Miniforge3-26.3.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-arm64.sh#a58d9e5a30cac3cd5ecdba2dc52dd042584a2f742a47e975779530f89e5768f5" "miniconda" verify_py312 ;; -"MacOSX-x86_64.pkg" ) - install_script "Miniforge3-26.3.2-0-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-x86_64.pkg#d29414aa8ac138ceec454ca644c7c16a4928edfacb351b786cc6ffaa79f5988d" "miniconda" verify_py312 - ;; "MacOSX-x86_64" ) install_script "Miniforge3-26.3.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-x86_64.sh#f19cc973899925b29141239880787e26cd524bcecd259c2fee72e0f561fc7b54" "miniconda" verify_py312 ;; diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-1 b/plugins/python-build/share/python-build/miniforge3-26.3.2-1 index 233cd95cc8..fedb0e9a0d 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.3.2-1 +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-1 @@ -8,15 +8,9 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-x86_64" ) install_script "Miniforge3-26.3.2-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-x86_64.sh#0e80314f5f5088fb10bc06139ac6a097644ee009500e74b627192c93362b4502" "miniconda" verify_py312 ;; -"MacOSX-arm64.pkg" ) - install_script "Miniforge3-26.3.2-1-MacOSX-arm64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-arm64.pkg#2b23a8ed7e3827d6882d88d8260a1a06055e09832e91fb37fef1185d491941fb" "miniconda" verify_py312 - ;; "MacOSX-arm64" ) install_script "Miniforge3-26.3.2-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-arm64.sh#031cc06de7287d1d69d6419bea0daf1a4a8bb8108711f859b1c351aa722d7281" "miniconda" verify_py312 ;; -"MacOSX-x86_64.pkg" ) - install_script "Miniforge3-26.3.2-1-MacOSX-x86_64.pkg" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-x86_64.pkg#d0b10344beda4cbd2e06d793c4ca2a41719447a6ca225d092e352cea309bcb1f" "miniconda" verify_py312 - ;; "MacOSX-x86_64" ) install_script "Miniforge3-26.3.2-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-x86_64.sh#720022a19b363b55eadb27c807dfbba6607dc0cc7b312fb39574bdb616f5cc19" "miniconda" verify_py312 ;; From 0864daa5ea5ec8d52f43a76495451739d0371c5c Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 12 May 2026 01:32:56 +0300 Subject: [PATCH 1152/1324] miniconda 26, CI: switch check to 3.13 (#3447) --- plugins/python-build/scripts/add_miniforge.py | 3 +++ .../share/python-build/miniforge3-26.1.0-0 | 10 +++++----- .../share/python-build/miniforge3-26.1.1-2 | 10 +++++----- .../share/python-build/miniforge3-26.1.1-3 | 10 +++++----- .../share/python-build/miniforge3-26.3.2-0 | 10 +++++----- .../share/python-build/miniforge3-26.3.2-1 | 10 +++++----- 6 files changed, 28 insertions(+), 25 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 2d0802f5ff..41ecfce25c 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -86,6 +86,9 @@ def py_version(version): # transition points: # https://github.com/conda-forge/miniforge/blame/main/Miniforge3/construct.yaml # look for "- python " in non-pypy branch and which tag the commit is first in + if version_tuple_ >= (26,1): + # https://github.com/conda-forge/miniforge/commit/0016367731e52c67234d6d0e7e6a24c6bf7673e4 + return "313" if version_tuple_ >= (24,5): # yes, they jumped from 3.10 directly to 3.12 # https://github.com/conda-forge/miniforge/commit/bddad0baf22b37cfe079e47fd1680fdfb2183590 diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.0-0 b/plugins/python-build/share/python-build/miniforge3-26.1.0-0 index 6d3eecc8a2..3efa8c336b 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.1.0-0 +++ b/plugins/python-build/share/python-build/miniforge3-26.1.0-0 @@ -1,18 +1,18 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniforge3-26.1.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-aarch64.sh#8baf8844ecf13e1458f81659ea286251d04b2d5ed90040efb77f158adedb2d95" "miniconda" verify_py312 + install_script "Miniforge3-26.1.0-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-aarch64.sh#8baf8844ecf13e1458f81659ea286251d04b2d5ed90040efb77f158adedb2d95" "miniconda" verify_py313 ;; "Linux-ppc64le" ) - install_script "Miniforge3-26.1.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-ppc64le.sh#902190ad825b74b78a6a2816364453bb4d6989a599172aa3785d4afd0ebeb917" "miniconda" verify_py312 + install_script "Miniforge3-26.1.0-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-ppc64le.sh#902190ad825b74b78a6a2816364453bb4d6989a599172aa3785d4afd0ebeb917" "miniconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Miniforge3-26.1.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-x86_64.sh#127b5e14cfe6c83b787f624487cdc2168645ed82fdca1b0c1937caa086aed6d5" "miniconda" verify_py312 + install_script "Miniforge3-26.1.0-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-Linux-x86_64.sh#127b5e14cfe6c83b787f624487cdc2168645ed82fdca1b0c1937caa086aed6d5" "miniconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Miniforge3-26.1.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-MacOSX-arm64.sh#219b9e0d733fa2086d7d094a5ed830db146ccf22ae32c330b2da5df5c9604b78" "miniconda" verify_py312 + install_script "Miniforge3-26.1.0-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-MacOSX-arm64.sh#219b9e0d733fa2086d7d094a5ed830db146ccf22ae32c330b2da5df5c9604b78" "miniconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-26.1.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-MacOSX-x86_64.sh#90a41a28ad0221fbaf728ca1267f6243638a56c579fba8a1b970edfee4062d53" "miniconda" verify_py312 + install_script "Miniforge3-26.1.0-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.0-0/Miniforge3-26.1.0-0-MacOSX-x86_64.sh#90a41a28ad0221fbaf728ca1267f6243638a56c579fba8a1b970edfee4062d53" "miniconda" verify_py313 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.1-2 b/plugins/python-build/share/python-build/miniforge3-26.1.1-2 index fe7afd32ec..dd2c64c4ab 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.1.1-2 +++ b/plugins/python-build/share/python-build/miniforge3-26.1.1-2 @@ -1,18 +1,18 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniforge3-26.1.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-aarch64.sh#6525bfb24940c5e063ed14f2d840968b0fc4152a3f4edd253b7a1049a15656e7" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-aarch64.sh#6525bfb24940c5e063ed14f2d840968b0fc4152a3f4edd253b7a1049a15656e7" "miniconda" verify_py313 ;; "Linux-ppc64le" ) - install_script "Miniforge3-26.1.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-ppc64le.sh#637cf03310343d199bcd7725aab54f59666fb1694bb99fc841973203da9c3f25" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-ppc64le.sh#637cf03310343d199bcd7725aab54f59666fb1694bb99fc841973203da9c3f25" "miniconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Miniforge3-26.1.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-x86_64.sh#831421c1f32d8b510e0ef7f261aaabdbf567bdbba37373432d492621b824ab1f" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-Linux-x86_64.sh#831421c1f32d8b510e0ef7f261aaabdbf567bdbba37373432d492621b824ab1f" "miniconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Miniforge3-26.1.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-arm64.sh#ed60de20689ab24dd646b9ec4b06762d35f8c0043026778699ba7c9f0816492c" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-arm64.sh#ed60de20689ab24dd646b9ec4b06762d35f8c0043026778699ba7c9f0816492c" "miniconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-26.1.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-x86_64.sh#74f3e5cdb70bf0ff9bab3e4ba8d35aee5b46bf7eebca94202cbd8d46e16ecf77" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-2/Miniforge3-26.1.1-2-MacOSX-x86_64.sh#74f3e5cdb70bf0ff9bab3e4ba8d35aee5b46bf7eebca94202cbd8d46e16ecf77" "miniconda" verify_py313 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniforge3-26.1.1-3 b/plugins/python-build/share/python-build/miniforge3-26.1.1-3 index 637462fe5e..262b99f8df 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.1.1-3 +++ b/plugins/python-build/share/python-build/miniforge3-26.1.1-3 @@ -1,18 +1,18 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniforge3-26.1.1-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-aarch64.sh#83280e4ee71a5bd547d6b318f96e9ababe1054911ff6cc2b8801ce5493fe67e5" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-aarch64.sh#83280e4ee71a5bd547d6b318f96e9ababe1054911ff6cc2b8801ce5493fe67e5" "miniconda" verify_py313 ;; "Linux-ppc64le" ) - install_script "Miniforge3-26.1.1-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-ppc64le.sh#5711fd69219bc9746389ef751ee4c2549d40d9b1626a0ea93cc63db1a739eee6" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-ppc64le.sh#5711fd69219bc9746389ef751ee4c2549d40d9b1626a0ea93cc63db1a739eee6" "miniconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Miniforge3-26.1.1-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-x86_64.sh#b25b828b702df4dd2a6d24d4eb56cfa912471dd8e3342cde2c3d86fe3dc2d870" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-Linux-x86_64.sh#b25b828b702df4dd2a6d24d4eb56cfa912471dd8e3342cde2c3d86fe3dc2d870" "miniconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Miniforge3-26.1.1-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-arm64.sh#38e73713bc504e11cf2a70f8bc01de4a778c547e9191e682606ba76fa4397fd9" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-arm64.sh#38e73713bc504e11cf2a70f8bc01de4a778c547e9191e682606ba76fa4397fd9" "miniconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-26.1.1-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-x86_64.sh#d81e77d8f3c104c64e0ab27256f901e58ac9965288ccec774db87bf1a98a03e7" "miniconda" verify_py312 + install_script "Miniforge3-26.1.1-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.1.1-3/Miniforge3-26.1.1-3-MacOSX-x86_64.sh#d81e77d8f3c104c64e0ab27256f901e58ac9965288ccec774db87bf1a98a03e7" "miniconda" verify_py313 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-0 b/plugins/python-build/share/python-build/miniforge3-26.3.2-0 index baee9ea6fd..730167f428 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.3.2-0 +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-0 @@ -1,18 +1,18 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniforge3-26.3.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-aarch64.sh#b8f0320c0fe9bc9dd24be8896ecf4995bbba4227c9822902daeeb7f3689ba7d3" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-aarch64.sh#b8f0320c0fe9bc9dd24be8896ecf4995bbba4227c9822902daeeb7f3689ba7d3" "miniconda" verify_py313 ;; "Linux-ppc64le" ) - install_script "Miniforge3-26.3.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-ppc64le.sh#ccfef271bf337a9278d53d57760e7231f678e5ba64c5b6c9a69cbff7669a527f" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-ppc64le.sh#ccfef271bf337a9278d53d57760e7231f678e5ba64c5b6c9a69cbff7669a527f" "miniconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Miniforge3-26.3.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-x86_64.sh#1d9b75bdf29ba48d9f10bb155a685baab02d318d1d591d2495f97524579dccc1" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-Linux-x86_64.sh#1d9b75bdf29ba48d9f10bb155a685baab02d318d1d591d2495f97524579dccc1" "miniconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Miniforge3-26.3.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-arm64.sh#a58d9e5a30cac3cd5ecdba2dc52dd042584a2f742a47e975779530f89e5768f5" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-arm64.sh#a58d9e5a30cac3cd5ecdba2dc52dd042584a2f742a47e975779530f89e5768f5" "miniconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-26.3.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-x86_64.sh#f19cc973899925b29141239880787e26cd524bcecd259c2fee72e0f561fc7b54" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-0/Miniforge3-26.3.2-0-MacOSX-x86_64.sh#f19cc973899925b29141239880787e26cd524bcecd259c2fee72e0f561fc7b54" "miniconda" verify_py313 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-1 b/plugins/python-build/share/python-build/miniforge3-26.3.2-1 index fedb0e9a0d..9a23f156be 100644 --- a/plugins/python-build/share/python-build/miniforge3-26.3.2-1 +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-1 @@ -1,18 +1,18 @@ case "$(anaconda_architecture 2>/dev/null || true)" in "Linux-aarch64" ) - install_script "Miniforge3-26.3.2-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-aarch64.sh#22b8f855a3934c105a05a164d23f9a4c770dd127ec1ae26ad43114625585d9f2" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-1-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-aarch64.sh#22b8f855a3934c105a05a164d23f9a4c770dd127ec1ae26ad43114625585d9f2" "miniconda" verify_py313 ;; "Linux-ppc64le" ) - install_script "Miniforge3-26.3.2-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-ppc64le.sh#d00248a68f2083bc1bea9c157191ba2f6be43756bf5b0d6021b70f1f9372843e" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-1-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-ppc64le.sh#d00248a68f2083bc1bea9c157191ba2f6be43756bf5b0d6021b70f1f9372843e" "miniconda" verify_py313 ;; "Linux-x86_64" ) - install_script "Miniforge3-26.3.2-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-x86_64.sh#0e80314f5f5088fb10bc06139ac6a097644ee009500e74b627192c93362b4502" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-1-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-Linux-x86_64.sh#0e80314f5f5088fb10bc06139ac6a097644ee009500e74b627192c93362b4502" "miniconda" verify_py313 ;; "MacOSX-arm64" ) - install_script "Miniforge3-26.3.2-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-arm64.sh#031cc06de7287d1d69d6419bea0daf1a4a8bb8108711f859b1c351aa722d7281" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-1-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-arm64.sh#031cc06de7287d1d69d6419bea0daf1a4a8bb8108711f859b1c351aa722d7281" "miniconda" verify_py313 ;; "MacOSX-x86_64" ) - install_script "Miniforge3-26.3.2-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-x86_64.sh#720022a19b363b55eadb27c807dfbba6607dc0cc7b312fb39574bdb616f5cc19" "miniconda" verify_py312 + install_script "Miniforge3-26.3.2-1-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-1/Miniforge3-26.3.2-1-MacOSX-x86_64.sh#720022a19b363b55eadb27c807dfbba6607dc0cc7b312fb39574bdb616f5cc19" "miniconda" verify_py313 ;; * ) { echo From 06fd1ce78890d8f79a0795e0fdfbe9a53916b82e Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 14 May 2026 06:41:47 +0300 Subject: [PATCH 1153/1324] 2.7, 3.4: force C99 standard; 2.7.14-18: force OpenSSL 1 formula (#3448) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC 15+ uses C23 by default (https://www.phoronix.com/news/GCC-15-Default-C23) fixes "error: static declaration of ‘sinpi’ follows non-static declaration" fixes "error: cannot use keyword ‘false’ as enumeration constant" * use OpenSSL 1.0 and 1.1 only from formulae --- plugins/python-build/share/python-build/2.7-dev | 4 +++- plugins/python-build/share/python-build/2.7.0 | 1 + plugins/python-build/share/python-build/2.7.1 | 1 + plugins/python-build/share/python-build/2.7.10 | 1 + plugins/python-build/share/python-build/2.7.11 | 1 + plugins/python-build/share/python-build/2.7.12 | 1 + plugins/python-build/share/python-build/2.7.13 | 1 + plugins/python-build/share/python-build/2.7.14 | 4 +++- plugins/python-build/share/python-build/2.7.15 | 4 +++- plugins/python-build/share/python-build/2.7.16 | 3 +++ plugins/python-build/share/python-build/2.7.17 | 3 +++ plugins/python-build/share/python-build/2.7.18 | 4 +++- plugins/python-build/share/python-build/2.7.2 | 1 + plugins/python-build/share/python-build/2.7.3 | 1 + plugins/python-build/share/python-build/2.7.4 | 1 + plugins/python-build/share/python-build/2.7.5 | 1 + plugins/python-build/share/python-build/2.7.6 | 1 + plugins/python-build/share/python-build/2.7.7 | 1 + plugins/python-build/share/python-build/2.7.8 | 1 + plugins/python-build/share/python-build/2.7.9 | 1 + plugins/python-build/share/python-build/3.4-dev | 1 + plugins/python-build/share/python-build/3.4.0 | 1 + plugins/python-build/share/python-build/3.4.1 | 1 + plugins/python-build/share/python-build/3.4.10 | 1 + plugins/python-build/share/python-build/3.4.2 | 1 + plugins/python-build/share/python-build/3.4.3 | 1 + plugins/python-build/share/python-build/3.4.4 | 1 + plugins/python-build/share/python-build/3.4.5 | 1 + plugins/python-build/share/python-build/3.4.6 | 1 + plugins/python-build/share/python-build/3.4.7 | 1 + plugins/python-build/share/python-build/3.4.8 | 1 + plugins/python-build/share/python-build/3.4.9 | 1 + 32 files changed, 44 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/share/python-build/2.7-dev b/plugins/python-build/share/python-build/2.7-dev index a97818ed76..2edd8d904a 100644 --- a/plugins/python-build/share/python-build/2.7-dev +++ b/plugins/python-build/share/python-build/2.7-dev @@ -1,4 +1,6 @@ -prefer_openssl11 +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@1.0}" +export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl10}" +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 "Python-2.7-dev" "https://github.com/python/cpython" "2.7" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.0 b/plugins/python-build/share/python-build/2.7.0 index a7ca80522c..c20c1c1711 100644 --- a/plugins/python-build/share/python-build/2.7.0 +++ b/plugins/python-build/share/python-build/2.7.0 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7" "https://www.python.org/ftp/python/2.7/Python-2.7.tgz#5670dd6c0c93b0b529781d070852f7b51ce6855615b16afcd318341af2910fb5" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.1 b/plugins/python-build/share/python-build/2.7.1 index aa1de9845e..745371fc9a 100644 --- a/plugins/python-build/share/python-build/2.7.1 +++ b/plugins/python-build/share/python-build/2.7.1 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.1" "https://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz#ca13e7b1860821494f70de017202283ad73b1fb7bd88586401c54ef958226ec8" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.10 b/plugins/python-build/share/python-build/2.7.10 index c6eb3de6a1..3e4a411c6b 100644 --- a/plugins/python-build/share/python-build/2.7.10 +++ b/plugins/python-build/share/python-build/2.7.10 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.11 b/plugins/python-build/share/python-build/2.7.11 index f07099b5e5..666379c444 100644 --- a/plugins/python-build/share/python-build/2.7.11 +++ b/plugins/python-build/share/python-build/2.7.11 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.12 b/plugins/python-build/share/python-build/2.7.12 index 8fc9aed5a4..d66a7aa6ea 100644 --- a/plugins/python-build/share/python-build/2.7.12 +++ b/plugins/python-build/share/python-build/2.7.12 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.13 b/plugins/python-build/share/python-build/2.7.13 index fb455431c3..22ac90ead1 100644 --- a/plugins/python-build/share/python-build/2.7.13 +++ b/plugins/python-build/share/python-build/2.7.13 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.14 b/plugins/python-build/share/python-build/2.7.14 index 52e85da9af..9ca30a3ad1 100644 --- a/plugins/python-build/share/python-build/2.7.14 +++ b/plugins/python-build/share/python-build/2.7.14 @@ -1,4 +1,6 @@ -prefer_openssl11 +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@1.0}" +export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl10}" +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/2.7.15 b/plugins/python-build/share/python-build/2.7.15 index 1cd5e5e5b5..71d13d60e6 100644 --- a/plugins/python-build/share/python-build/2.7.15 +++ b/plugins/python-build/share/python-build/2.7.15 @@ -1,4 +1,6 @@ -prefer_openssl11 +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@1.0}" +export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl10}" +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 diff --git a/plugins/python-build/share/python-build/2.7.16 b/plugins/python-build/share/python-build/2.7.16 index 78c4785a29..691f46ed00 100644 --- a/plugins/python-build/share/python-build/2.7.16 +++ b/plugins/python-build/share/python-build/2.7.16 @@ -1,3 +1,6 @@ +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@1.0}" +export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl10}" +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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 diff --git a/plugins/python-build/share/python-build/2.7.17 b/plugins/python-build/share/python-build/2.7.17 index f8b0641710..67b01935fc 100644 --- a/plugins/python-build/share/python-build/2.7.17 +++ b/plugins/python-build/share/python-build/2.7.17 @@ -1,3 +1,6 @@ +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@1.0}" +export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl10}" +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2q" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2q.tar.gz#5744cfcbcec2b1b48629f7354203bc1e5e9b5466998bbccc5b5fcde3b18eb684" 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 diff --git a/plugins/python-build/share/python-build/2.7.18 b/plugins/python-build/share/python-build/2.7.18 index 6576ca67ec..9ea67421ed 100644 --- a/plugins/python-build/share/python-build/2.7.18 +++ b/plugins/python-build/share/python-build/2.7.18 @@ -1,4 +1,6 @@ -export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="openssl@1.1 openssl@1.0 openssl" +export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@1.0}" +export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl10}" +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" 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 diff --git a/plugins/python-build/share/python-build/2.7.2 b/plugins/python-build/share/python-build/2.7.2 index 5620d4d7a9..60a07e0895 100644 --- a/plugins/python-build/share/python-build/2.7.2 +++ b/plugins/python-build/share/python-build/2.7.2 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.2" "https://www.python.org/ftp/python/2.7.2/Python-2.7.2.tgz#1d54b7096c17902c3f40ffce7e5b84e0072d0144024184fff184a84d563abbb3" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.3 b/plugins/python-build/share/python-build/2.7.3 index c158ee672a..7335cbf89c 100644 --- a/plugins/python-build/share/python-build/2.7.3 +++ b/plugins/python-build/share/python-build/2.7.3 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.3" "https://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz#d4c20f2b5faf95999fd5fecb3f7d32071b0820516224a6d2b72932ab47a1cb8e" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.4 b/plugins/python-build/share/python-build/2.7.4 index 698898d2ad..93e2cf3a9e 100644 --- a/plugins/python-build/share/python-build/2.7.4 +++ b/plugins/python-build/share/python-build/2.7.4 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.4" "https://www.python.org/ftp/python/2.7.4/Python-2.7.4.tgz#98c5eb9c8e65effcc0122112ba17a0bce880aa23ecb560af56b55eb55632b81a" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.5 b/plugins/python-build/share/python-build/2.7.5 index 4c195479c1..5f3a2a15c3 100644 --- a/plugins/python-build/share/python-build/2.7.5 +++ b/plugins/python-build/share/python-build/2.7.5 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.5" "https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz#8e1b5fa87b91835afb376a9c0d319d41feca07ffebc0288d97ab08d64f48afbf" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.6 b/plugins/python-build/share/python-build/2.7.6 index 76bb57300a..2bef27f2c9 100644 --- a/plugins/python-build/share/python-build/2.7.6 +++ b/plugins/python-build/share/python-build/2.7.6 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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_package "Python-2.7.6" "https://www.python.org/ftp/python/2.7.6/Python-2.7.6.tgz#99c6860b70977befa1590029fae092ddb18db1d69ae67e8b9385b66ed104ba58" standard verify_py27 copy_python_gdb ensurepip diff --git a/plugins/python-build/share/python-build/2.7.7 b/plugins/python-build/share/python-build/2.7.7 index 337ba8d91b..b1f1a02798 100644 --- a/plugins/python-build/share/python-build/2.7.7 +++ b/plugins/python-build/share/python-build/2.7.7 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.8 b/plugins/python-build/share/python-build/2.7.8 index 7d759800f6..9e30996f53 100644 --- a/plugins/python-build/share/python-build/2.7.8 +++ b/plugins/python-build/share/python-build/2.7.8 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/2.7.9 b/plugins/python-build/share/python-build/2.7.9 index 2ba752ff4c..0bbea6c4a6 100644 --- a/plugins/python-build/share/python-build/2.7.9 +++ b/plugins/python-build/share/python-build/2.7.9 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4-dev b/plugins/python-build/share/python-build/3.4-dev index 1965cc26bf..d8869031a5 100644 --- a/plugins/python-build/share/python-build/3.4-dev +++ b/plugins/python-build/share/python-build/3.4-dev @@ -1,4 +1,5 @@ prefer_openssl11 +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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 "Python-3.4-dev" "https://github.com/python/cpython" "3.4" standard verify_py34 ensurepip diff --git a/plugins/python-build/share/python-build/3.4.0 b/plugins/python-build/share/python-build/3.4.0 index 64efa3e314..921b0dc8d1 100644 --- a/plugins/python-build/share/python-build/3.4.0 +++ b/plugins/python-build/share/python-build/3.4.0 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.1 b/plugins/python-build/share/python-build/3.4.1 index e69c40a155..bf5d4f9cdf 100644 --- a/plugins/python-build/share/python-build/3.4.1 +++ b/plugins/python-build/share/python-build/3.4.1 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.10 b/plugins/python-build/share/python-build/3.4.10 index 4ee2a250aa..775e5450cf 100644 --- a/plugins/python-build/share/python-build/3.4.10 +++ b/plugins/python-build/share/python-build/3.4.10 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 has_tar_xz_support \ diff --git a/plugins/python-build/share/python-build/3.4.2 b/plugins/python-build/share/python-build/3.4.2 index c02ce30746..235fefd3cf 100644 --- a/plugins/python-build/share/python-build/3.4.2 +++ b/plugins/python-build/share/python-build/3.4.2 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.3 b/plugins/python-build/share/python-build/3.4.3 index 138b052889..c9d83bc0b3 100644 --- a/plugins/python-build/share/python-build/3.4.3 +++ b/plugins/python-build/share/python-build/3.4.3 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.4 b/plugins/python-build/share/python-build/3.4.4 index 2a814cea48..5a625fffd9 100644 --- a/plugins/python-build/share/python-build/3.4.4 +++ b/plugins/python-build/share/python-build/3.4.4 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.5 b/plugins/python-build/share/python-build/3.4.5 index 8d887ad2a6..8bf5486edb 100644 --- a/plugins/python-build/share/python-build/3.4.5 +++ b/plugins/python-build/share/python-build/3.4.5 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.6 b/plugins/python-build/share/python-build/3.4.6 index 5c5c3370a6..0b0cd3b139 100644 --- a/plugins/python-build/share/python-build/3.4.6 +++ b/plugins/python-build/share/python-build/3.4.6 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.7 b/plugins/python-build/share/python-build/3.4.7 index 42032cc953..ffbdb4dc2b 100644 --- a/plugins/python-build/share/python-build/3.4.7 +++ b/plugins/python-build/share/python-build/3.4.7 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.8 b/plugins/python-build/share/python-build/3.4.8 index 69b69c3fbc..058856432d 100644 --- a/plugins/python-build/share/python-build/3.4.8 +++ b/plugins/python-build/share/python-build/3.4.8 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 diff --git a/plugins/python-build/share/python-build/3.4.9 b/plugins/python-build/share/python-build/3.4.9 index 1718c73b70..618c7c8866 100644 --- a/plugins/python-build/share/python-build/3.4.9 +++ b/plugins/python-build/share/python-build/3.4.9 @@ -1,3 +1,4 @@ +export PYTHON_CFLAGS="${PYTHON_CFLAGS:+$PYTHON_CFLAGS }-std=c99" install_package "openssl-1.0.2k" "https://www.openssl.org/source/old/1.0.2/openssl-1.0.2k.tar.gz#6b3977c61f2aedf0f96367dcfb5c6e578cf37e7b8d913b4ecb6643c3cb88d8c0" 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 From 70f096a95c3bcc3fc178a9def668e18b847adffe Mon Sep 17 00:00:00 2001 From: native-api Date: Sun, 17 May 2026 09:38:23 +0300 Subject: [PATCH 1154/1324] rehash: detect and remove a stale lockfile (#3450) fixes stalling for 60s and failing if some past fault has resulting in a stale lockfile being present --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- libexec/pyenv-rehash | 12 +++++++----- test/rehash.bats | 12 ++++++++++++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 253ab68afc..2541310015 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -2,7 +2,7 @@ # Summary: Rehash pyenv shims (run this after installing executables) set -e -[ -n "$PYENV_DEBUG" ] && set -x +[[ -n "$PYENV_DEBUG" ]] && set -x SHIM_PATH="${PYENV_ROOT}/shims" PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim" @@ -15,13 +15,15 @@ declare last_acquire_error acquire_lock() { # Ensure only one instance of pyenv-rehash is running at a time by # setting the shell's `noclobber` option and attempting to write to - # the prototype shim file. If the file already exists, print a warning - # to stderr and exit with a non-zero status. + # the prototype shim file. local ret set -o noclobber - last_acquire_error="$( { ( echo -n > "$PROTOTYPE_SHIM_PATH"; ) 2>&1 1>&3 3>&1-; } 3>&1)" || ret=1 + # Assuming an old lockfile is stale + # Unknown why this happens for some users but this at least unblocks them + last_acquire_error="$( { ( echo -n > "$PROTOTYPE_SHIM_PATH"; ) 2>&1 1>&3 3>&1-; } 3>&1)" \ + || { find "$PROTOTYPE_SHIM_PATH" -mmin +10 -exec rm -f {} \; ; ret=1; } set +o noclobber - [ -z "${ret}" ] + [[ -z "${ret}" ]] } remove_prototype_shim() { diff --git a/test/rehash.bats b/test/rehash.bats index e8edf6759f..779160057c 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -38,6 +38,18 @@ pyenv: cannot rehash: couldn't acquire lock ${PYENV_ROOT}/shims/.pyenv-shim for assert_success } +@test "stale lockfile is removed" { + mkdir -p "${PYENV_ROOT}/shims" + #GNU and BSD `date` support generating relative dates via different syntax + # but BusyBox `date` used in Bash Docker images doesn't + touch -t 200001010000.00 "${PYENV_ROOT}/shims/.pyenv-shim" + run pyenv-rehash + assert_success "" + assert [ ! -e "${PYENV_ROOT}/shims/.pyenv-shim" ] +} + + + @test "creates shims" { create_alt_executable_in_version "2.7" "python" create_alt_executable_in_version "2.7" "fab" From 4f47143108e918071adc29107c1676e8fff0197e Mon Sep 17 00:00:00 2001 From: Michael Simacek Date: Fri, 22 May 2026 08:35:26 +0200 Subject: [PATCH 1155/1324] Add graalpy-25.0.3 --- .../share/python-build/graalpy-25.0.3 | 61 +++++++++++++++++++ .../python-build/graalpy-community-25.0.3 | 51 ++++++++++++++++ 2 files changed, 112 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy-25.0.3 create mode 100644 plugins/python-build/share/python-build/graalpy-community-25.0.3 diff --git a/plugins/python-build/share/python-build/graalpy-25.0.3 b/plugins/python-build/share/python-build/graalpy-25.0.3 new file mode 100644 index 0000000000..80c57deb19 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-25.0.3 @@ -0,0 +1,61 @@ +# Copyright (c) 2026, 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='25.0.3' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="c351b503d212519ad5e7e835fd9eb56b557ca9d5b6ef59e32b40435603f90bf8" + ;; +"linux-aarch64" ) + checksum="f889a02425b0b55a0f070d63324f3d08e0975ea0b33aa69041c14418cf6cdeec" + ;; +"macos-aarch64" ) + checksum="387d9f5b376860842bea4d55aae5820974f3f3b68fc36c77ae863a061a888857" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy-community-25.0.3 b/plugins/python-build/share/python-build/graalpy-community-25.0.3 new file mode 100644 index 0000000000..2705d8eecc --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy-community-25.0.3 @@ -0,0 +1,51 @@ +# Copyright (c) 2026, 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='25.0.3' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="e27fb0a39e687713fd23e096725b858d64e26459be52f6a7d2305e2e666d49de" + ;; +"linux-aarch64" ) + checksum="1e077318fe2f525f2c6d423548d781bffd4fd01bbf51eccdaa33771e843a0d4f" + ;; +"macos-aarch64" ) + checksum="2054e717d51facd60fc9f280492c0596eaca86c23731dcb156fef89975f2d00a" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From e52da606ff38b573879db16ca4096ec8a911d8f0 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 22 May 2026 09:48:52 +0300 Subject: [PATCH 1156/1324] CI: modified_scripts_build : fix GraalPy version detection --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 5faf172d48..5233beec05 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -56,7 +56,7 @@ jobs: if name == 'anaconda3' and version >= packaging.version.Version('2025.12'): result.append({'os':'macos-15-intel','python-version':line}) - if m:=re.match(r'graalpy-(community-)?-(\d+\.\d+.\d+)', line): + if m:=re.match(r'graalpy-(community-)?(\d+\.\d+.\d+)', line): version = packaging.version.Version(m.group(2)) # GraalPy dropped MacOS x64 support From 9ea5bd30056061a34662eec30ad677d2d7f7f6c7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 28 May 2026 14:22:17 +0300 Subject: [PATCH 1157/1324] 3.11.0+: Use the `--with-openssl-rpath' Configure option The options is available since 3.10.0+ (https://github.com/python/cpython/pull/24820) but has no effect until 3.11.0 (cpython b9e9292d75fdea621e05e39b8629e6935d282d0d) and broken in MacOS until 3.12.2 (cpython cc13eabc7ce08accf49656e258ba500f74a1dae8), we add downstream patches to fix that except for 3.11-dev where we disabled it --- .github/workflows/macos_build.yml | 24 +++---- .github/workflows/modified_scripts_build.yml | 4 +- plugins/python-build/bin/python-build | 9 +++ .../python-build/share/python-build/3.11.0 | 1 + .../python-build/share/python-build/3.11.1 | 1 + .../python-build/share/python-build/3.11.10 | 1 + .../python-build/share/python-build/3.11.11 | 1 + .../python-build/share/python-build/3.11.12 | 1 + .../python-build/share/python-build/3.11.13 | 1 + .../python-build/share/python-build/3.11.14 | 1 + .../python-build/share/python-build/3.11.15 | 1 + .../python-build/share/python-build/3.11.2 | 1 + .../python-build/share/python-build/3.11.3 | 1 + .../python-build/share/python-build/3.11.4 | 1 + .../python-build/share/python-build/3.11.5 | 1 + .../python-build/share/python-build/3.11.6 | 1 + .../python-build/share/python-build/3.11.7 | 1 + .../python-build/share/python-build/3.11.8 | 1 + .../python-build/share/python-build/3.11.9 | 1 + .../python-build/share/python-build/3.12-dev | 1 + .../python-build/share/python-build/3.12.0 | 1 + .../python-build/share/python-build/3.12.1 | 1 + .../python-build/share/python-build/3.12.10 | 1 + .../python-build/share/python-build/3.12.11 | 1 + .../python-build/share/python-build/3.12.12 | 1 + .../python-build/share/python-build/3.12.13 | 1 + .../python-build/share/python-build/3.12.2 | 1 + .../python-build/share/python-build/3.12.3 | 1 + .../python-build/share/python-build/3.12.4 | 1 + .../python-build/share/python-build/3.12.5 | 1 + .../python-build/share/python-build/3.12.6 | 1 + .../python-build/share/python-build/3.12.7 | 1 + .../python-build/share/python-build/3.12.8 | 1 + .../python-build/share/python-build/3.12.9 | 1 + .../python-build/share/python-build/3.13-dev | 1 + .../python-build/share/python-build/3.13.0 | 1 + .../python-build/share/python-build/3.13.1 | 1 + .../python-build/share/python-build/3.13.10 | 1 + .../python-build/share/python-build/3.13.11 | 1 + .../python-build/share/python-build/3.13.12 | 1 + .../python-build/share/python-build/3.13.13 | 1 + .../python-build/share/python-build/3.13.2 | 1 + .../python-build/share/python-build/3.13.3 | 1 + .../python-build/share/python-build/3.13.4 | 1 + .../python-build/share/python-build/3.13.5 | 1 + .../python-build/share/python-build/3.13.6 | 1 + .../python-build/share/python-build/3.13.7 | 1 + .../python-build/share/python-build/3.13.8 | 1 + .../python-build/share/python-build/3.13.9 | 1 + .../python-build/share/python-build/3.14-dev | 1 + .../python-build/share/python-build/3.14.0 | 1 + .../python-build/share/python-build/3.14.1 | 1 + .../python-build/share/python-build/3.14.2 | 1 + .../python-build/share/python-build/3.14.3 | 1 + .../python-build/share/python-build/3.14.4 | 1 + .../python-build/share/python-build/3.14.5 | 1 + .../python-build/share/python-build/3.15-dev | 1 + .../python-build/share/python-build/3.15.0b1 | 1 + .../python-build/share/python-build/3.16-dev | 2 +- ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ 77 files changed, 1232 insertions(+), 14 deletions(-) create mode 100644 plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 7223278cd3..5c860d1d68 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -20,18 +20,20 @@ jobs: - uses: actions/checkout@v6 - run: | brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd - # https://github.com/pyenv/pyenv#installation - - run: pwd - - env: - PYENV_ROOT: /Users/runner/work/pyenv/pyenv - run: | - echo $PYENV_ROOT + - run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv --debug install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash - - run: python --version - - run: python -m pip --version + - run: | + #build + pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? + if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi + pyenv global ${{ matrix.python-version }} + - run: | + #print version + python --version + python -m pip --version - shell: python # Prove that actual Python == expected Python env: EXPECTED_PYTHON: ${{ matrix.python-version }} diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 5faf172d48..72534aafc1 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -99,7 +99,7 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | #prerequisites - brew install openssl readline sqlite3 xz zlib + brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV @@ -161,7 +161,7 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | #prerequisites - brew install sqlite3 xz zlib + brew install sqlite3 xz tcl-tk@8 libb2 zstd "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index caa3e7689c..f937ec5a55 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1729,6 +1729,15 @@ use_homebrew_openssl() { export CPPFLAGS="-I$ssldir/include ${CPPFLAGS:+ $CPPFLAGS}" export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}" fi + # 3.10.0+ (https://github.com/python/cpython/pull/24820) + # but has no effect until 3.11.0 (b9e9292d75fdea621e05e39b8629e6935d282d0d) + # and broken in MacOS until 3.12.2 (cc13eabc7ce08accf49656e258ba500f74a1dae8) + if [[ -n $PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH ]]; then + package_option python configure --with-openssl-rpath="${ssldir}/lib" + else + prepend_ldflags_libs "-Wl,-rpath,${ssldir}/lib" + fi + export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}" lock_in homebrew return 0 diff --git a/plugins/python-build/share/python-build/3.11.0 b/plugins/python-build/share/python-build/3.11.0 index 1dc73d5910..7a6f906338 100644 --- a/plugins/python-build/share/python-build/3.11.0 +++ b/plugins/python-build/share/python-build/3.11.0 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-1.1.1q" "https://www.openssl.org/source/openssl-1.1.1q.tar.gz#d7939ce614029cdff0b6c20f0e2e5703158a489a72b2507b8bd51bf8c8fd10ca" 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 diff --git a/plugins/python-build/share/python-build/3.11.1 b/plugins/python-build/share/python-build/3.11.1 index 2ff94135f8..43933583d6 100644 --- a/plugins/python-build/share/python-build/3.11.1 +++ b/plugins/python-build/share/python-build/3.11.1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.10 b/plugins/python-build/share/python-build/3.11.10 index ae40b14f93..9ebab480b6 100644 --- a/plugins/python-build/share/python-build/3.11.10 +++ b/plugins/python-build/share/python-build/3.11.10 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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 diff --git a/plugins/python-build/share/python-build/3.11.11 b/plugins/python-build/share/python-build/3.11.11 index e736fe57f6..27b7b41882 100644 --- a/plugins/python-build/share/python-build/3.11.11 +++ b/plugins/python-build/share/python-build/3.11.11 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.2" "https://openssl.org/source/old/3.2/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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 diff --git a/plugins/python-build/share/python-build/3.11.12 b/plugins/python-build/share/python-build/3.11.12 index ca860cc946..4fa2f999a1 100644 --- a/plugins/python-build/share/python-build/3.11.12 +++ b/plugins/python-build/share/python-build/3.11.12 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" 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 diff --git a/plugins/python-build/share/python-build/3.11.13 b/plugins/python-build/share/python-build/3.11.13 index f3c344b773..431d4a779e 100644 --- a/plugins/python-build/share/python-build/3.11.13 +++ b/plugins/python-build/share/python-build/3.11.13 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" 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 diff --git a/plugins/python-build/share/python-build/3.11.14 b/plugins/python-build/share/python-build/3.11.14 index 9f86213666..cbc48e60a6 100644 --- a/plugins/python-build/share/python-build/3.11.14 +++ b/plugins/python-build/share/python-build/3.11.14 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.4" "https://github.com/openssl/openssl/releases/download/openssl-3.2.4/openssl-3.2.4.tar.gz#b23ad7fd9f73e43ad1767e636040e88ba7c9e5775bfa5618436a0dd2c17c3716" 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 diff --git a/plugins/python-build/share/python-build/3.11.15 b/plugins/python-build/share/python-build/3.11.15 index 9fd16e5383..e1966bf3b7 100644 --- a/plugins/python-build/share/python-build/3.11.15 +++ b/plugins/python-build/share/python-build/3.11.15 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.11.2 b/plugins/python-build/share/python-build/3.11.2 index 20122d1771..fd61e701ca 100644 --- a/plugins/python-build/share/python-build/3.11.2 +++ b/plugins/python-build/share/python-build/3.11.2 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.3 b/plugins/python-build/share/python-build/3.11.3 index 4b1ab6f5b6..94041e7caf 100644 --- a/plugins/python-build/share/python-build/3.11.3 +++ b/plugins/python-build/share/python-build/3.11.3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.4 b/plugins/python-build/share/python-build/3.11.4 index b6819e943b..16bad8990a 100644 --- a/plugins/python-build/share/python-build/3.11.4 +++ b/plugins/python-build/share/python-build/3.11.4 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.11.5 b/plugins/python-build/share/python-build/3.11.5 index 5e822dfe29..d1335ee85c 100644 --- a/plugins/python-build/share/python-build/3.11.5 +++ b/plugins/python-build/share/python-build/3.11.5 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.0" "https://www.openssl.org/source/openssl-3.2.0.tar.gz#14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" 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 diff --git a/plugins/python-build/share/python-build/3.11.6 b/plugins/python-build/share/python-build/3.11.6 index efcaeecde2..11cdeaef2f 100644 --- a/plugins/python-build/share/python-build/3.11.6 +++ b/plugins/python-build/share/python-build/3.11.6 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.0" "https://www.openssl.org/source/openssl-3.2.0.tar.gz#14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" 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 diff --git a/plugins/python-build/share/python-build/3.11.7 b/plugins/python-build/share/python-build/3.11.7 index 2f19ba8e5f..330762ddc7 100644 --- a/plugins/python-build/share/python-build/3.11.7 +++ b/plugins/python-build/share/python-build/3.11.7 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.0" "https://www.openssl.org/source/openssl-3.2.0.tar.gz#14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e" 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 diff --git a/plugins/python-build/share/python-build/3.11.8 b/plugins/python-build/share/python-build/3.11.8 index b8ce8de771..495be9d97b 100644 --- a/plugins/python-build/share/python-build/3.11.8 +++ b/plugins/python-build/share/python-build/3.11.8 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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 diff --git a/plugins/python-build/share/python-build/3.11.9 b/plugins/python-build/share/python-build/3.11.9 index 96f734c8a9..ebf317bf80 100644 --- a/plugins/python-build/share/python-build/3.11.9 +++ b/plugins/python-build/share/python-build/3.11.9 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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 diff --git a/plugins/python-build/share/python-build/3.12-dev b/plugins/python-build/share/python-build/3.12-dev index 69ca817b56..27343ab40f 100644 --- a/plugins/python-build/share/python-build/3.12-dev +++ b/plugins/python-build/share/python-build/3.12-dev @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=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 diff --git a/plugins/python-build/share/python-build/3.12.0 b/plugins/python-build/share/python-build/3.12.0 index 12ed1634ab..7aaa94c278 100644 --- a/plugins/python-build/share/python-build/3.12.0 +++ b/plugins/python-build/share/python-build/3.12.0 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.12.1 b/plugins/python-build/share/python-build/3.12.1 index 907bfaf351..2664f849a9 100644 --- a/plugins/python-build/share/python-build/3.12.1 +++ b/plugins/python-build/share/python-build/3.12.1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=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 diff --git a/plugins/python-build/share/python-build/3.12.10 b/plugins/python-build/share/python-build/3.12.10 index 00ed1e90a0..5f52f4e469 100644 --- a/plugins/python-build/share/python-build/3.12.10 +++ b/plugins/python-build/share/python-build/3.12.10 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.3" "https://github.com/openssl/openssl/releases/download/openssl-3.3.3/openssl-3.3.3.tar.gz#712590fd20aaa60ec75d778fe5b810d6b829ca7fb1e530577917a131f9105539" 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 diff --git a/plugins/python-build/share/python-build/3.12.11 b/plugins/python-build/share/python-build/3.12.11 index ee1c266890..efb0f24604 100644 --- a/plugins/python-build/share/python-build/3.12.11 +++ b/plugins/python-build/share/python-build/3.12.11 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.12.12 b/plugins/python-build/share/python-build/3.12.12 index bdc66a1803..275f19db05 100644 --- a/plugins/python-build/share/python-build/3.12.12 +++ b/plugins/python-build/share/python-build/3.12.12 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.12.13 b/plugins/python-build/share/python-build/3.12.13 index c3f37cb73a..5b67984999 100644 --- a/plugins/python-build/share/python-build/3.12.13 +++ b/plugins/python-build/share/python-build/3.12.13 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.12.2 b/plugins/python-build/share/python-build/3.12.2 index cd7fbe7ed0..cada3f23d5 100644 --- a/plugins/python-build/share/python-build/3.12.2 +++ b/plugins/python-build/share/python-build/3.12.2 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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 diff --git a/plugins/python-build/share/python-build/3.12.3 b/plugins/python-build/share/python-build/3.12.3 index 484d8b4d12..a655b70aa5 100644 --- a/plugins/python-build/share/python-build/3.12.3 +++ b/plugins/python-build/share/python-build/3.12.3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.1" "https://www.openssl.org/source/openssl-3.2.1.tar.gz#83c7329fe52c850677d75e5d0b0ca245309b97e8ecbcfdc1dfdc4ab9fac35b39" 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 diff --git a/plugins/python-build/share/python-build/3.12.4 b/plugins/python-build/share/python-build/3.12.4 index def8ffb29c..beb5e49d79 100644 --- a/plugins/python-build/share/python-build/3.12.4 +++ b/plugins/python-build/share/python-build/3.12.4 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.2.2" "https://www.openssl.org/source/openssl-3.2.2.tar.gz#197149c18d9e9f292c43f0400acaba12e5f52cacfe050f3d199277ea738ec2e7" 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 diff --git a/plugins/python-build/share/python-build/3.12.5 b/plugins/python-build/share/python-build/3.12.5 index 4bc86ad7d2..a61472feaa 100644 --- a/plugins/python-build/share/python-build/3.12.5 +++ b/plugins/python-build/share/python-build/3.12.5 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.1" "https://www.openssl.org/source/openssl-3.3.1.tar.gz#777cd596284c883375a2a7a11bf5d2786fc5413255efab20c50d6ffe6d020b7e" 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 diff --git a/plugins/python-build/share/python-build/3.12.6 b/plugins/python-build/share/python-build/3.12.6 index 28742012e3..7bfda09cc7 100644 --- a/plugins/python-build/share/python-build/3.12.6 +++ b/plugins/python-build/share/python-build/3.12.6 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.12.7 b/plugins/python-build/share/python-build/3.12.7 index 49d5e7db11..89c502f004 100644 --- a/plugins/python-build/share/python-build/3.12.7 +++ b/plugins/python-build/share/python-build/3.12.7 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.12.8 b/plugins/python-build/share/python-build/3.12.8 index 42634f1a61..df59ec3af8 100644 --- a/plugins/python-build/share/python-build/3.12.8 +++ b/plugins/python-build/share/python-build/3.12.8 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.12.9 b/plugins/python-build/share/python-build/3.12.9 index c03fe91939..fc1c5992ba 100644 --- a/plugins/python-build/share/python-build/3.12.9 +++ b/plugins/python-build/share/python-build/3.12.9 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.13-dev b/plugins/python-build/share/python-build/3.13-dev index 4beb508f26..4754ab5e8b 100644 --- a/plugins/python-build/share/python-build/3.13-dev +++ b/plugins/python-build/share/python-build/3.13-dev @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 diff --git a/plugins/python-build/share/python-build/3.13.0 b/plugins/python-build/share/python-build/3.13.0 index e79fafa732..b526e49384 100644 --- a/plugins/python-build/share/python-build/3.13.0 +++ b/plugins/python-build/share/python-build/3.13.0 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.3.2" "https://github.com/openssl/openssl/releases/download/openssl-3.3.2/openssl-3.3.2.tar.gz#2e8a40b01979afe8be0bbfb3de5dc1c6709fedb46d6c89c10da114ab5fc3d281" 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 diff --git a/plugins/python-build/share/python-build/3.13.1 b/plugins/python-build/share/python-build/3.13.1 index a002addc61..c5b335cf44 100644 --- a/plugins/python-build/share/python-build/3.13.1 +++ b/plugins/python-build/share/python-build/3.13.1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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 diff --git a/plugins/python-build/share/python-build/3.13.10 b/plugins/python-build/share/python-build/3.13.10 index 7630601455..b08304dee3 100644 --- a/plugins/python-build/share/python-build/3.13.10 +++ b/plugins/python-build/share/python-build/3.13.10 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.11 b/plugins/python-build/share/python-build/3.13.11 index debfba0db3..54ef5975b5 100644 --- a/plugins/python-build/share/python-build/3.13.11 +++ b/plugins/python-build/share/python-build/3.13.11 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.12 b/plugins/python-build/share/python-build/3.13.12 index 7b4723c315..2155587511 100644 --- a/plugins/python-build/share/python-build/3.13.12 +++ b/plugins/python-build/share/python-build/3.13.12 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.13 b/plugins/python-build/share/python-build/3.13.13 index 7e4a931da7..44dbdb6209 100644 --- a/plugins/python-build/share/python-build/3.13.13 +++ b/plugins/python-build/share/python-build/3.13.13 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.2 b/plugins/python-build/share/python-build/3.13.2 index 9d8d205f19..8a79aacafc 100644 --- a/plugins/python-build/share/python-build/3.13.2 +++ b/plugins/python-build/share/python-build/3.13.2 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27709b7294bf" 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 diff --git a/plugins/python-build/share/python-build/3.13.3 b/plugins/python-build/share/python-build/3.13.3 index d37c1ff151..60321abb58 100644 --- a/plugins/python-build/share/python-build/3.13.3 +++ b/plugins/python-build/share/python-build/3.13.3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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 diff --git a/plugins/python-build/share/python-build/3.13.4 b/plugins/python-build/share/python-build/3.13.4 index 58aecf3c63..828f764d7c 100644 --- a/plugins/python-build/share/python-build/3.13.4 +++ b/plugins/python-build/share/python-build/3.13.4 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.4.1" "https://github.com/openssl/openssl/releases/download/openssl-3.4.1/openssl-3.4.1.tar.gz#002a2d6b30b58bf4bea46c43bdd96365aaf8daa6c428782aa4feee06da197df3" 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 diff --git a/plugins/python-build/share/python-build/3.13.5 b/plugins/python-build/share/python-build/3.13.5 index 1eba07fc9e..98a0059874 100644 --- a/plugins/python-build/share/python-build/3.13.5 +++ b/plugins/python-build/share/python-build/3.13.5 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.1" "https://github.com/openssl/openssl/releases/download/openssl-3.5.1/openssl-3.5.1.tar.gz#529043b15cffa5f36077a4d0af83f3de399807181d607441d734196d889b641f" 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 diff --git a/plugins/python-build/share/python-build/3.13.6 b/plugins/python-build/share/python-build/3.13.6 index 580cda50ae..50a477a366 100644 --- a/plugins/python-build/share/python-build/3.13.6 +++ b/plugins/python-build/share/python-build/3.13.6 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.7 b/plugins/python-build/share/python-build/3.13.7 index 38165c17f7..8ccf924547 100644 --- a/plugins/python-build/share/python-build/3.13.7 +++ b/plugins/python-build/share/python-build/3.13.7 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.5.2" "https://github.com/openssl/openssl/releases/download/openssl-3.5.2/openssl-3.5.2.tar.gz#c53a47e5e441c930c3928cf7bf6fb00e5d129b630e0aa873b08258656e7345ec" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.8 b/plugins/python-build/share/python-build/3.13.8 index f0cdd44fb0..f979430ae6 100644 --- a/plugins/python-build/share/python-build/3.13.8 +++ b/plugins/python-build/share/python-build/3.13.8 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.13.9 b/plugins/python-build/share/python-build/3.13.9 index f9b3436c7e..0b4503c458 100644 --- a/plugins/python-build/share/python-build/3.13.9 +++ b/plugins/python-build/share/python-build/3.13.9 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.14-dev b/plugins/python-build/share/python-build/3.14-dev index 6fbd840348..17285a639d 100644 --- a/plugins/python-build/share/python-build/3.14-dev +++ b/plugins/python-build/share/python-build/3.14-dev @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 diff --git a/plugins/python-build/share/python-build/3.14.0 b/plugins/python-build/share/python-build/3.14.0 index 8780899cc0..7cf3e601fc 100644 --- a/plugins/python-build/share/python-build/3.14.0 +++ b/plugins/python-build/share/python-build/3.14.0 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.14.1 b/plugins/python-build/share/python-build/3.14.1 index 37f2e8c765..f485b49924 100644 --- a/plugins/python-build/share/python-build/3.14.1 +++ b/plugins/python-build/share/python-build/3.14.1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.14.2 b/plugins/python-build/share/python-build/3.14.2 index 39a6379f9e..75d58a9112 100644 --- a/plugins/python-build/share/python-build/3.14.2 +++ b/plugins/python-build/share/python-build/3.14.2 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "http://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.14.3 b/plugins/python-build/share/python-build/3.14.3 index b62e224750..b50af30f45 100644 --- a/plugins/python-build/share/python-build/3.14.3 +++ b/plugins/python-build/share/python-build/3.14.3 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.1" "https://github.com/openssl/openssl/releases/download/openssl-3.6.1/openssl-3.6.1.tar.gz#b1bfedcd5b289ff22aee87c9d600f515767ebf45f77168cb6d64f231f518a82e" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.14.4 b/plugins/python-build/share/python-build/3.14.4 index b0f1e5978a..b14b009fc6 100644 --- a/plugins/python-build/share/python-build/3.14.4 +++ b/plugins/python-build/share/python-build/3.14.4 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.14.5 b/plugins/python-build/share/python-build/3.14.5 index 7d9342339e..e8e06e07bc 100644 --- a/plugins/python-build/share/python-build/3.14.5 +++ b/plugins/python-build/share/python-build/3.14.5 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.15-dev b/plugins/python-build/share/python-build/3.15-dev index 589139172f..6bc0f50cb6 100644 --- a/plugins/python-build/share/python-build/3.15-dev +++ b/plugins/python-build/share/python-build/3.15-dev @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 diff --git a/plugins/python-build/share/python-build/3.15.0b1 b/plugins/python-build/share/python-build/3.15.0b1 index 24ab70cb5b..13e6cd8a8f 100644 --- a/plugins/python-build/share/python-build/3.15.0b1 +++ b/plugins/python-build/share/python-build/3.15.0b1 @@ -1,5 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline diff --git a/plugins/python-build/share/python-build/3.16-dev b/plugins/python-build/share/python-build/3.16-dev index a7c6cc7e3c..b19fffe603 100644 --- a/plugins/python-build/share/python-build/3.16-dev +++ b/plugins/python-build/share/python-build/3.16-dev @@ -1,6 +1,6 @@ prefer_openssl3 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 export PYTHON_BUILD_CONFIGURE_WITH_DSYMUTIL=1 install_package "openssl-3.6.0" "https://github.com/openssl/openssl/releases/download/openssl-3.6.0/openssl-3.6.0.tar.gz#b6a5f44b7eb69e3fa35dbf15524405b44837a481d43d81daddde3ff21fcbb8e9" mac_openssl --if has_broken_mac_openssl diff --git a/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0001-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + From 84414c01211522353f8fb553bf35e7edba1202d7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 29 May 2026 07:43:45 +0300 Subject: [PATCH 1158/1324] 3.11.5: Add missing patch --- ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch diff --git a/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + From 08a015100e306fcc23d44a2c80fe13714c67a31d Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 30 May 2026 12:47:16 +0300 Subject: [PATCH 1159/1324] python_build: Make `verify_python` verify `pythonX.Y' suffix (#3459) * Fix erroneous use in tests that didn't show until now --- plugins/python-build/bin/python-build | 6 ++++-- plugins/python-build/test/pyenv_ext.bats | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f937ec5a55..43b7909bc2 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2101,10 +2101,12 @@ build_package_symlink_version_suffix() { verify_python() { build_package_symlink_version_suffix + + local python_bin="${PYTHON_BIN%/*}/python${1:?}" - if [ ! -x "${PYTHON_BIN}" ]; then + if [ ! -x "${python_bin}" ]; then { colorize 1 "ERROR" - echo ": invalid Python executable: ${PYTHON_BIN}" + echo ": invalid Python executable: ${python_bin}" echo echo "The python-build could not find proper executable of Python after successful build." echo "Please open an issue for future improvements." diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 1134f1634a..aa0bbcb41d 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -233,7 +233,7 @@ OUT chmod +x "${INSTALL_ROOT}/bin/python3.4-config" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition < Date: Sat, 30 May 2026 16:27:10 +0300 Subject: [PATCH 1160/1324] CI: move `no-response` and `add-version` to `ubuntu-slim` Supposedly lightweight tasks, we'll see --- .github/workflows/add_version.yml | 2 +- .github/workflows/no-response.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 23c2b6fd27..5a75ad0e95 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -12,7 +12,7 @@ permissions: jobs: add_cpython: - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: actions/checkout@v6 - uses: actions/setup-python@v6 diff --git a/.github/workflows/no-response.yml b/.github/workflows/no-response.yml index c66e7b0ab5..825dd85f7a 100644 --- a/.github/workflows/no-response.yml +++ b/.github/workflows/no-response.yml @@ -15,7 +15,7 @@ jobs: permissions: issues: write # to update issues (lee-dohm/no-response) - runs-on: ubuntu-latest + runs-on: ubuntu-slim steps: - uses: lee-dohm/no-response@v0.5.0 with: From 7f1139ebe61107b343d86c09bed024c79db09b34 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 30 May 2026 16:36:04 +0300 Subject: [PATCH 1161/1324] Add micropython 1.22.0 to 1.28.0; add downstream patches to fix compilation errors (#3460) --- .../share/python-build/micropython-1.22.0 | 1 + .../share/python-build/micropython-1.23.0 | 1 + .../share/python-build/micropython-1.24.0 | 1 + .../share/python-build/micropython-1.25.0 | 1 + .../share/python-build/micropython-1.26.0 | 1 + .../share/python-build/micropython-1.27.0 | 1 + .../share/python-build/micropython-1.28.0 | 1 + ...rn-about-a-GNU-extension-for-static-.patch | 34 ++++ ...mb-Refactor-string-literal-as-array-.patch | 158 ++++++++++++++++++ ...s-Refactor-string-literal-as-array-i.patch | 46 +++++ ...s-the-new-Wunterminated-string-liter.patch | 56 +++++++ ...efs-Fix-string-initializer-in-lfs1.c.patch | 34 ++++ ...rn-about-a-GNU-extension-for-static-.patch | 34 ++++ ...mb-Refactor-string-literal-as-array-.patch | 158 ++++++++++++++++++ ...s-Refactor-string-literal-as-array-i.patch | 46 +++++ ...xtensa-Simplify-register-name-lookup.patch | 82 +++++++++ ...efs-Fix-string-initializer-in-lfs1.c.patch | 34 ++++ ...rn-about-a-GNU-extension-for-static-.patch | 34 ++++ ...mb-Refactor-string-literal-as-array-.patch | 158 ++++++++++++++++++ ...s-Refactor-string-literal-as-array-i.patch | 46 +++++ ...xtensa-Simplify-register-name-lookup.patch | 82 +++++++++ ...efs-Fix-string-initializer-in-lfs1.c.patch | 34 ++++ ...rn-about-a-GNU-extension-for-static-.patch | 34 ++++ ...mb-Refactor-string-literal-as-array-.patch | 158 ++++++++++++++++++ ...s-Refactor-string-literal-as-array-i.patch | 46 +++++ ...efs-Fix-string-initializer-in-lfs1.c.patch | 34 ++++ ...rn-about-a-GNU-extension-for-static-.patch | 34 ++++ 27 files changed, 1349 insertions(+) create mode 100644 plugins/python-build/share/python-build/micropython-1.22.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.23.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.24.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.25.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.26.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.27.0 create mode 100644 plugins/python-build/share/python-build/micropython-1.28.0 create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0004-downstream-Avoids-the-new-Wunterminated-string-liter.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0004-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch create mode 100644 plugins/python-build/share/python-build/patches/micropython-1.26.0/micropython-1.26.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch diff --git a/plugins/python-build/share/python-build/micropython-1.22.0 b/plugins/python-build/share/python-build/micropython-1.22.0 new file mode 100644 index 0000000000..a5e8ee83f6 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.22.0 @@ -0,0 +1 @@ +install_package micropython-1.22.0 https://micropython.org/resources/source/micropython-1.22.0.tar.xz#a042764f0b6f6d92b267454c5bd5afcb83fc3900119f2583672aac571e661924 micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.23.0 b/plugins/python-build/share/python-build/micropython-1.23.0 new file mode 100644 index 0000000000..be84064eb2 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.23.0 @@ -0,0 +1 @@ +install_package micropython-1.23.0 https://micropython.org/resources/source/micropython-1.23.0.tar.xz#0ab283c2fc98d466c1ff26692bee46abaeeab55d488a36fc3cb6372cb8fb390d micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.24.0 b/plugins/python-build/share/python-build/micropython-1.24.0 new file mode 100644 index 0000000000..69b1f60055 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.24.0 @@ -0,0 +1 @@ +install_package micropython-1.24.0 https://micropython.org/resources/source/micropython-1.24.0.tar.xz#cde2a6795280945100089c053ba85f842d85f3038229d743da35a3673bc1786b micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.25.0 b/plugins/python-build/share/python-build/micropython-1.25.0 new file mode 100644 index 0000000000..f2b19b4cac --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.25.0 @@ -0,0 +1 @@ +install_package micropython-1.25.0 https://micropython.org/resources/source/micropython-1.25.0.tar.xz#9fe99ad5808e66bb40d374f5cad187c32c7d1c49cf47f72b38fd453c28c2aebe micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.26.0 b/plugins/python-build/share/python-build/micropython-1.26.0 new file mode 100644 index 0000000000..3e7ef3328c --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.26.0 @@ -0,0 +1 @@ +install_package micropython-1.26.0 https://micropython.org/resources/source/micropython-1.26.0.tar.xz#a1b8e0f6bf7a8a78b55ac865c46c4c45f9623a86a1785d2063ff1cb3b6e661d7 micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.27.0 b/plugins/python-build/share/python-build/micropython-1.27.0 new file mode 100644 index 0000000000..333f2311e1 --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.27.0 @@ -0,0 +1 @@ +install_package micropython-1.27.0 https://micropython.org/resources/source/micropython-1.27.0.tar.xz#9874b20646c3bbe81d524f779a16875e5d088b7065e175ffd2aa2a02f50573c9 micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/micropython-1.28.0 b/plugins/python-build/share/python-build/micropython-1.28.0 new file mode 100644 index 0000000000..041b0695ab --- /dev/null +++ b/plugins/python-build/share/python-build/micropython-1.28.0 @@ -0,0 +1 @@ +install_package micropython-1.28.0 https://micropython.org/resources/source/micropython-1.28.0.tar.xz#4e43c59657b8da33b4bc503509a827cc3ea6cb66c446475c57776cf4467ba215 micropython \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch new file mode 100644 index 0000000000..4dbc8246b9 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch @@ -0,0 +1,34 @@ +From f4fd023eb978b298add7883ab2e8429560ef0b12 Mon Sep 17 00:00:00 2001 +From: Jeff Epler +Date: Sat, 27 Sep 2025 19:29:49 -0500 +Subject: [PATCH 1/5] py/misc: Don't warn about a GNU extension for static + assert macro. + +This warning was enabled by default on clang 17.0.0 on macOS 26. Disable +it, because we want to make these checks at compile-time even if it +requires an extension. + +Fixes issue #18116. + +Signed-off-by: Jeff Epler +--- + py/misc.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/py/misc.h b/py/misc.h +index e19a53572..ba1afbc15 100644 +--- a/py/misc.h ++++ b/py/misc.h +@@ -51,6 +51,9 @@ typedef unsigned int uint; + #define MP_STRINGIFY(x) MP_STRINGIFY_HELPER(x) + + // Static assertion macro ++#if __clang__ ++#pragma GCC diagnostic ignored "-Wgnu-folding-constant" ++#endif + #define MP_STATIC_ASSERT(cond) ((void)sizeof(char[1 - 2 * !(cond)])) + // In C++ things like comparing extern const pointers are not constant-expressions so cannot be used + // in MP_STATIC_ASSERT. Note that not all possible compiler versions will reject this. Some gcc versions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch new file mode 100644 index 0000000000..623890c2ac --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch @@ -0,0 +1,158 @@ +From 67b977ebab060285c20d222d104bb3f3a17656d7 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:36:05 +1000 +Subject: [PATCH 2/5] py/emitinlinethumb: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + py/emitinlinethumb.c | 108 +++++++++++++++++++++---------------------- + 1 file changed, 54 insertions(+), 54 deletions(-) + +diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c +index 29487f104..0b9efa1da 100644 +--- a/py/emitinlinethumb.c ++++ b/py/emitinlinethumb.c +@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg; + byte name[3]; + } reg_name_t; + STATIC const reg_name_t reg_name_table[] = { +- {0, "r0\0"}, +- {1, "r1\0"}, +- {2, "r2\0"}, +- {3, "r3\0"}, +- {4, "r4\0"}, +- {5, "r5\0"}, +- {6, "r6\0"}, +- {7, "r7\0"}, +- {8, "r8\0"}, +- {9, "r9\0"}, +- {10, "r10"}, +- {11, "r11"}, +- {12, "r12"}, +- {13, "r13"}, +- {14, "r14"}, +- {15, "r15"}, +- {10, "sl\0"}, +- {11, "fp\0"}, +- {13, "sp\0"}, +- {14, "lr\0"}, +- {15, "pc\0"}, ++ {0, {'r', '0' }}, ++ {1, {'r', '1' }}, ++ {2, {'r', '2' }}, ++ {3, {'r', '3' }}, ++ {4, {'r', '4' }}, ++ {5, {'r', '5' }}, ++ {6, {'r', '6' }}, ++ {7, {'r', '7' }}, ++ {8, {'r', '8' }}, ++ {9, {'r', '9' }}, ++ {10, {'r', '1', '0' }}, ++ {11, {'r', '1', '1' }}, ++ {12, {'r', '1', '2' }}, ++ {13, {'r', '1', '3' }}, ++ {14, {'r', '1', '4' }}, ++ {15, {'r', '1', '5' }}, ++ {10, {'s', 'l' }}, ++ {11, {'f', 'p' }}, ++ {13, {'s', 'p' }}, ++ {14, {'l', 'r' }}, ++ {15, {'p', 'c' }}, + }; + + #define MAX_SPECIAL_REGISTER_NAME_LENGTH 7 +@@ -368,20 +368,20 @@ typedef struct _cc_name_t { byte cc; + byte name[2]; + } cc_name_t; + STATIC const cc_name_t cc_name_table[] = { +- { ASM_THUMB_CC_EQ, "eq" }, +- { ASM_THUMB_CC_NE, "ne" }, +- { ASM_THUMB_CC_CS, "cs" }, +- { ASM_THUMB_CC_CC, "cc" }, +- { ASM_THUMB_CC_MI, "mi" }, +- { ASM_THUMB_CC_PL, "pl" }, +- { ASM_THUMB_CC_VS, "vs" }, +- { ASM_THUMB_CC_VC, "vc" }, +- { ASM_THUMB_CC_HI, "hi" }, +- { ASM_THUMB_CC_LS, "ls" }, +- { ASM_THUMB_CC_GE, "ge" }, +- { ASM_THUMB_CC_LT, "lt" }, +- { ASM_THUMB_CC_GT, "gt" }, +- { ASM_THUMB_CC_LE, "le" }, ++ { ASM_THUMB_CC_EQ, { 'e', 'q' }}, ++ { ASM_THUMB_CC_NE, { 'n', 'e' }}, ++ { ASM_THUMB_CC_CS, { 'c', 's' }}, ++ { ASM_THUMB_CC_CC, { 'c', 'c' }}, ++ { ASM_THUMB_CC_MI, { 'm', 'i' }}, ++ { ASM_THUMB_CC_PL, { 'p', 'l' }}, ++ { ASM_THUMB_CC_VS, { 'v', 's' }}, ++ { ASM_THUMB_CC_VC, { 'v', 'c' }}, ++ { ASM_THUMB_CC_HI, { 'h', 'i' }}, ++ { ASM_THUMB_CC_LS, { 'l', 's' }}, ++ { ASM_THUMB_CC_GE, { 'g', 'e' }}, ++ { ASM_THUMB_CC_LT, { 'l', 't' }}, ++ { ASM_THUMB_CC_GT, { 'g', 't' }}, ++ { ASM_THUMB_CC_LE, { 'l', 'e' }}, + }; + + typedef struct _format_4_op_t { byte op; +@@ -389,21 +389,21 @@ typedef struct _format_4_op_t { byte op; + } format_4_op_t; + #define X(x) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops + STATIC const format_4_op_t format_4_op_table[] = { +- { X(ASM_THUMB_FORMAT_4_EOR), "eor" }, +- { X(ASM_THUMB_FORMAT_4_LSL), "lsl" }, +- { X(ASM_THUMB_FORMAT_4_LSR), "lsr" }, +- { X(ASM_THUMB_FORMAT_4_ASR), "asr" }, +- { X(ASM_THUMB_FORMAT_4_ADC), "adc" }, +- { X(ASM_THUMB_FORMAT_4_SBC), "sbc" }, +- { X(ASM_THUMB_FORMAT_4_ROR), "ror" }, +- { X(ASM_THUMB_FORMAT_4_TST), "tst" }, +- { X(ASM_THUMB_FORMAT_4_NEG), "neg" }, +- { X(ASM_THUMB_FORMAT_4_CMP), "cmp" }, +- { X(ASM_THUMB_FORMAT_4_CMN), "cmn" }, +- { X(ASM_THUMB_FORMAT_4_ORR), "orr" }, +- { X(ASM_THUMB_FORMAT_4_MUL), "mul" }, +- { X(ASM_THUMB_FORMAT_4_BIC), "bic" }, +- { X(ASM_THUMB_FORMAT_4_MVN), "mvn" }, ++ { X(ASM_THUMB_FORMAT_4_EOR), {'e', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_LSL), {'l', 's', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_LSR), {'l', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ASR), {'a', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ADC), {'a', 'd', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_SBC), {'s', 'b', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_ROR), {'r', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_TST), {'t', 's', 't' }}, ++ { X(ASM_THUMB_FORMAT_4_NEG), {'n', 'e', 'g' }}, ++ { X(ASM_THUMB_FORMAT_4_CMP), {'c', 'm', 'p' }}, ++ { X(ASM_THUMB_FORMAT_4_CMN), {'c', 'm', 'n' }}, ++ { X(ASM_THUMB_FORMAT_4_ORR), {'o', 'r', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_MUL), {'m', 'u', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_BIC), {'b', 'i', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_MVN), {'m', 'v', 'n' }}, + }; + #undef X + +@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t { + char name[3]; + } format_vfp_op_t; + STATIC const format_vfp_op_t format_vfp_op_table[] = { +- { 0x30, "add" }, +- { 0x34, "sub" }, +- { 0x20, "mul" }, +- { 0x80, "div" }, ++ { 0x30, {'a', 'd', 'd' }}, ++ { 0x34, {'s', 'u', 'b' }}, ++ { 0x20, {'m', 'u', 'l' }}, ++ { 0x80, {'d', 'i', 'v' }}, + }; + + // shorthand alias for whether we allow ARMv7-M instructions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch new file mode 100644 index 0000000000..a1041ee2e3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch @@ -0,0 +1,46 @@ +From a792bf8c58f1e1c63a65bc867bac75a93d496cac Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:34:37 +1000 +Subject: [PATCH 3/5] extmod/moductypes: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +Also split out the duplicate string to a top-level array (probably the +duplicate string literal was interned, so unlikely to have any impact.) + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + extmod/moductypes.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/extmod/moductypes.c b/extmod/moductypes.c +index f56567107..87fd5fb69 100644 +--- a/extmod/moductypes.c ++++ b/extmod/moductypes.c +@@ -264,15 +264,18 @@ STATIC mp_obj_t uctypes_struct_sizeof(size_t n_args, const mp_obj_t *args) { + } + STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(uctypes_struct_sizeof_obj, 1, 2, uctypes_struct_sizeof); + ++static const char type2char[16] = { ++ 'B', 'b', 'H', 'h', 'I', 'i', 'Q', 'q', ++ '-', '-', '-', '-', '-', '-', 'f', 'd' ++}; ++ + static inline mp_obj_t get_unaligned(uint val_type, byte *p, int big_endian) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + return mp_binary_get_val(struct_type, type2char[val_type], p, &p); + } + + static inline void set_unaligned(uint val_type, byte *p, int big_endian, mp_obj_t val) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + mp_binary_set_val(struct_type, type2char[val_type], val, p, &p); + } + +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0004-downstream-Avoids-the-new-Wunterminated-string-liter.patch b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0004-downstream-Avoids-the-new-Wunterminated-string-liter.patch new file mode 100644 index 0000000000..b00e27a983 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0004-downstream-Avoids-the-new-Wunterminated-string-liter.patch @@ -0,0 +1,56 @@ +From 933867777002e4652a8e73efe8dafd5f48db771e Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Sat, 30 May 2026 13:26:40 +0300 +Subject: [PATCH 4/5] (downstream) Avoids the new Wunterminated-string-literal + when compiled with gcc 15.1. + +--- + py/emitinlinextensa.c | 32 ++++++++++++++++---------------- + 1 file changed, 16 insertions(+), 16 deletions(-) + +diff --git a/py/emitinlinextensa.c b/py/emitinlinextensa.c +index 5dac2ae39..f233c59e1 100644 +--- a/py/emitinlinextensa.c ++++ b/py/emitinlinextensa.c +@@ -119,22 +119,22 @@ typedef struct _reg_name_t { byte reg; + byte name[3]; + } reg_name_t; + STATIC const reg_name_t reg_name_table[] = { +- {0, "a0\0"}, +- {1, "a1\0"}, +- {2, "a2\0"}, +- {3, "a3\0"}, +- {4, "a4\0"}, +- {5, "a5\0"}, +- {6, "a6\0"}, +- {7, "a7\0"}, +- {8, "a8\0"}, +- {9, "a9\0"}, +- {10, "a10"}, +- {11, "a11"}, +- {12, "a12"}, +- {13, "a13"}, +- {14, "a14"}, +- {15, "a15"}, ++ {0, {'a', '0' }}, ++ {1, {'a', '1' }}, ++ {2, {'a', '2' }}, ++ {3, {'a', '3' }}, ++ {4, {'a', '4' }}, ++ {5, {'a', '5' }}, ++ {6, {'a', '6' }}, ++ {7, {'a', '7' }}, ++ {8, {'a', '8' }}, ++ {9, {'a', '9' }}, ++ {10, {'a', '1', '0' }}, ++ {11, {'a', '1', '1' }}, ++ {12, {'a', '1', '2' }}, ++ {13, {'a', '1', '3' }}, ++ {14, {'a', '1', '4' }}, ++ {15, {'a', '1', '5' }}, + }; + + // return empty string in case of error, so we can attempt to parse the string +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch new file mode 100644 index 0000000000..079a537c1c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.22.0/micropython-1.22.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch @@ -0,0 +1,34 @@ +From 2286de72aa797d48dbbe2764a06165441d2ad049 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 14:34:09 +1000 +Subject: [PATCH 5/5] lib/littlefs: Fix string initializer in lfs1.c. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +It would be preferable to just disable this warning, but Clang +-Wunknown-warning-option kicks in even when disabling warnings so this +becomes fiddly to apply. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + lib/littlefs/lfs1.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/littlefs/lfs1.c b/lib/littlefs/lfs1.c +index 6a3fd6700..ec18dc470 100644 +--- a/lib/littlefs/lfs1.c ++++ b/lib/littlefs/lfs1.c +@@ -2141,7 +2141,7 @@ int lfs1_format(lfs1_t *lfs1, const struct lfs1_config *cfg) { + .d.elen = sizeof(superblock.d) - sizeof(superblock.d.magic) - 4, + .d.nlen = sizeof(superblock.d.magic), + .d.version = LFS1_DISK_VERSION, +- .d.magic = {"littlefs"}, ++ .d.magic = {'l', 'i', 't', 't', 'l', 'e', 'f', 's'}, + .d.block_size = lfs1->cfg->block_size, + .d.block_count = lfs1->cfg->block_count, + .d.root = {lfs1->root[0], lfs1->root[1]}, +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch new file mode 100644 index 0000000000..364d3016eb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch @@ -0,0 +1,34 @@ +From 8a2f70ad0a0d4aa58d009c974da66b367bf50418 Mon Sep 17 00:00:00 2001 +From: Jeff Epler +Date: Sat, 27 Sep 2025 19:29:49 -0500 +Subject: [PATCH 1/5] py/misc: Don't warn about a GNU extension for static + assert macro. + +This warning was enabled by default on clang 17.0.0 on macOS 26. Disable +it, because we want to make these checks at compile-time even if it +requires an extension. + +Fixes issue #18116. + +Signed-off-by: Jeff Epler +--- + py/misc.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/py/misc.h b/py/misc.h +index eea3e8b0f..7b6a24c5c 100644 +--- a/py/misc.h ++++ b/py/misc.h +@@ -51,6 +51,9 @@ typedef unsigned int uint; + #define MP_STRINGIFY(x) MP_STRINGIFY_HELPER(x) + + // Static assertion macro ++#if __clang__ ++#pragma GCC diagnostic ignored "-Wgnu-folding-constant" ++#endif + #define MP_STATIC_ASSERT(cond) ((void)sizeof(char[1 - 2 * !(cond)])) + // In C++ things like comparing extern const pointers are not constant-expressions so cannot be used + // in MP_STATIC_ASSERT. Note that not all possible compiler versions will reject this. Some gcc versions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch new file mode 100644 index 0000000000..1da8910537 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch @@ -0,0 +1,158 @@ +From 6800cd400e3c5b3881982a9a84d77a8cdb5e09be Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:36:05 +1000 +Subject: [PATCH 2/5] py/emitinlinethumb: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + py/emitinlinethumb.c | 108 +++++++++++++++++++++---------------------- + 1 file changed, 54 insertions(+), 54 deletions(-) + +diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c +index 7818bb4f4..d6596337a 100644 +--- a/py/emitinlinethumb.c ++++ b/py/emitinlinethumb.c +@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg; + byte name[3]; + } reg_name_t; + static const reg_name_t reg_name_table[] = { +- {0, "r0\0"}, +- {1, "r1\0"}, +- {2, "r2\0"}, +- {3, "r3\0"}, +- {4, "r4\0"}, +- {5, "r5\0"}, +- {6, "r6\0"}, +- {7, "r7\0"}, +- {8, "r8\0"}, +- {9, "r9\0"}, +- {10, "r10"}, +- {11, "r11"}, +- {12, "r12"}, +- {13, "r13"}, +- {14, "r14"}, +- {15, "r15"}, +- {10, "sl\0"}, +- {11, "fp\0"}, +- {13, "sp\0"}, +- {14, "lr\0"}, +- {15, "pc\0"}, ++ {0, {'r', '0' }}, ++ {1, {'r', '1' }}, ++ {2, {'r', '2' }}, ++ {3, {'r', '3' }}, ++ {4, {'r', '4' }}, ++ {5, {'r', '5' }}, ++ {6, {'r', '6' }}, ++ {7, {'r', '7' }}, ++ {8, {'r', '8' }}, ++ {9, {'r', '9' }}, ++ {10, {'r', '1', '0' }}, ++ {11, {'r', '1', '1' }}, ++ {12, {'r', '1', '2' }}, ++ {13, {'r', '1', '3' }}, ++ {14, {'r', '1', '4' }}, ++ {15, {'r', '1', '5' }}, ++ {10, {'s', 'l' }}, ++ {11, {'f', 'p' }}, ++ {13, {'s', 'p' }}, ++ {14, {'l', 'r' }}, ++ {15, {'p', 'c' }}, + }; + + #define MAX_SPECIAL_REGISTER_NAME_LENGTH 7 +@@ -368,20 +368,20 @@ typedef struct _cc_name_t { byte cc; + byte name[2]; + } cc_name_t; + static const cc_name_t cc_name_table[] = { +- { ASM_THUMB_CC_EQ, "eq" }, +- { ASM_THUMB_CC_NE, "ne" }, +- { ASM_THUMB_CC_CS, "cs" }, +- { ASM_THUMB_CC_CC, "cc" }, +- { ASM_THUMB_CC_MI, "mi" }, +- { ASM_THUMB_CC_PL, "pl" }, +- { ASM_THUMB_CC_VS, "vs" }, +- { ASM_THUMB_CC_VC, "vc" }, +- { ASM_THUMB_CC_HI, "hi" }, +- { ASM_THUMB_CC_LS, "ls" }, +- { ASM_THUMB_CC_GE, "ge" }, +- { ASM_THUMB_CC_LT, "lt" }, +- { ASM_THUMB_CC_GT, "gt" }, +- { ASM_THUMB_CC_LE, "le" }, ++ { ASM_THUMB_CC_EQ, { 'e', 'q' }}, ++ { ASM_THUMB_CC_NE, { 'n', 'e' }}, ++ { ASM_THUMB_CC_CS, { 'c', 's' }}, ++ { ASM_THUMB_CC_CC, { 'c', 'c' }}, ++ { ASM_THUMB_CC_MI, { 'm', 'i' }}, ++ { ASM_THUMB_CC_PL, { 'p', 'l' }}, ++ { ASM_THUMB_CC_VS, { 'v', 's' }}, ++ { ASM_THUMB_CC_VC, { 'v', 'c' }}, ++ { ASM_THUMB_CC_HI, { 'h', 'i' }}, ++ { ASM_THUMB_CC_LS, { 'l', 's' }}, ++ { ASM_THUMB_CC_GE, { 'g', 'e' }}, ++ { ASM_THUMB_CC_LT, { 'l', 't' }}, ++ { ASM_THUMB_CC_GT, { 'g', 't' }}, ++ { ASM_THUMB_CC_LE, { 'l', 'e' }}, + }; + + typedef struct _format_4_op_t { byte op; +@@ -389,21 +389,21 @@ typedef struct _format_4_op_t { byte op; + } format_4_op_t; + #define X(x) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops + static const format_4_op_t format_4_op_table[] = { +- { X(ASM_THUMB_FORMAT_4_EOR), "eor" }, +- { X(ASM_THUMB_FORMAT_4_LSL), "lsl" }, +- { X(ASM_THUMB_FORMAT_4_LSR), "lsr" }, +- { X(ASM_THUMB_FORMAT_4_ASR), "asr" }, +- { X(ASM_THUMB_FORMAT_4_ADC), "adc" }, +- { X(ASM_THUMB_FORMAT_4_SBC), "sbc" }, +- { X(ASM_THUMB_FORMAT_4_ROR), "ror" }, +- { X(ASM_THUMB_FORMAT_4_TST), "tst" }, +- { X(ASM_THUMB_FORMAT_4_NEG), "neg" }, +- { X(ASM_THUMB_FORMAT_4_CMP), "cmp" }, +- { X(ASM_THUMB_FORMAT_4_CMN), "cmn" }, +- { X(ASM_THUMB_FORMAT_4_ORR), "orr" }, +- { X(ASM_THUMB_FORMAT_4_MUL), "mul" }, +- { X(ASM_THUMB_FORMAT_4_BIC), "bic" }, +- { X(ASM_THUMB_FORMAT_4_MVN), "mvn" }, ++ { X(ASM_THUMB_FORMAT_4_EOR), {'e', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_LSL), {'l', 's', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_LSR), {'l', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ASR), {'a', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ADC), {'a', 'd', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_SBC), {'s', 'b', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_ROR), {'r', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_TST), {'t', 's', 't' }}, ++ { X(ASM_THUMB_FORMAT_4_NEG), {'n', 'e', 'g' }}, ++ { X(ASM_THUMB_FORMAT_4_CMP), {'c', 'm', 'p' }}, ++ { X(ASM_THUMB_FORMAT_4_CMN), {'c', 'm', 'n' }}, ++ { X(ASM_THUMB_FORMAT_4_ORR), {'o', 'r', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_MUL), {'m', 'u', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_BIC), {'b', 'i', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_MVN), {'m', 'v', 'n' }}, + }; + #undef X + +@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t { + char name[3]; + } format_vfp_op_t; + static const format_vfp_op_t format_vfp_op_table[] = { +- { 0x30, "add" }, +- { 0x34, "sub" }, +- { 0x20, "mul" }, +- { 0x80, "div" }, ++ { 0x30, {'a', 'd', 'd' }}, ++ { 0x34, {'s', 'u', 'b' }}, ++ { 0x20, {'m', 'u', 'l' }}, ++ { 0x80, {'d', 'i', 'v' }}, + }; + + // shorthand alias for whether we allow ARMv7-M instructions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch new file mode 100644 index 0000000000..40ddd597e0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch @@ -0,0 +1,46 @@ +From 562667562772f6507c2bb454fe15b7a259134305 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:34:37 +1000 +Subject: [PATCH 3/5] extmod/moductypes: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +Also split out the duplicate string to a top-level array (probably the +duplicate string literal was interned, so unlikely to have any impact.) + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + extmod/moductypes.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/extmod/moductypes.c b/extmod/moductypes.c +index fa743eb63..ad022099e 100644 +--- a/extmod/moductypes.c ++++ b/extmod/moductypes.c +@@ -264,15 +264,18 @@ static mp_obj_t uctypes_struct_sizeof(size_t n_args, const mp_obj_t *args) { + } + static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(uctypes_struct_sizeof_obj, 1, 2, uctypes_struct_sizeof); + ++static const char type2char[16] = { ++ 'B', 'b', 'H', 'h', 'I', 'i', 'Q', 'q', ++ '-', '-', '-', '-', '-', '-', 'f', 'd' ++}; ++ + static inline mp_obj_t get_unaligned(uint val_type, byte *p, int big_endian) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + return mp_binary_get_val(struct_type, type2char[val_type], p, &p); + } + + static inline void set_unaligned(uint val_type, byte *p, int big_endian, mp_obj_t val) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + mp_binary_set_val(struct_type, type2char[val_type], val, p, &p); + } + +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch new file mode 100644 index 0000000000..24624c9cd6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch @@ -0,0 +1,82 @@ +From acd88980b95f8e6e331310b9f6154f6423464840 Mon Sep 17 00:00:00 2001 +From: Alessandro Gatti +Date: Tue, 28 Jan 2025 14:58:29 +0100 +Subject: [PATCH 4/5] py/emitinlinextensa: Simplify register name lookup. + +This commit changes the Xtensa inline assembly parser to use a slightly +simpler (and probably a tiny bit more efficient) way to look up register +names when decoding instruction parameters. + +Signed-off-by: Alessandro Gatti +--- + py/emitinlinextensa.c | 49 +++++++++---------------------------------- + 1 file changed, 10 insertions(+), 39 deletions(-) + +diff --git a/py/emitinlinextensa.c b/py/emitinlinextensa.c +index 57056d597..fed259cfc 100644 +--- a/py/emitinlinextensa.c ++++ b/py/emitinlinextensa.c +@@ -115,50 +115,21 @@ static bool emit_inline_xtensa_label(emit_inline_asm_t *emit, mp_uint_t label_nu + return true; + } + +-typedef struct _reg_name_t { byte reg; +- byte name[3]; +-} reg_name_t; +-static const reg_name_t reg_name_table[] = { +- {0, "a0\0"}, +- {1, "a1\0"}, +- {2, "a2\0"}, +- {3, "a3\0"}, +- {4, "a4\0"}, +- {5, "a5\0"}, +- {6, "a6\0"}, +- {7, "a7\0"}, +- {8, "a8\0"}, +- {9, "a9\0"}, +- {10, "a10"}, +- {11, "a11"}, +- {12, "a12"}, +- {13, "a13"}, +- {14, "a14"}, +- {15, "a15"}, ++static const qstr_short_t REGISTERS[16] = { ++ MP_QSTR_a0, MP_QSTR_a1, MP_QSTR_a2, MP_QSTR_a3, MP_QSTR_a4, MP_QSTR_a5, MP_QSTR_a6, MP_QSTR_a7, ++ MP_QSTR_a8, MP_QSTR_a9, MP_QSTR_a10, MP_QSTR_a11, MP_QSTR_a12, MP_QSTR_a13, MP_QSTR_a14, MP_QSTR_a15 + }; + +-// return empty string in case of error, so we can attempt to parse the string +-// without a special check if it was in fact a string +-static const char *get_arg_str(mp_parse_node_t pn) { +- if (MP_PARSE_NODE_IS_ID(pn)) { +- qstr qst = MP_PARSE_NODE_LEAF_ARG(pn); +- return qstr_str(qst); +- } else { +- return ""; +- } +-} +- + static mp_uint_t get_arg_reg(emit_inline_asm_t *emit, const char *op, mp_parse_node_t pn) { +- const char *reg_str = get_arg_str(pn); +- for (mp_uint_t i = 0; i < MP_ARRAY_SIZE(reg_name_table); i++) { +- const reg_name_t *r = ®_name_table[i]; +- if (reg_str[0] == r->name[0] +- && reg_str[1] == r->name[1] +- && reg_str[2] == r->name[2] +- && (reg_str[2] == '\0' || reg_str[3] == '\0')) { +- return r->reg; ++ if (MP_PARSE_NODE_IS_ID(pn)) { ++ qstr node_qstr = MP_PARSE_NODE_LEAF_ARG(pn); ++ for (size_t i = 0; i < MP_ARRAY_SIZE(REGISTERS); i++) { ++ if (node_qstr == REGISTERS[i]) { ++ return i; ++ } + } + } ++ + emit_inline_xtensa_error_exc(emit, + mp_obj_new_exception_msg_varg(&mp_type_SyntaxError, + MP_ERROR_TEXT("'%s' expects a register"), op)); +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch new file mode 100644 index 0000000000..019eb78b41 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.23.0/micropython-1.23.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch @@ -0,0 +1,34 @@ +From b043e1847e1fbfa0db3eff73cb3a53b74f5ecc5a Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 14:34:09 +1000 +Subject: [PATCH 5/5] lib/littlefs: Fix string initializer in lfs1.c. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +It would be preferable to just disable this warning, but Clang +-Wunknown-warning-option kicks in even when disabling warnings so this +becomes fiddly to apply. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + lib/littlefs/lfs1.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/littlefs/lfs1.c b/lib/littlefs/lfs1.c +index 6a3fd6700..ec18dc470 100644 +--- a/lib/littlefs/lfs1.c ++++ b/lib/littlefs/lfs1.c +@@ -2141,7 +2141,7 @@ int lfs1_format(lfs1_t *lfs1, const struct lfs1_config *cfg) { + .d.elen = sizeof(superblock.d) - sizeof(superblock.d.magic) - 4, + .d.nlen = sizeof(superblock.d.magic), + .d.version = LFS1_DISK_VERSION, +- .d.magic = {"littlefs"}, ++ .d.magic = {'l', 'i', 't', 't', 'l', 'e', 'f', 's'}, + .d.block_size = lfs1->cfg->block_size, + .d.block_count = lfs1->cfg->block_count, + .d.root = {lfs1->root[0], lfs1->root[1]}, +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch new file mode 100644 index 0000000000..f181dd1f94 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch @@ -0,0 +1,34 @@ +From e292d49b2d421d10f5151e60d3ec593c29e8b0df Mon Sep 17 00:00:00 2001 +From: Jeff Epler +Date: Sat, 27 Sep 2025 19:29:49 -0500 +Subject: [PATCH 1/5] py/misc: Don't warn about a GNU extension for static + assert macro. + +This warning was enabled by default on clang 17.0.0 on macOS 26. Disable +it, because we want to make these checks at compile-time even if it +requires an extension. + +Fixes issue #18116. + +Signed-off-by: Jeff Epler +--- + py/misc.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/py/misc.h b/py/misc.h +index 96b13c151..c1b47f378 100644 +--- a/py/misc.h ++++ b/py/misc.h +@@ -51,6 +51,9 @@ typedef unsigned int uint; + #define MP_STRINGIFY(x) MP_STRINGIFY_HELPER(x) + + // Static assertion macro ++#if __clang__ ++#pragma GCC diagnostic ignored "-Wgnu-folding-constant" ++#endif + #define MP_STATIC_ASSERT(cond) ((void)sizeof(char[1 - 2 * !(cond)])) + // In C++ things like comparing extern const pointers are not constant-expressions so cannot be used + // in MP_STATIC_ASSERT. Note that not all possible compiler versions will reject this. Some gcc versions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch new file mode 100644 index 0000000000..c27cca399f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch @@ -0,0 +1,158 @@ +From 3f9037e0f94acff12c53bb59068dadc731e8b7c3 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:36:05 +1000 +Subject: [PATCH 2/5] py/emitinlinethumb: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + py/emitinlinethumb.c | 108 +++++++++++++++++++++---------------------- + 1 file changed, 54 insertions(+), 54 deletions(-) + +diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c +index 7818bb4f4..d6596337a 100644 +--- a/py/emitinlinethumb.c ++++ b/py/emitinlinethumb.c +@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg; + byte name[3]; + } reg_name_t; + static const reg_name_t reg_name_table[] = { +- {0, "r0\0"}, +- {1, "r1\0"}, +- {2, "r2\0"}, +- {3, "r3\0"}, +- {4, "r4\0"}, +- {5, "r5\0"}, +- {6, "r6\0"}, +- {7, "r7\0"}, +- {8, "r8\0"}, +- {9, "r9\0"}, +- {10, "r10"}, +- {11, "r11"}, +- {12, "r12"}, +- {13, "r13"}, +- {14, "r14"}, +- {15, "r15"}, +- {10, "sl\0"}, +- {11, "fp\0"}, +- {13, "sp\0"}, +- {14, "lr\0"}, +- {15, "pc\0"}, ++ {0, {'r', '0' }}, ++ {1, {'r', '1' }}, ++ {2, {'r', '2' }}, ++ {3, {'r', '3' }}, ++ {4, {'r', '4' }}, ++ {5, {'r', '5' }}, ++ {6, {'r', '6' }}, ++ {7, {'r', '7' }}, ++ {8, {'r', '8' }}, ++ {9, {'r', '9' }}, ++ {10, {'r', '1', '0' }}, ++ {11, {'r', '1', '1' }}, ++ {12, {'r', '1', '2' }}, ++ {13, {'r', '1', '3' }}, ++ {14, {'r', '1', '4' }}, ++ {15, {'r', '1', '5' }}, ++ {10, {'s', 'l' }}, ++ {11, {'f', 'p' }}, ++ {13, {'s', 'p' }}, ++ {14, {'l', 'r' }}, ++ {15, {'p', 'c' }}, + }; + + #define MAX_SPECIAL_REGISTER_NAME_LENGTH 7 +@@ -368,20 +368,20 @@ typedef struct _cc_name_t { byte cc; + byte name[2]; + } cc_name_t; + static const cc_name_t cc_name_table[] = { +- { ASM_THUMB_CC_EQ, "eq" }, +- { ASM_THUMB_CC_NE, "ne" }, +- { ASM_THUMB_CC_CS, "cs" }, +- { ASM_THUMB_CC_CC, "cc" }, +- { ASM_THUMB_CC_MI, "mi" }, +- { ASM_THUMB_CC_PL, "pl" }, +- { ASM_THUMB_CC_VS, "vs" }, +- { ASM_THUMB_CC_VC, "vc" }, +- { ASM_THUMB_CC_HI, "hi" }, +- { ASM_THUMB_CC_LS, "ls" }, +- { ASM_THUMB_CC_GE, "ge" }, +- { ASM_THUMB_CC_LT, "lt" }, +- { ASM_THUMB_CC_GT, "gt" }, +- { ASM_THUMB_CC_LE, "le" }, ++ { ASM_THUMB_CC_EQ, { 'e', 'q' }}, ++ { ASM_THUMB_CC_NE, { 'n', 'e' }}, ++ { ASM_THUMB_CC_CS, { 'c', 's' }}, ++ { ASM_THUMB_CC_CC, { 'c', 'c' }}, ++ { ASM_THUMB_CC_MI, { 'm', 'i' }}, ++ { ASM_THUMB_CC_PL, { 'p', 'l' }}, ++ { ASM_THUMB_CC_VS, { 'v', 's' }}, ++ { ASM_THUMB_CC_VC, { 'v', 'c' }}, ++ { ASM_THUMB_CC_HI, { 'h', 'i' }}, ++ { ASM_THUMB_CC_LS, { 'l', 's' }}, ++ { ASM_THUMB_CC_GE, { 'g', 'e' }}, ++ { ASM_THUMB_CC_LT, { 'l', 't' }}, ++ { ASM_THUMB_CC_GT, { 'g', 't' }}, ++ { ASM_THUMB_CC_LE, { 'l', 'e' }}, + }; + + typedef struct _format_4_op_t { byte op; +@@ -389,21 +389,21 @@ typedef struct _format_4_op_t { byte op; + } format_4_op_t; + #define X(x) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops + static const format_4_op_t format_4_op_table[] = { +- { X(ASM_THUMB_FORMAT_4_EOR), "eor" }, +- { X(ASM_THUMB_FORMAT_4_LSL), "lsl" }, +- { X(ASM_THUMB_FORMAT_4_LSR), "lsr" }, +- { X(ASM_THUMB_FORMAT_4_ASR), "asr" }, +- { X(ASM_THUMB_FORMAT_4_ADC), "adc" }, +- { X(ASM_THUMB_FORMAT_4_SBC), "sbc" }, +- { X(ASM_THUMB_FORMAT_4_ROR), "ror" }, +- { X(ASM_THUMB_FORMAT_4_TST), "tst" }, +- { X(ASM_THUMB_FORMAT_4_NEG), "neg" }, +- { X(ASM_THUMB_FORMAT_4_CMP), "cmp" }, +- { X(ASM_THUMB_FORMAT_4_CMN), "cmn" }, +- { X(ASM_THUMB_FORMAT_4_ORR), "orr" }, +- { X(ASM_THUMB_FORMAT_4_MUL), "mul" }, +- { X(ASM_THUMB_FORMAT_4_BIC), "bic" }, +- { X(ASM_THUMB_FORMAT_4_MVN), "mvn" }, ++ { X(ASM_THUMB_FORMAT_4_EOR), {'e', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_LSL), {'l', 's', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_LSR), {'l', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ASR), {'a', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ADC), {'a', 'd', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_SBC), {'s', 'b', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_ROR), {'r', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_TST), {'t', 's', 't' }}, ++ { X(ASM_THUMB_FORMAT_4_NEG), {'n', 'e', 'g' }}, ++ { X(ASM_THUMB_FORMAT_4_CMP), {'c', 'm', 'p' }}, ++ { X(ASM_THUMB_FORMAT_4_CMN), {'c', 'm', 'n' }}, ++ { X(ASM_THUMB_FORMAT_4_ORR), {'o', 'r', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_MUL), {'m', 'u', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_BIC), {'b', 'i', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_MVN), {'m', 'v', 'n' }}, + }; + #undef X + +@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t { + char name[3]; + } format_vfp_op_t; + static const format_vfp_op_t format_vfp_op_table[] = { +- { 0x30, "add" }, +- { 0x34, "sub" }, +- { 0x20, "mul" }, +- { 0x80, "div" }, ++ { 0x30, {'a', 'd', 'd' }}, ++ { 0x34, {'s', 'u', 'b' }}, ++ { 0x20, {'m', 'u', 'l' }}, ++ { 0x80, {'d', 'i', 'v' }}, + }; + + // shorthand alias for whether we allow ARMv7-M instructions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch new file mode 100644 index 0000000000..8fc37309a0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch @@ -0,0 +1,46 @@ +From 03778e6bd734eb86aa86bc80356099e8225e1869 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:34:37 +1000 +Subject: [PATCH 3/5] extmod/moductypes: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +Also split out the duplicate string to a top-level array (probably the +duplicate string literal was interned, so unlikely to have any impact.) + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + extmod/moductypes.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/extmod/moductypes.c b/extmod/moductypes.c +index 00a69a275..ab6f4fa78 100644 +--- a/extmod/moductypes.c ++++ b/extmod/moductypes.c +@@ -277,15 +277,18 @@ static mp_obj_t uctypes_struct_sizeof(size_t n_args, const mp_obj_t *args) { + } + static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(uctypes_struct_sizeof_obj, 1, 2, uctypes_struct_sizeof); + ++static const char type2char[16] = { ++ 'B', 'b', 'H', 'h', 'I', 'i', 'Q', 'q', ++ '-', '-', '-', '-', '-', '-', 'f', 'd' ++}; ++ + static inline mp_obj_t get_unaligned(uint val_type, byte *p, int big_endian) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + return mp_binary_get_val(struct_type, type2char[val_type], p, &p); + } + + static inline void set_unaligned(uint val_type, byte *p, int big_endian, mp_obj_t val) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + mp_binary_set_val(struct_type, type2char[val_type], val, p, &p); + } + +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch new file mode 100644 index 0000000000..ad92f564a5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0004-py-emitinlinextensa-Simplify-register-name-lookup.patch @@ -0,0 +1,82 @@ +From 3f69689b6685b2a901ebfeea27b00549b895c237 Mon Sep 17 00:00:00 2001 +From: Alessandro Gatti +Date: Tue, 28 Jan 2025 14:58:29 +0100 +Subject: [PATCH 4/5] py/emitinlinextensa: Simplify register name lookup. + +This commit changes the Xtensa inline assembly parser to use a slightly +simpler (and probably a tiny bit more efficient) way to look up register +names when decoding instruction parameters. + +Signed-off-by: Alessandro Gatti +--- + py/emitinlinextensa.c | 49 +++++++++---------------------------------- + 1 file changed, 10 insertions(+), 39 deletions(-) + +diff --git a/py/emitinlinextensa.c b/py/emitinlinextensa.c +index 57056d597..fed259cfc 100644 +--- a/py/emitinlinextensa.c ++++ b/py/emitinlinextensa.c +@@ -115,50 +115,21 @@ static bool emit_inline_xtensa_label(emit_inline_asm_t *emit, mp_uint_t label_nu + return true; + } + +-typedef struct _reg_name_t { byte reg; +- byte name[3]; +-} reg_name_t; +-static const reg_name_t reg_name_table[] = { +- {0, "a0\0"}, +- {1, "a1\0"}, +- {2, "a2\0"}, +- {3, "a3\0"}, +- {4, "a4\0"}, +- {5, "a5\0"}, +- {6, "a6\0"}, +- {7, "a7\0"}, +- {8, "a8\0"}, +- {9, "a9\0"}, +- {10, "a10"}, +- {11, "a11"}, +- {12, "a12"}, +- {13, "a13"}, +- {14, "a14"}, +- {15, "a15"}, ++static const qstr_short_t REGISTERS[16] = { ++ MP_QSTR_a0, MP_QSTR_a1, MP_QSTR_a2, MP_QSTR_a3, MP_QSTR_a4, MP_QSTR_a5, MP_QSTR_a6, MP_QSTR_a7, ++ MP_QSTR_a8, MP_QSTR_a9, MP_QSTR_a10, MP_QSTR_a11, MP_QSTR_a12, MP_QSTR_a13, MP_QSTR_a14, MP_QSTR_a15 + }; + +-// return empty string in case of error, so we can attempt to parse the string +-// without a special check if it was in fact a string +-static const char *get_arg_str(mp_parse_node_t pn) { +- if (MP_PARSE_NODE_IS_ID(pn)) { +- qstr qst = MP_PARSE_NODE_LEAF_ARG(pn); +- return qstr_str(qst); +- } else { +- return ""; +- } +-} +- + static mp_uint_t get_arg_reg(emit_inline_asm_t *emit, const char *op, mp_parse_node_t pn) { +- const char *reg_str = get_arg_str(pn); +- for (mp_uint_t i = 0; i < MP_ARRAY_SIZE(reg_name_table); i++) { +- const reg_name_t *r = ®_name_table[i]; +- if (reg_str[0] == r->name[0] +- && reg_str[1] == r->name[1] +- && reg_str[2] == r->name[2] +- && (reg_str[2] == '\0' || reg_str[3] == '\0')) { +- return r->reg; ++ if (MP_PARSE_NODE_IS_ID(pn)) { ++ qstr node_qstr = MP_PARSE_NODE_LEAF_ARG(pn); ++ for (size_t i = 0; i < MP_ARRAY_SIZE(REGISTERS); i++) { ++ if (node_qstr == REGISTERS[i]) { ++ return i; ++ } + } + } ++ + emit_inline_xtensa_error_exc(emit, + mp_obj_new_exception_msg_varg(&mp_type_SyntaxError, + MP_ERROR_TEXT("'%s' expects a register"), op)); +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch new file mode 100644 index 0000000000..54030dae4c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.24.0/micropython-1.24.0/0005-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch @@ -0,0 +1,34 @@ +From e4180843f881c3327c998630edad06a104976370 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 14:34:09 +1000 +Subject: [PATCH 5/5] lib/littlefs: Fix string initializer in lfs1.c. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +It would be preferable to just disable this warning, but Clang +-Wunknown-warning-option kicks in even when disabling warnings so this +becomes fiddly to apply. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + lib/littlefs/lfs1.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/littlefs/lfs1.c b/lib/littlefs/lfs1.c +index 6a3fd6700..ec18dc470 100644 +--- a/lib/littlefs/lfs1.c ++++ b/lib/littlefs/lfs1.c +@@ -2141,7 +2141,7 @@ int lfs1_format(lfs1_t *lfs1, const struct lfs1_config *cfg) { + .d.elen = sizeof(superblock.d) - sizeof(superblock.d.magic) - 4, + .d.nlen = sizeof(superblock.d.magic), + .d.version = LFS1_DISK_VERSION, +- .d.magic = {"littlefs"}, ++ .d.magic = {'l', 'i', 't', 't', 'l', 'e', 'f', 's'}, + .d.block_size = lfs1->cfg->block_size, + .d.block_count = lfs1->cfg->block_count, + .d.root = {lfs1->root[0], lfs1->root[1]}, +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch new file mode 100644 index 0000000000..85e94ecd3f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch @@ -0,0 +1,34 @@ +From 611ae9adbc89bd7b4b0a4bfb004fc3fa2bd1860e Mon Sep 17 00:00:00 2001 +From: Jeff Epler +Date: Sat, 27 Sep 2025 19:29:49 -0500 +Subject: [PATCH 1/4] py/misc: Don't warn about a GNU extension for static + assert macro. + +This warning was enabled by default on clang 17.0.0 on macOS 26. Disable +it, because we want to make these checks at compile-time even if it +requires an extension. + +Fixes issue #18116. + +Signed-off-by: Jeff Epler +--- + py/misc.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/py/misc.h b/py/misc.h +index e05fbe61a..46495a56d 100644 +--- a/py/misc.h ++++ b/py/misc.h +@@ -51,6 +51,9 @@ typedef unsigned int uint; + #define MP_STRINGIFY(x) MP_STRINGIFY_HELPER(x) + + // Static assertion macro ++#if __clang__ ++#pragma GCC diagnostic ignored "-Wgnu-folding-constant" ++#endif + #define MP_STATIC_ASSERT(cond) ((void)sizeof(char[1 - 2 * !(cond)])) + // In C++ things like comparing extern const pointers are not constant-expressions so cannot be used + // in MP_STATIC_ASSERT. Note that not all possible compiler versions will reject this. Some gcc versions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch new file mode 100644 index 0000000000..8a6e07cc86 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0002-py-emitinlinethumb-Refactor-string-literal-as-array-.patch @@ -0,0 +1,158 @@ +From 877d65891ac7b46156999cd2004779658ab4b763 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:36:05 +1000 +Subject: [PATCH 2/4] py/emitinlinethumb: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + py/emitinlinethumb.c | 108 +++++++++++++++++++++---------------------- + 1 file changed, 54 insertions(+), 54 deletions(-) + +diff --git a/py/emitinlinethumb.c b/py/emitinlinethumb.c +index 7818bb4f4..d6596337a 100644 +--- a/py/emitinlinethumb.c ++++ b/py/emitinlinethumb.c +@@ -150,27 +150,27 @@ typedef struct _reg_name_t { byte reg; + byte name[3]; + } reg_name_t; + static const reg_name_t reg_name_table[] = { +- {0, "r0\0"}, +- {1, "r1\0"}, +- {2, "r2\0"}, +- {3, "r3\0"}, +- {4, "r4\0"}, +- {5, "r5\0"}, +- {6, "r6\0"}, +- {7, "r7\0"}, +- {8, "r8\0"}, +- {9, "r9\0"}, +- {10, "r10"}, +- {11, "r11"}, +- {12, "r12"}, +- {13, "r13"}, +- {14, "r14"}, +- {15, "r15"}, +- {10, "sl\0"}, +- {11, "fp\0"}, +- {13, "sp\0"}, +- {14, "lr\0"}, +- {15, "pc\0"}, ++ {0, {'r', '0' }}, ++ {1, {'r', '1' }}, ++ {2, {'r', '2' }}, ++ {3, {'r', '3' }}, ++ {4, {'r', '4' }}, ++ {5, {'r', '5' }}, ++ {6, {'r', '6' }}, ++ {7, {'r', '7' }}, ++ {8, {'r', '8' }}, ++ {9, {'r', '9' }}, ++ {10, {'r', '1', '0' }}, ++ {11, {'r', '1', '1' }}, ++ {12, {'r', '1', '2' }}, ++ {13, {'r', '1', '3' }}, ++ {14, {'r', '1', '4' }}, ++ {15, {'r', '1', '5' }}, ++ {10, {'s', 'l' }}, ++ {11, {'f', 'p' }}, ++ {13, {'s', 'p' }}, ++ {14, {'l', 'r' }}, ++ {15, {'p', 'c' }}, + }; + + #define MAX_SPECIAL_REGISTER_NAME_LENGTH 7 +@@ -368,20 +368,20 @@ typedef struct _cc_name_t { byte cc; + byte name[2]; + } cc_name_t; + static const cc_name_t cc_name_table[] = { +- { ASM_THUMB_CC_EQ, "eq" }, +- { ASM_THUMB_CC_NE, "ne" }, +- { ASM_THUMB_CC_CS, "cs" }, +- { ASM_THUMB_CC_CC, "cc" }, +- { ASM_THUMB_CC_MI, "mi" }, +- { ASM_THUMB_CC_PL, "pl" }, +- { ASM_THUMB_CC_VS, "vs" }, +- { ASM_THUMB_CC_VC, "vc" }, +- { ASM_THUMB_CC_HI, "hi" }, +- { ASM_THUMB_CC_LS, "ls" }, +- { ASM_THUMB_CC_GE, "ge" }, +- { ASM_THUMB_CC_LT, "lt" }, +- { ASM_THUMB_CC_GT, "gt" }, +- { ASM_THUMB_CC_LE, "le" }, ++ { ASM_THUMB_CC_EQ, { 'e', 'q' }}, ++ { ASM_THUMB_CC_NE, { 'n', 'e' }}, ++ { ASM_THUMB_CC_CS, { 'c', 's' }}, ++ { ASM_THUMB_CC_CC, { 'c', 'c' }}, ++ { ASM_THUMB_CC_MI, { 'm', 'i' }}, ++ { ASM_THUMB_CC_PL, { 'p', 'l' }}, ++ { ASM_THUMB_CC_VS, { 'v', 's' }}, ++ { ASM_THUMB_CC_VC, { 'v', 'c' }}, ++ { ASM_THUMB_CC_HI, { 'h', 'i' }}, ++ { ASM_THUMB_CC_LS, { 'l', 's' }}, ++ { ASM_THUMB_CC_GE, { 'g', 'e' }}, ++ { ASM_THUMB_CC_LT, { 'l', 't' }}, ++ { ASM_THUMB_CC_GT, { 'g', 't' }}, ++ { ASM_THUMB_CC_LE, { 'l', 'e' }}, + }; + + typedef struct _format_4_op_t { byte op; +@@ -389,21 +389,21 @@ typedef struct _format_4_op_t { byte op; + } format_4_op_t; + #define X(x) (((x) >> 4) & 0xff) // only need 1 byte to distinguish these ops + static const format_4_op_t format_4_op_table[] = { +- { X(ASM_THUMB_FORMAT_4_EOR), "eor" }, +- { X(ASM_THUMB_FORMAT_4_LSL), "lsl" }, +- { X(ASM_THUMB_FORMAT_4_LSR), "lsr" }, +- { X(ASM_THUMB_FORMAT_4_ASR), "asr" }, +- { X(ASM_THUMB_FORMAT_4_ADC), "adc" }, +- { X(ASM_THUMB_FORMAT_4_SBC), "sbc" }, +- { X(ASM_THUMB_FORMAT_4_ROR), "ror" }, +- { X(ASM_THUMB_FORMAT_4_TST), "tst" }, +- { X(ASM_THUMB_FORMAT_4_NEG), "neg" }, +- { X(ASM_THUMB_FORMAT_4_CMP), "cmp" }, +- { X(ASM_THUMB_FORMAT_4_CMN), "cmn" }, +- { X(ASM_THUMB_FORMAT_4_ORR), "orr" }, +- { X(ASM_THUMB_FORMAT_4_MUL), "mul" }, +- { X(ASM_THUMB_FORMAT_4_BIC), "bic" }, +- { X(ASM_THUMB_FORMAT_4_MVN), "mvn" }, ++ { X(ASM_THUMB_FORMAT_4_EOR), {'e', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_LSL), {'l', 's', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_LSR), {'l', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ASR), {'a', 's', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_ADC), {'a', 'd', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_SBC), {'s', 'b', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_ROR), {'r', 'o', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_TST), {'t', 's', 't' }}, ++ { X(ASM_THUMB_FORMAT_4_NEG), {'n', 'e', 'g' }}, ++ { X(ASM_THUMB_FORMAT_4_CMP), {'c', 'm', 'p' }}, ++ { X(ASM_THUMB_FORMAT_4_CMN), {'c', 'm', 'n' }}, ++ { X(ASM_THUMB_FORMAT_4_ORR), {'o', 'r', 'r' }}, ++ { X(ASM_THUMB_FORMAT_4_MUL), {'m', 'u', 'l' }}, ++ { X(ASM_THUMB_FORMAT_4_BIC), {'b', 'i', 'c' }}, ++ { X(ASM_THUMB_FORMAT_4_MVN), {'m', 'v', 'n' }}, + }; + #undef X + +@@ -428,10 +428,10 @@ typedef struct _format_vfp_op_t { + char name[3]; + } format_vfp_op_t; + static const format_vfp_op_t format_vfp_op_table[] = { +- { 0x30, "add" }, +- { 0x34, "sub" }, +- { 0x20, "mul" }, +- { 0x80, "div" }, ++ { 0x30, {'a', 'd', 'd' }}, ++ { 0x34, {'s', 'u', 'b' }}, ++ { 0x20, {'m', 'u', 'l' }}, ++ { 0x80, {'d', 'i', 'v' }}, + }; + + // shorthand alias for whether we allow ARMv7-M instructions +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch new file mode 100644 index 0000000000..8f84fb1007 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0003-extmod-moductypes-Refactor-string-literal-as-array-i.patch @@ -0,0 +1,46 @@ +From 5692229faee3b5cb8beca027e3240662e4f31629 Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 13:34:37 +1000 +Subject: [PATCH 3/4] extmod/moductypes: Refactor string literal as array + initializer. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +Also split out the duplicate string to a top-level array (probably the +duplicate string literal was interned, so unlikely to have any impact.) + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + extmod/moductypes.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/extmod/moductypes.c b/extmod/moductypes.c +index bf4579765..54abce79e 100644 +--- a/extmod/moductypes.c ++++ b/extmod/moductypes.c +@@ -277,15 +277,18 @@ static mp_obj_t uctypes_struct_sizeof(size_t n_args, const mp_obj_t *args) { + } + static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(uctypes_struct_sizeof_obj, 1, 2, uctypes_struct_sizeof); + ++static const char type2char[16] = { ++ 'B', 'b', 'H', 'h', 'I', 'i', 'Q', 'q', ++ '-', '-', '-', '-', '-', '-', 'f', 'd' ++}; ++ + static inline mp_obj_t get_unaligned(uint val_type, byte *p, int big_endian) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + return mp_binary_get_val(struct_type, type2char[val_type], p, &p); + } + + static inline void set_unaligned(uint val_type, byte *p, int big_endian, mp_obj_t val) { + char struct_type = big_endian ? '>' : '<'; +- static const char type2char[16] = "BbHhIiQq------fd"; + mp_binary_set_val(struct_type, type2char[val_type], val, p, &p); + } + +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0004-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0004-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch new file mode 100644 index 0000000000..f6122924bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.25.0/micropython-1.25.0/0004-lib-littlefs-Fix-string-initializer-in-lfs1.c.patch @@ -0,0 +1,34 @@ +From 629e4e36cd4b3c1931dba3fb81ebf45a8cf755cd Mon Sep 17 00:00:00 2001 +From: Angus Gratton +Date: Fri, 9 May 2025 14:34:09 +1000 +Subject: [PATCH 4/4] lib/littlefs: Fix string initializer in lfs1.c. + +Avoids the new Wunterminated-string-literal when compiled with gcc 15.1. + +It would be preferable to just disable this warning, but Clang +-Wunknown-warning-option kicks in even when disabling warnings so this +becomes fiddly to apply. + +This work was funded through GitHub Sponsors. + +Signed-off-by: Angus Gratton +--- + lib/littlefs/lfs1.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/littlefs/lfs1.c b/lib/littlefs/lfs1.c +index 6a3fd6700..ec18dc470 100644 +--- a/lib/littlefs/lfs1.c ++++ b/lib/littlefs/lfs1.c +@@ -2141,7 +2141,7 @@ int lfs1_format(lfs1_t *lfs1, const struct lfs1_config *cfg) { + .d.elen = sizeof(superblock.d) - sizeof(superblock.d.magic) - 4, + .d.nlen = sizeof(superblock.d.magic), + .d.version = LFS1_DISK_VERSION, +- .d.magic = {"littlefs"}, ++ .d.magic = {'l', 'i', 't', 't', 'l', 'e', 'f', 's'}, + .d.block_size = lfs1->cfg->block_size, + .d.block_count = lfs1->cfg->block_count, + .d.root = {lfs1->root[0], lfs1->root[1]}, +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/micropython-1.26.0/micropython-1.26.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch b/plugins/python-build/share/python-build/patches/micropython-1.26.0/micropython-1.26.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch new file mode 100644 index 0000000000..1be89bb215 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/micropython-1.26.0/micropython-1.26.0/0001-py-misc-Don-t-warn-about-a-GNU-extension-for-static-.patch @@ -0,0 +1,34 @@ +From 1e39ecccb5550e3fdcff67582e9e0d8010dbb0aa Mon Sep 17 00:00:00 2001 +From: Jeff Epler +Date: Sat, 27 Sep 2025 19:29:49 -0500 +Subject: [PATCH] py/misc: Don't warn about a GNU extension for static assert + macro. + +This warning was enabled by default on clang 17.0.0 on macOS 26. Disable +it, because we want to make these checks at compile-time even if it +requires an extension. + +Fixes issue #18116. + +Signed-off-by: Jeff Epler +--- + py/misc.h | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/py/misc.h b/py/misc.h +index 86ac2ec9a..16e2cf9da 100644 +--- a/py/misc.h ++++ b/py/misc.h +@@ -56,6 +56,9 @@ typedef unsigned int uint; + #define MP_STRINGIFY(x) MP_STRINGIFY_HELPER(x) + + // Static assertion macro ++#if __clang__ ++#pragma GCC diagnostic ignored "-Wgnu-folding-constant" ++#endif + #define MP_STATIC_ASSERT(cond) ((void)sizeof(char[1 - 2 * !(cond)])) + // In C++ things like comparing extern const pointers are not constant-expressions so cannot be used + // in MP_STATIC_ASSERT. Note that not all possible compiler versions will reject this. Some gcc versions +-- +2.46.2.windows.1 + From 549a644688b4734a27243bb7881bb14f0d18adb6 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 30 May 2026 16:53:57 +0300 Subject: [PATCH 1162/1324] Fix linking against a keg_only Homebrew OpenSSL when a a non-keg_only one is also installed (#3462) --- plugins/python-build/bin/python-build | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 43b7909bc2..b764d4fe12 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1721,22 +1721,28 @@ use_homebrew_openssl() { local ssldir="$(brew --prefix "${openssl}" || true)" if [ -d "$ssldir" ]; then echo "python-build: use ${openssl} from homebrew" + # Since 970acdcad3be4262451e9a5180a385dd2158eda3 (openssl@3 3.1.1), + # Homebrew's openssl@3 is no longer keg-only. + # Python's --with-openssl* appends flags to the compiler's command line, + # which in combination with adding Homebrew's general dir to flags + # always causes the build to link to the non-keg `openssl' + # when the non-keg-only formula is installed. + # To counter that, we have to prepend the openssl path to flags + # regardless of using Configure options. if [[ -n "${PYTHON_BUILD_CONFIGURE_WITH_OPENSSL:-}" ]]; then # configure script of newer CPython versions support `--with-openssl` # https://bugs.python.org/issue21541 package_option python configure --with-openssl="${ssldir}" - else - export CPPFLAGS="-I$ssldir/include ${CPPFLAGS:+ $CPPFLAGS}" - export LDFLAGS="-L$ssldir/lib${LDFLAGS:+ $LDFLAGS}" fi # 3.10.0+ (https://github.com/python/cpython/pull/24820) # but has no effect until 3.11.0 (b9e9292d75fdea621e05e39b8629e6935d282d0d) # and broken in MacOS until 3.12.2 (cc13eabc7ce08accf49656e258ba500f74a1dae8) if [[ -n $PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH ]]; then package_option python configure --with-openssl-rpath="${ssldir}/lib" - else - prepend_ldflags_libs "-Wl,-rpath,${ssldir}/lib" fi + export CPPFLAGS="-I${ssldir}/include ${CPPFLAGS:+ $CPPFLAGS}" + export LDFLAGS="-L${ssldir}/lib -Wl,-rpath,${ssldir}/lib${LDFLAGS:+ $LDFLAGS}" + export PKG_CONFIG_PATH="$ssldir/lib/pkgconfig/:${PKG_CONFIG_PATH}" lock_in homebrew From 4c6d4c9be78831edd578911df8b44c17acb72cc0 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 30 May 2026 17:58:36 +0300 Subject: [PATCH 1163/1324] Add missing CPython 3.14.2t (#3464) --- plugins/python-build/share/python-build/3.14.2t | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.2t diff --git a/plugins/python-build/share/python-build/3.14.2t b/plugins/python-build/share/python-build/3.14.2t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.2t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 034e15b8100e3e639425e73c42e623059aed9d87 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 27 May 2026 11:01:05 +0300 Subject: [PATCH 1164/1324] 3.14.0-5: Support building against OpenSSL 4 --- plugins/python-build/bin/python-build | 11 +- .../python-build/share/python-build/3.14.0 | 2 +- .../python-build/share/python-build/3.14.1 | 2 +- .../python-build/share/python-build/3.14.2 | 2 +- .../python-build/share/python-build/3.14.3 | 2 +- .../python-build/share/python-build/3.14.4 | 2 +- .../python-build/share/python-build/3.14.5 | 2 +- ...se-accessors-for-ASN1_STRING-fields-.patch | 86 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9869 +++++++++++++++++ .../share/python-build/patches/3.14.0t | 1 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9863 ++++++++++++++++ .../share/python-build/patches/3.14.1t | 1 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9863 ++++++++++++++++ .../share/python-build/patches/3.14.2t | 1 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9863 ++++++++++++++++ .../share/python-build/patches/3.14.3t | 1 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9862 ++++++++++++++++ .../share/python-build/patches/3.14.4t | 1 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9862 ++++++++++++++++ .../share/python-build/patches/3.14.5t | 1 + 20 files changed, 59288 insertions(+), 9 deletions(-) create mode 100644 plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0001-3.14-gh-141801-Use-accessors-for-ASN1_STRING-fields-.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0002-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.0t create mode 100644 plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.1t create mode 100644 plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.2t create mode 100644 plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.3t create mode 100644 plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.4t create mode 100644 plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.5t diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b764d4fe12..4575d5f803 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1667,7 +1667,6 @@ use_macports_ncurses() { } prefer_openssl11() { - # Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA @@ -1677,15 +1676,21 @@ prefer_openssl11() { } prefer_openssl3() { - # Allow overriding the preference of OpenSSL version per definition basis (#1302, #1325, #1326) PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@1.1 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA - # Set MacPorts OpenSSL formula names for MacPorts environment PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3 openssl openssl11}" export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA } +prefer_openssl3_to_4() { + PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@4 openssl@1.1 openssl}" + export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA + + PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3 openssl4 openssl openssl11}" + export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA +} + build_package_mac_readline() { # Install to a subdirectory since we don't want shims for bin/readline. READLINE_PREFIX_PATH="${PREFIX_PATH}/readline" diff --git a/plugins/python-build/share/python-build/3.14.0 b/plugins/python-build/share/python-build/3.14.0 index 7cf3e601fc..7cb21adf06 100644 --- a/plugins/python-build/share/python-build/3.14.0 +++ b/plugins/python-build/share/python-build/3.14.0 @@ -1,4 +1,4 @@ -prefer_openssl3 +prefer_openssl3_to_4 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 diff --git a/plugins/python-build/share/python-build/3.14.1 b/plugins/python-build/share/python-build/3.14.1 index f485b49924..edfe39acda 100644 --- a/plugins/python-build/share/python-build/3.14.1 +++ b/plugins/python-build/share/python-build/3.14.1 @@ -1,4 +1,4 @@ -prefer_openssl3 +prefer_openssl3_to_4 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 diff --git a/plugins/python-build/share/python-build/3.14.2 b/plugins/python-build/share/python-build/3.14.2 index 75d58a9112..95ca9c992d 100644 --- a/plugins/python-build/share/python-build/3.14.2 +++ b/plugins/python-build/share/python-build/3.14.2 @@ -1,4 +1,4 @@ -prefer_openssl3 +prefer_openssl3_to_4 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 diff --git a/plugins/python-build/share/python-build/3.14.3 b/plugins/python-build/share/python-build/3.14.3 index b50af30f45..71b9495a95 100644 --- a/plugins/python-build/share/python-build/3.14.3 +++ b/plugins/python-build/share/python-build/3.14.3 @@ -1,4 +1,4 @@ -prefer_openssl3 +prefer_openssl3_to_4 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 diff --git a/plugins/python-build/share/python-build/3.14.4 b/plugins/python-build/share/python-build/3.14.4 index b14b009fc6..ac44211e69 100644 --- a/plugins/python-build/share/python-build/3.14.4 +++ b/plugins/python-build/share/python-build/3.14.4 @@ -1,4 +1,4 @@ -prefer_openssl3 +prefer_openssl3_to_4 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 diff --git a/plugins/python-build/share/python-build/3.14.5 b/plugins/python-build/share/python-build/3.14.5 index e8e06e07bc..5469bc5fa0 100644 --- a/plugins/python-build/share/python-build/3.14.5 +++ b/plugins/python-build/share/python-build/3.14.5 @@ -1,4 +1,4 @@ -prefer_openssl3 +prefer_openssl3_to_4 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 diff --git a/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0001-3.14-gh-141801-Use-accessors-for-ASN1_STRING-fields-.patch b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0001-3.14-gh-141801-Use-accessors-for-ASN1_STRING-fields-.patch new file mode 100644 index 0000000000..e9bd020a76 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0001-3.14-gh-141801-Use-accessors-for-ASN1_STRING-fields-.patch @@ -0,0 +1,86 @@ +From b1925a29fb0e8d4a71479a3583afcd95aa2b9235 Mon Sep 17 00:00:00 2001 +From: "Miss Islington (bot)" + <31488909+miss-islington@users.noreply.github.com> +Date: Sat, 22 Nov 2025 19:53:06 +0100 +Subject: [PATCH 1/2] [3.14] gh-141801: Use accessors for ASN1_STRING fields in + libssl (GH-141802) (#141847) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +gh-141801: Use accessors for ASN1_STRING fields in libssl (GH-141802) + +* gh-141801: Use accessors for ASN1_STRING fields + +While ASN1_STRING is currently exposed, it is better to use the +accessors. See https://github.com/openssl/openssl/issues/29117 where, if +the type were opaque, OpenSSL's X509 objects could be much more +memory-efficient. + +* Update Modules/_ssl.c + + + +* Update Modules/_ssl.c + + + +--------- +(cherry picked from commit c41fce08a5d7aae8fd9e3fa25e0ba521600e097c) + +Co-authored-by: David Benjamin +Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> +--- + Modules/_ssl.c | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 21c399123aa..aa7d5d14dfa 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -1406,14 +1406,14 @@ _get_peer_alt_names (_sslmodulestate *state, X509 *certificate) { + } + PyTuple_SET_ITEM(t, 0, v); + +- if (name->d.ip->length == 4) { +- unsigned char *p = name->d.ip->data; ++ if (ASN1_STRING_length(name->d.ip) == 4) { ++ const unsigned char *p = ASN1_STRING_get0_data(name->d.ip); + v = PyUnicode_FromFormat( + "%d.%d.%d.%d", + p[0], p[1], p[2], p[3] + ); +- } else if (name->d.ip->length == 16) { +- unsigned char *p = name->d.ip->data; ++ } else if (ASN1_STRING_length(name->d.ip) == 16) { ++ const unsigned char *p = ASN1_STRING_get0_data(name->d.ip); + v = PyUnicode_FromFormat( + "%X:%X:%X:%X:%X:%X:%X:%X", + p[0] << 8 | p[1], +@@ -1544,8 +1544,9 @@ _get_aia_uri(X509 *certificate, int nid) { + continue; + } + uri = ad->location->d.uniformResourceIdentifier; +- ostr = PyUnicode_FromStringAndSize((char *)uri->data, +- uri->length); ++ ostr = PyUnicode_FromStringAndSize( ++ (const char *)ASN1_STRING_get0_data(uri), ++ ASN1_STRING_length(uri)); + if (ostr == NULL) { + goto fail; + } +@@ -1611,8 +1612,9 @@ _get_crl_dp(X509 *certificate) { + continue; + } + uri = gn->d.uniformResourceIdentifier; +- ouri = PyUnicode_FromStringAndSize((char *)uri->data, +- uri->length); ++ ouri = PyUnicode_FromStringAndSize( ++ (const char *)ASN1_STRING_get0_data(uri), ++ ASN1_STRING_length(uri)); + if (ouri == NULL) + goto done; + +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0002-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0002-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..6c992f684f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0002-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9869 @@ +From c59dc2087bdceb5adb99a078cad0299cd4859b4f Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH 2/2] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 137 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 8 files changed, 9556 insertions(+), 36 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index 3dbe8fc8cdb..dda63d3a745 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -329,7 +329,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -520,11 +520,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -590,12 +590,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1085,7 +1087,13 @@ def test_min_max_version(self): + ctx.maximum_version = ssl.TLSVersion.MINIMUM_SUPPORTED + self.assertIn( + ctx.maximum_version, +- {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.SSLv3} ++ { ++ ssl.TLSVersion.TLSv1, ++ ssl.TLSVersion.TLSv1_1, ++ ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, ++ ssl.TLSVersion.SSLv3, ++ } + ) + + ctx.minimum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED +@@ -1097,7 +1105,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1530,23 +1538,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2540,6 +2549,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3409,10 +3448,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4261,7 +4300,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4538,6 +4579,50 @@ def server_callback(identity): + with client_context.wrap_socket(socket.socket()) as s: + s.connect((HOST, server.port)) + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index aa7d5d14dfa..e7ea792b5e8 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -121,8 +121,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -134,6 +136,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -336,6 +349,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -483,6 +506,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -638,6 +665,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -885,6 +924,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1025,6 +1065,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1129,7 +1174,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1158,16 +1203,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2485,6 +2530,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2623,6 +2673,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6489,9 +6544,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index ab9840c1c52..edf1264c8a1 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -53,6 +53,7 @@ + "3.3.5", + "3.4.3", + "3.5.4", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -413,9 +414,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -431,6 +434,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.0t b/plugins/python-build/share/python-build/patches/3.14.0t new file mode 120000 index 0000000000..12566ed7f9 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.0t @@ -0,0 +1 @@ +3.14.0 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..06d80e9866 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9863 @@ +From 9b64eebb5c00c7d881ecaa7b9e8f79e7bed2ecd5 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 131 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 9 files changed, 9551 insertions(+), 37 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index effa1da55d3..76c292aed2f 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -329,7 +329,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -520,11 +520,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -590,12 +590,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1085,7 +1087,7 @@ def test_min_max_version(self): + ctx.maximum_version = ssl.TLSVersion.MINIMUM_SUPPORTED + self.assertIn( + ctx.maximum_version, +- {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.SSLv3} ++ {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.TLSv1_2, ssl.TLSVersion.TLSv1_3, ssl.TLSVersion.SSLv3} + ) + + ctx.minimum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED +@@ -1097,7 +1099,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1549,23 +1551,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2559,6 +2562,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3428,10 +3461,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4280,7 +4313,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4593,6 +4628,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 417d5ca5931..01e054789df 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -121,8 +121,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -134,6 +136,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -339,6 +352,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -486,6 +509,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -641,6 +668,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -888,6 +927,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1028,6 +1068,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1133,7 +1178,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1162,16 +1207,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2490,6 +2535,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2630,6 +2680,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6504,9 +6559,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index ab9840c1c52..edf1264c8a1 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -53,6 +53,7 @@ + "3.3.5", + "3.4.3", + "3.5.4", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -413,9 +414,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -431,6 +434,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.1t b/plugins/python-build/share/python-build/patches/3.14.1t new file mode 120000 index 0000000000..5d737ca0ed --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.1t @@ -0,0 +1 @@ +3.14.1 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..440e1d3c0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9863 @@ +From af6764c79ad38a73030c29f4ac02d9609885b231 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 131 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 9 files changed, 9551 insertions(+), 37 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index effa1da55d3..76c292aed2f 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -329,7 +329,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -520,11 +520,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -590,12 +590,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1085,7 +1087,7 @@ def test_min_max_version(self): + ctx.maximum_version = ssl.TLSVersion.MINIMUM_SUPPORTED + self.assertIn( + ctx.maximum_version, +- {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.SSLv3} ++ {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.TLSv1_2, ssl.TLSVersion.TLSv1_3, ssl.TLSVersion.SSLv3} + ) + + ctx.minimum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED +@@ -1097,7 +1099,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1549,23 +1551,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2559,6 +2562,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3428,10 +3461,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4280,7 +4313,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4593,6 +4628,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 417d5ca5931..01e054789df 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -121,8 +121,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -134,6 +136,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -339,6 +352,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -486,6 +509,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -641,6 +668,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -888,6 +927,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1028,6 +1068,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1133,7 +1178,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1162,16 +1207,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2490,6 +2535,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2630,6 +2680,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6504,9 +6559,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index ab9840c1c52..edf1264c8a1 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -53,6 +53,7 @@ + "3.3.5", + "3.4.3", + "3.5.4", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -413,9 +414,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -431,6 +434,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.2t b/plugins/python-build/share/python-build/patches/3.14.2t new file mode 120000 index 0000000000..c47b34584b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.2t @@ -0,0 +1 @@ +3.14.2 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..c72cf402b0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9863 @@ +From 9f86304d9b0dee8c938d3ce45b80d4ebadd2a73b Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 131 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 9 files changed, 9551 insertions(+), 37 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index 67a63907293..986f244e96b 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -329,7 +329,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -520,11 +520,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -590,12 +590,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1085,7 +1087,7 @@ def test_min_max_version(self): + ctx.maximum_version = ssl.TLSVersion.MINIMUM_SUPPORTED + self.assertIn( + ctx.maximum_version, +- {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.SSLv3} ++ {ssl.TLSVersion.TLSv1, ssl.TLSVersion.TLSv1_1, ssl.TLSVersion.TLSv1_2, ssl.TLSVersion.TLSv1_3, ssl.TLSVersion.SSLv3} + ) + + ctx.minimum_version = ssl.TLSVersion.MAXIMUM_SUPPORTED +@@ -1097,7 +1099,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1549,23 +1551,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2559,6 +2562,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3428,10 +3461,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4280,7 +4313,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4593,6 +4628,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 417d5ca5931..01e054789df 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -121,8 +121,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -134,6 +136,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -339,6 +352,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -486,6 +509,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -641,6 +668,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -888,6 +927,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1028,6 +1068,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1133,7 +1178,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1162,16 +1207,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2490,6 +2535,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2630,6 +2680,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6504,9 +6559,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index ab9840c1c52..edf1264c8a1 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -53,6 +53,7 @@ + "3.3.5", + "3.4.3", + "3.5.4", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -413,9 +414,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -431,6 +434,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.3t b/plugins/python-build/share/python-build/patches/3.14.3t new file mode 120000 index 0000000000..1019cd9c73 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.3t @@ -0,0 +1 @@ +3.14.3 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..52a81d8a3a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9862 @@ +From 6d6f90b5c67b9eb0446fc94633e2324672fe0762 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 130 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 9 files changed, 9551 insertions(+), 35 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index b0c6eca2091..0922bd0f5fa 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -396,7 +396,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -587,11 +587,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -657,12 +657,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1156,6 +1158,7 @@ def test_min_max_version(self): + ssl.TLSVersion.TLSv1, + ssl.TLSVersion.TLSv1_1, + ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, + ssl.TLSVersion.SSLv3, + } + ) +@@ -1169,7 +1172,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1664,23 +1667,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2707,6 +2711,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3576,10 +3610,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4428,7 +4462,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4741,6 +4777,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 1235eff72f7..376df32b7cb 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -121,8 +121,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -134,6 +136,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -339,6 +352,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -486,6 +509,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -641,6 +668,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -888,6 +927,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1028,6 +1068,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1133,7 +1178,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1162,16 +1207,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2491,6 +2536,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2631,6 +2681,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6506,9 +6561,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index 86baf8a3a74..f4185456b85 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -54,6 +54,7 @@ + "3.4.4", + "3.5.5", + "3.6.1", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -414,9 +415,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -432,6 +435,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.4t b/plugins/python-build/share/python-build/patches/3.14.4t new file mode 120000 index 0000000000..c4f2bbc916 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.4t @@ -0,0 +1 @@ +3.14.4 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..170db856d0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9862 @@ +From 7b4d175d3325b4904efb8ea18fb7022cc23583a2 Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 130 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 9 files changed, 9551 insertions(+), 35 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index 10615365a27..6445f122b42 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -396,7 +396,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -587,11 +587,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -657,12 +657,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1156,6 +1158,7 @@ def test_min_max_version(self): + ssl.TLSVersion.TLSv1, + ssl.TLSVersion.TLSv1_1, + ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, + ssl.TLSVersion.SSLv3, + } + ) +@@ -1169,7 +1172,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1664,23 +1667,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2707,6 +2711,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3576,10 +3610,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4428,7 +4462,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4741,6 +4777,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 1235eff72f7..376df32b7cb 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -121,8 +121,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -134,6 +136,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -339,6 +352,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -486,6 +509,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -641,6 +668,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -888,6 +927,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1028,6 +1068,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1133,7 +1178,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1162,16 +1207,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2491,6 +2536,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2631,6 +2681,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6506,9 +6561,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index 85a8cd38f41..3c956ebbba7 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -54,6 +54,7 @@ + "3.4.5", + "3.5.6", + "3.6.2", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -414,9 +415,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -432,6 +435,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.5t b/plugins/python-build/share/python-build/patches/3.14.5t new file mode 120000 index 0000000000..0b33882dfb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.5t @@ -0,0 +1 @@ +3.14.5 \ No newline at end of file From bfc595b0a0df31d170fbf09e9cf2547b42f48425 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 30 May 2026 20:38:00 +0300 Subject: [PATCH 1165/1324] CI: trigger rebuilds for t, too, if a patch for is changed --- .github/workflows/modified_scripts_build.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index e0285e661e..78d144c984 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -14,8 +14,11 @@ jobs: run: > versions=$(git diff "origin/$GITHUB_BASE_REF" --name-only -z | perl -ne 'BEGIN {$\="\n";$/="\0";} chomp; - if (/^plugins\/python-build\/share\/python-build\/(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) - { print $1.$2; }' \ + if (/^(plugins\/python-build\/share\/python-build\/)(?:([^\/]+)|patches\/([^\/]+)\/.*)$/ and -e $& ) + { + print $2.$3; + if ( -e $1.$2.$3.t ) { print $2.$3.t; } + }' \ | sort -u); EOF=$(dd if=/dev/urandom bs=15 count=1 status=none | base64); echo "versions<<$EOF" >> $GITHUB_ENV; From 29057a6c6954a5b132b6a7412dd2698e4ce3e3c3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 31 May 2026 06:19:18 +0300 Subject: [PATCH 1166/1324] 2.6.32 --- CHANGELOG.md | 14 ++++++++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc3f724f53..428e73f123 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Version History +## Release v2.6.32 +* Add miniconda3 26.3.2-2, miniforge3 26.3.2-0, 26.3.2-1 by @native-api in https://github.com/pyenv/pyenv/pull/3445 +* miniforge3 26.1, 26.3, add_miniforge: exclude .pkg installers by @native-api in https://github.com/pyenv/pyenv/pull/3446 +* miniforge 26, CI: switch check to 3.13 by @native-api in https://github.com/pyenv/pyenv/pull/3447 +* 2.7, 3.4: force C99 standard; 2.7.14-18: force OpenSSL 1 formula by @native-api in https://github.com/pyenv/pyenv/pull/3448 +* rehash: detect and remove a stale lockfile by @native-api in https://github.com/pyenv/pyenv/pull/3450 +* Add GraalPy 25.0.3 by @msimacek in https://github.com/pyenv/pyenv/pull/3452 +* 3.11.0+: Use the `--with-openssl-rpath' Configure option when possible by @native-api in https://github.com/pyenv/pyenv/pull/3458 +* python_build: Make `verify_python` verify `pythonX.Y' suffix by @native-api in https://github.com/pyenv/pyenv/pull/3459 +* Add micropython 1.22.0 to 1.28.0; add downstream patches to fix compilation errors by @native-api in https://github.com/pyenv/pyenv/pull/3460 +* Fix linking against a keg_only Homebrew OpenSSL when a a non-keg_only one is also installed by @native-api in https://github.com/pyenv/pyenv/pull/3462 +* Add missing CPython 3.14.2t by @native-api in https://github.com/pyenv/pyenv/pull/3464 +* 3.14.0-5: Support building against OpenSSL 4 by @native-api in https://github.com/pyenv/pyenv/pull/3463 + ## Release v2.6.31 * CI: add_cpython: Support prereleases for non-initial CPython releases by @native-api in https://github.com/pyenv/pyenv/pull/3443 * Add CPython 3.14.5 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3444 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f9bd180d00..6ae45e8dcd 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.31" +version="2.6.32" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4575d5f803..c8cde670bc 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.31" +PYTHON_BUILD_VERSION="2.6.32" OLDIFS="$IFS" From 95ddd7d479df6e412a414c383757819147019be9 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 2 Jun 2026 10:29:59 +0300 Subject: [PATCH 1167/1324] Support 3.9 EOL Pip URL, consolidate tests (#3465) --- plugins/python-build/bin/python-build | 3 + plugins/python-build/test/pyenv_ext.bats | 110 +++++++---------------- 2 files changed, 36 insertions(+), 77 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c8cde670bc..740a29708e 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2702,6 +2702,9 @@ if [ -z "${GET_PIP_URL}" ]; then 3.8 | 3.8.* | pypy3.8 | pypy3.8-* | pyston* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/3.8/get-pip.py" ;; + 3.9 | 3.9.* | pypy3.9 | pypy3.9-* ) + GET_PIP_URL="https://bootstrap.pypa.io/pip/3.9/get-pip.py" + ;; * ) GET_PIP_URL="https://bootstrap.pypa.io/get-pip.py" ;; diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index aa0bbcb41d..dd99ac56c4 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -388,82 +388,38 @@ OUT assert_success } -@test "use the custom GET_PIP_URL for 2.6 versions" { - run_inline_definition_with_name --name=2.6 < Date: Tue, 2 Jun 2026 13:16:51 +0300 Subject: [PATCH 1168/1324] Update URLs for PyPy nightly; Remove pypy3.5 and pypy3.7 nightly (#3466) pypy3.5-c-jit-latest and pypy3.7-c-jit-latest are no longer available --- plugins/python-build/bin/python-build | 2 +- .../share/python-build/pypy-c-jit-latest | 27 ++++------ .../share/python-build/pypy3.5-c-jit-latest | 49 ------------------- .../share/python-build/pypy3.7-c-jit-latest | 39 --------------- plugins/python-build/test/pyenv_ext.bats | 1 + 5 files changed, 11 insertions(+), 107 deletions(-) delete mode 100644 plugins/python-build/share/python-build/pypy3.5-c-jit-latest delete mode 100644 plugins/python-build/share/python-build/pypy3.7-c-jit-latest diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 740a29708e..589d3ebfd3 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2678,7 +2678,7 @@ if [ -z "${GET_PIP_URL}" ]; then 2.6 | 2.6.* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/2.6/get-pip.py" ;; - 2.7 | 2.7.* | pypy2.7 | pypy2.7-* ) + 2.7 | 2.7.* | pypy2.7 | pypy2.7-* | pypy-c-jit-* ) GET_PIP_URL="https://bootstrap.pypa.io/pip/2.7/get-pip.py" ;; 3.2 | 3.2.* ) diff --git a/plugins/python-build/share/python-build/pypy-c-jit-latest b/plugins/python-build/share/python-build/pypy-c-jit-latest index 1f8ebf12b3..4ba354ac41 100644 --- a/plugins/python-build/share/python-build/pypy-c-jit-latest +++ b/plugins/python-build/share/python-build/pypy-c-jit-latest @@ -1,30 +1,21 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - install_nightly_package "pypy-c-jit-latest-linux" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip + install_nightly_package "pypy-c-jit-latest-linux" "https://buildbot.pypy.org/nightly/main/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip_lt21 ;; -"linux-armel" ) - install_nightly_package "pypy-c-jit-latest-linux-armel" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux-armel.tar.bz2" "pypy-c-jit-*-linux-armel" "pypy" verify_py27 ensurepip +"linux64" ) + install_nightly_package "pypy-c-jit-latest-linux64" "https://buildbot.pypy.org/nightly/main/pypy-c-jit-latest-linux64.tar.bz2" "pypy-c-jit-*-linux64" "pypy" verify_py27 ensurepip_lt21 ;; -"linux-armhf" ) - if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_nightly_package "pypy-c-jit-latest-linux-armhf-raspbian" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux-armhf-raspbian.tar.bz2" "pypy-c-jit-*-linux-armhf-raspbian" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo - } >&2 - exit 1 - fi +"linux-aarch64" ) + install_nightly_package "pypy-c-jit-latest-aarch64" "https://buildbot.pypy.org/nightly/main/pypy-c-jit-latest-aarch64.tar.bz2" "pypy-c-jit-*-aarch64" "pypy" verify_py27 ensurepip_lt21 ;; -"linux64" ) - install_nightly_package "pypy-c-jit-latest-linux64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-linux64.tar.bz2" "pypy-c-jit-*-linux64" "pypy" verify_py27 ensurepip +"osarm64" ) + install_nightly_package "pypy-c-jit-latest-macos_arm64" "https://buildbot.pypy.org/nightly/main/pypy-c-jit-latest-macos_arm64.tar.bz2" "pypy-c-jit-*-macos_arm64" "pypy" verify_py27 ensurepip_lt21 ;; "osx64" ) - install_nightly_package "pypy-c-jit-latest-osx64" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip + install_nightly_package "pypy-c-jit-latest-macos_x86_64" "https://buildbot.pypy.org/nightly/main/pypy-c-jit-latest-macos_x86_64.tar.bz2" "pypy-c-jit-*-macos_x86_64" "pypy" verify_py27 ensurepip_lt21 ;; "win32" ) - install_zip "pypy-c-jit-latest-win32" "http://buildbot.pypy.org/nightly/trunk/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip + install_zip "pypy-c-jit-latest-win32" "https://buildbot.pypy.org/nightly/main/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip_lt21 ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-c-jit-latest b/plugins/python-build/share/python-build/pypy3.5-c-jit-latest deleted file mode 100644 index 538acbf14a..0000000000 --- a/plugins/python-build/share/python-build/pypy3.5-c-jit-latest +++ /dev/null @@ -1,49 +0,0 @@ -echo -colorize 1 "WARNING" -echo ": This may eat your kittens/ affect timespace in alternate dimensions/" -echo "cause you to complain more. Nightly builds are meant for testing only." -echo -echo "To report bugs/regressions, please see:" -echo -echo "http://doc.pypy.org/en/latest/faq.html#how-should-i-report-a-bug" -echo - -case "$(pypy_architecture 2>/dev/null || true)" in -"linux" ) - install_nightly_package "pypy-c-jit-latest-linux" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip - ;; -"linux-armel" ) - install_nightly_package "pypy-c-jit-latest-linux-armel" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armel.tar.bz2" "pypy-c-jit-*-linux-armel" "pypy" verify_py27 ensurepip - ;; -"linux-armhf" ) - if [[ "$(cat /etc/issue 2>/dev/null || true)" == "Raspbian"* ]]; then - install_nightly_package "pypy-c-jit-latest-linux-armhf-raspbian" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux-armhf-raspbian.tar.bz2" "pypy-c-jit-*-linux-armhf-raspbian" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The latest nightly build of PyPy 3.5 is not available for $(pypy_architecture 2>/dev/null || true)," - echo "Please check http://buildbot.pypy.org/nightly/py3.5/ for previous builds." - echo - } >&2 - exit 1 - fi - ;; -"linux64" ) - install_nightly_package "pypy3.5-c-jit-latest-linux64" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-linux64.tar.bz2" "pypy-c-jit-*-linux64" "pypy" verify_py35 ensurepip - ;; -"osx64" ) - install_nightly_package "pypy-c-jit-latest-osx64" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip - ;; -"win32" ) - install_zip "pypy-c-jit-latest-win32" "http://buildbot.pypy.org/nightly/py3.5/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The latest nightly build of PyPy 3.5 is not available for $(pypy_architecture 2>/dev/null || true)," - echo "Please check http://buildbot.pypy.org/nightly/py3.5/ for previous builds." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/share/python-build/pypy3.7-c-jit-latest b/plugins/python-build/share/python-build/pypy3.7-c-jit-latest deleted file mode 100644 index e1e7fe6399..0000000000 --- a/plugins/python-build/share/python-build/pypy3.7-c-jit-latest +++ /dev/null @@ -1,39 +0,0 @@ -echo -colorize 1 "WARNING" -echo ": This may eat your kittens/ affect timespace in alternate dimensions/" -echo "cause you to complain more. Nightly builds are meant for testing only." -echo "Current pypy py3.7 development status:" -echo -echo "https://foss.heptapod.net/pypy/pypy/-/wikis/py3.7%20status" -echo -echo "for the latest status updates. To report bugs/regressions, please see:" -echo -echo "https://doc.pypy.org/en/latest/faq.html#how-should-i-report-a-bug" -echo - -case "$(pypy_architecture 2>/dev/null || true)" in -"linux" ) - install_nightly_package "pypy-c-jit-latest-linux" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-linux.tar.bz2" "pypy-c-jit-*-linux" "pypy" verify_py27 ensurepip - ;; -"linux64" ) - install_nightly_package "pypy3.7-c-jit-latest-linux64" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-linux64.tar.bz2" "pypy-c-jit-*-linux64" "pypy" verify_py35 ensurepip - ;; -"linux-aarch64" ) - install_nightly_package "pypy3.7-c-jit-latest-aarch64" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-aarch64.tar.bz2" "pypy-c-jit-*-aarch64" "pypy" verify_py35 ensurepip - ;; -"osx64" ) - install_nightly_package "pypy-c-jit-latest-osx64" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-osx64.tar.bz2" "pypy-c-jit-*-osx64" "pypy" verify_py27 ensurepip - ;; -"win32" ) - install_zip "pypy-c-jit-latest-win32" "https://buildbot.pypy.org/nightly/py3.7/pypy-c-jit-latest-win32.zip" "pypy" verify_py27 ensurepip - ;; -* ) - { echo - colorize 1 "ERROR" - echo ": The latest nightly build of PyPy 3.7 is not available for $(pypy_architecture 2>/dev/null || true)," - echo "Please check https://buildbot.pypy.org/nightly/py3.7/ for previous builds." - echo - } >&2 - exit 1 - ;; -esac diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index dd99ac56c4..09924fc68e 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -403,6 +403,7 @@ OUT 3.9 "pypy2.7-7.3.12 2.7" + "pypy-c-jit-latest-linux 2.7" "pypy3.5-7.0.0 3.5" "pypy3.6-7.3.3 3.6" "pypy3.7-7.3.3 3.7" From efc77132f742742e0e653a35b58a40a5b4cbe58c Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 3 Jun 2026 00:55:40 +0300 Subject: [PATCH 1169/1324] Add CPython 3.15.0b2 (#3467) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.15.0b1 | 11 ----------- plugins/python-build/share/python-build/3.15.0b2 | 11 +++++++++++ .../share/python-build/{3.15.0b1t => 3.15.0b2t} | 0 3 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.15.0b1 create mode 100644 plugins/python-build/share/python-build/3.15.0b2 rename plugins/python-build/share/python-build/{3.15.0b1t => 3.15.0b2t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0b1 b/plugins/python-build/share/python-build/3.15.0b1 deleted file mode 100644 index 13e6cd8a8f..0000000000 --- a/plugins/python-build/share/python-build/3.15.0b1 +++ /dev/null @@ -1,11 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-3.6.2" "https://github.com/openssl/openssl/releases/download/openssl-3.6.2/openssl-3.6.2.tar.gz#aaf51a1fe064384f811daeaeb4ec4dce7340ec8bd893027eee676af31e83a04f" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.15.0b1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b1.tar.xz#d4d52ccfa1d727ef5235fbb7d70fa1dbacf10b8b3760db622875da05acbe437c" standard verify_py315 copy_python_gdb ensurepip -else - install_package "Python-3.15.0b1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b1.tgz#9b41271890067875db7f0f5cb2fdcb944b90c473f272a18a13b93c059d84c68e" standard verify_py315 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0b2 b/plugins/python-build/share/python-build/3.15.0b2 new file mode 100644 index 0000000000..c52bae07d3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0b2 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.0" "https://github.com/openssl/openssl/releases/download/openssl-4.0.0/openssl-4.0.0.tar.gz#c32cf49a959c4f345f9606982dd36e7d28f7c58b19c2e25d75624d2b3d2f79ac" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0b2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b2.tar.xz#d14f474ab679e90bc734b02ff58447b6ec99a821af61d6ff0c1da0f86e341a71" standard verify_py315 copy_python_gdb ensurepip +else + install_package "Python-3.15.0b2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b2.tgz#781f4bcdef48d1d38b335fdc7a156b4e5fe9738b14456121f949257ff5cce77c" standard verify_py315 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0b1t b/plugins/python-build/share/python-build/3.15.0b2t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0b1t rename to plugins/python-build/share/python-build/3.15.0b2t From 455d1a31db86ede452dd74952ab09c7815cf6970 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Wed, 3 Jun 2026 03:43:07 +0530 Subject: [PATCH 1170/1324] init: add --install for shell setup (#3454) --- COMMANDS.md | 4 + README.md | 18 ++++ libexec/pyenv-init | 201 +++++++++++++++++++++++++++++++++++++++------ test/init.bats | 128 +++++++++++++++++++++++++++++ 4 files changed, 326 insertions(+), 25 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 320baaebb4..6d74f4e9c8 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -393,11 +393,15 @@ List existing pyenv shims. Configure the shell environment for pyenv Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [])" + pyenv init --install [] + pyenv init --detect-shell [] - Initialize shims directory, print PYENV_SHELL variable, completions path and shell function --path Print shims path + --install Configure detected shell startup files --no-push-path Do not push shim to the start of PATH if they're already there + --detect-shell Print shell startup files detected for the current shell --no-rehash Add no rehash command to output ## `pyenv completions` diff --git a/README.md b/README.md index f489575af7..942f3e093d 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,24 @@ which does install native Windows Python versions. The below setup should work for the vast majority of users for common use cases. See [Advanced configuration](#advanced-configuration) for details and more configuration options. +If `pyenv` is already on `PATH`, you can configure the relevant shell startup +files automatically: + +```sh +pyenv init --install +``` + +If `pyenv` is not on `PATH` yet, run the same command through the `pyenv` +executable in your chosen installation directory. + +This uses the same shell detection as `pyenv init`. If a startup file already +contains Pyenv-related configuration, the command refuses to edit it; review the +file manually and run `pyenv init ` to see the suggested setup. + +For Bash, avoid the automatic `--install` path if your `BASH_ENV` points to +`.bashrc`; use the manual Bash instructions below so the `eval "$(pyenv init - bash)"` +line only goes in your login startup file. + #### Bash
diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 36fbf9602a..b45181fab8 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -1,6 +1,8 @@ #!/usr/bin/env bash # Summary: Configure the shell environment for pyenv -# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--detect-shell] [--no-rehash] [])" +# Usage: eval "$(pyenv init [-|--path] [--no-push-path] [--no-rehash] [])" +# pyenv init --install [] +# pyenv init --detect-shell [] set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -9,6 +11,7 @@ set -e if [ "$1" = "--complete" ]; then echo - echo --path + echo --install echo --no-push-path echo --no-rehash echo --detect-shell @@ -30,6 +33,9 @@ while [ "$#" -gt 0 ]; do --path) mode="path" ;; + --install) + mode="install" + ;; --detect-shell) mode="detect-shell" ;; @@ -81,21 +87,23 @@ function main() { exit 0 ;; "detect-shell") - detect_profile 1 + detect_profile print_detect_shell exit 0 ;; + "install") + install_shell_startup_files + exit 0 + ;; esac # should never get here exit 2 } function detect_profile() { - local detect_for_detect_shell="$1" - case "$shell" in bash ) - if [ -e '~/.bash_profile' ]; then + if [ -e "${HOME}/.bash_profile" ]; then profile='~/.bash_profile' else profile='~/.profile' @@ -103,6 +111,10 @@ function detect_profile() { profile_explain="~/.bash_profile if it exists, otherwise ~/.profile" rc='~/.bashrc' ;; + fish ) + profile='~/.config/fish/config.fish' + rc='~/.config/fish/config.fish' + ;; pwsh ) profile='~/.config/powershell/profile.ps1' rc='~/.config/powershell/profile.ps1' @@ -121,13 +133,10 @@ function detect_profile() { rc='~/.profile' ;; * ) - if [ -n "$detect_for_detect_shell" ]; then - profile= - rc= - else - profile='your shell'\''s login startup file' - rc='your shell'\''s interactive startup file' - fi + profile= + rc= + profile_explain='your shell'\''s login startup file' + rc_explain='your shell'\''s interactive startup file' ;; esac } @@ -146,38 +155,32 @@ function help_() { echo "# Add pyenv executable to PATH by running" echo "# the following interactively:" echo - echo 'set -Ux PYENV_ROOT $HOME/.pyenv' - echo 'set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths' + print_fish_user_path_setup echo echo "# Load pyenv automatically by appending" echo "# the following to ~/.config/fish/config.fish:" echo - echo 'pyenv init - fish | source' + print_fish_shell_setup echo ;; pwsh ) echo '# Load pyenv automatically by appending' echo "# the following to $profile :" echo - echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' - echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) {' - echo ' $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' - echo 'iex ((pyenv init -) -join "`n")' + print_pwsh_shell_setup ;; * ) echo '# Load pyenv automatically by appending' echo -n "# the following to " - if [ "$profile" == "$rc" ]; then - echo "$profile :" + if [[ "$profile" == "$rc" && -z $rc_explain ]]; then + echo "${profile_explain:-$profile} :" else echo echo "# ${profile_explain:-$profile} (for login shells)" - echo "# and $rc (for interactive shells) :" + echo "# and ${rc_explain:-$rc} (for interactive shells) :" fi echo - echo 'export PYENV_ROOT="$HOME/.pyenv"' - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' - echo 'eval "$(pyenv init - '$shell')"' + print_posix_shell_setup ;; esac echo @@ -186,6 +189,154 @@ function help_() { } >&2 } +function print_posix_shell_setup() { + echo 'export PYENV_ROOT="$HOME/.pyenv"' + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' + echo 'eval "$(pyenv init - '$shell')"' +} + +function print_fish_shell_setup() { + echo 'pyenv init - fish | source' +} + +function print_fish_user_path_setup() { + echo 'set -Ux PYENV_ROOT $HOME/.pyenv' + echo 'if functions -q fish_add_path' + echo ' test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin' + echo 'else' + echo ' test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths' + echo 'end' +} + +function print_pwsh_shell_setup() { + echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' + echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) {' + echo ' $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' + echo 'iex ((pyenv init -) -join "`n")' +} + +function expand_home_path() { + local path="$1" + printf '%s\n' "${path/#\~/$HOME}" +} + +function install_shell_startup_files() { + if [[ -z $HOME ]]; then + echo "pyenv: HOME must be set to configure shell startup files" >&2 + return 1 + fi + + detect_profile + + local files=() + local lines=() + local profile_path rc_path setup + + case "$shell" in + bash | zsh | ksh | ksh93 | mksh ) + rc_path="$(expand_home_path "$rc")" + profile_path="$(expand_home_path "$profile")" + setup="$(print_posix_shell_setup)" + files=("$rc_path") + lines=("$setup") + if [[ $profile_path != "$rc_path" ]]; then + files+=("$profile_path") + lines+=("$setup") + fi + ;; + fish ) + rc_path="$(expand_home_path "$rc")" + files=("$rc_path") + lines=("$(print_fish_shell_setup)") + ;; + pwsh ) + rc_path="$(expand_home_path "$rc")" + files=("$rc_path") + lines=("$(print_pwsh_shell_setup)") + ;; + * ) + echo "pyenv: cannot automatically configure startup files for $shell" >&2 + return 1 + ;; + esac + + local index + for ((index = 0; index < ${#files[@]}; index++)); do + check_startup_file "${files[$index]}" || return 1 + done + + if [[ $shell == fish ]]; then + install_fish_user_paths || return 1 + fi + + for ((index = 0; index < ${#files[@]}; index++)); do + append_lines "${files[$index]}" "${lines[$index]}" + done +} + +function check_startup_file() { + local file="$1" + local grep_status + + if [[ ! -e $file ]]; then + return 0 + fi + + if [[ ! -f $file || ! -r $file ]]; then + echo "pyenv: failed to inspect $file" >&2 + return 1 + fi + + if grep -Fi pyenv "$file" >/dev/null; then + echo "pyenv: cannot automatically apply changes to $file: it appears to already contain Pyenv-related code." >&2 + echo "pyenv: review the file's contents and apply changes manually if necessary." >&2 + echo "pyenv: run \`pyenv init $shell\` to see the suggested setup." >&2 + return 1 + else + grep_status=$? + if [[ $grep_status == 1 ]]; then + return 0 + fi + echo "pyenv: failed to inspect $file" >&2 + return "$grep_status" + fi +} + +function install_fish_user_paths() { + local fish_setup + + if ! command -v fish >/dev/null; then + echo "pyenv: fish is not available to configure fish universal variables" >&2 + return 1 + fi + + fish_setup="$(print_fish_user_path_setup)" + if ! fish -c "$fish_setup"; then + echo "pyenv: failed to configure fish universal variables" >&2 + return 1 + fi +} + +function append_lines() { + local file="$1" + local lines="$2" + local dir last_char + + dir="${file%/*}" + if [[ $dir != "$file" ]]; then + mkdir -p "$dir" + fi + + if [[ -s $file ]]; then + last_char="$(tail -c 1 "$file")" || return 1 + if [[ -n $last_char ]]; then + echo >> "$file" + fi + fi + + printf '%s\n' "$lines" >> "$file" +} + function init_dirs() { mkdir -p "${PYENV_ROOT}/"{shims,versions} } diff --git a/test/init.bats b/test/init.bats index 2ecd616902..cb1ef20d40 100755 --- a/test/init.bats +++ b/test/init.bats @@ -79,6 +79,134 @@ OUT assert_line "PYENV_SHELL_DETECT=bash" } +@test "shell detection for fish startup file" { + run pyenv-init --detect-shell fish + assert_success + assert_line "PYENV_SHELL_DETECT=fish" + assert_line "PYENV_PROFILE_DETECT=~/.config/fish/config.fish" + assert_line "PYENV_RC_DETECT=~/.config/fish/config.fish" +} + +@test "completion includes install option" { + run pyenv-init --complete + assert_success + assert_line "--install" +} + +@test "install setup for detected shell startup files" { + mkdir -p "$HOME" + + run pyenv-init --install + assert_success + + expected_setup=$'export PYENV_ROOT="$HOME/.pyenv"\n[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"\neval "$(pyenv init - bash)"' + assert_equal "$expected_setup" "$(cat "$HOME/.bashrc")" + assert_equal "$expected_setup" "$(cat "$HOME/.profile")" +} + +@test "install setup for bash uses existing bash_profile" { + mkdir -p "$HOME" + touch "$HOME/.bash_profile" + + run pyenv-init --install bash + assert_success + + expected_setup=$'export PYENV_ROOT="$HOME/.pyenv"\n[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"\neval "$(pyenv init - bash)"' + assert_equal "$expected_setup" "$(cat "$HOME/.bashrc")" + assert_equal "$expected_setup" "$(cat "$HOME/.bash_profile")" + assert [ ! -e "$HOME/.profile" ] +} + +@test "install setup for zsh startup files" { + mkdir -p "$HOME" + + run pyenv-init --install zsh + assert_success + + expected_setup=$'export PYENV_ROOT="$HOME/.pyenv"\n[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"\neval "$(pyenv init - zsh)"' + assert_equal "$expected_setup" "$(cat "$HOME/.zshrc")" + assert_equal "$expected_setup" "$(cat "$HOME/.zprofile")" +} + +@test "install setup for fish startup file" { + mkdir -p "$HOME" + create_stub fish < "$PYENV_TEST_DIR/fish-script" +OUT + + run pyenv-init --install fish + assert_success + + expected_fish_script=$'set -Ux PYENV_ROOT $HOME/.pyenv\nif functions -q fish_add_path\n test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin\nelse\n test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths\nend' + expected_setup='pyenv init - fish | source' + assert_equal "$expected_fish_script" "$(cat "$PYENV_TEST_DIR/fish-script")" + assert_equal "$expected_setup" "$(cat "$HOME/.config/fish/config.fish")" +} + +@test "install setup for pwsh startup file" { + mkdir -p "$HOME" + + run pyenv-init --install pwsh + assert_success + + expected_setup=$'$Env:PYENV_ROOT="$Env:HOME/.pyenv"\nif (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) {\n $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }\niex ((pyenv init -) -join "`n")' + assert_equal "$expected_setup" "$(cat "$HOME/.config/powershell/profile.ps1")" +} + +@test "install refuses to modify files with pyenv-related code" { + mkdir -p "$HOME" + echo 'eval "$(pyenv init -)"' > "$HOME/.bashrc" + + run pyenv-init --install bash + assert_failure + assert_line "pyenv: cannot automatically apply changes to $HOME/.bashrc: it appears to already contain Pyenv-related code." + assert_line "pyenv: review the file's contents and apply changes manually if necessary." + assert_line "pyenv: run \`pyenv init bash\` to see the suggested setup." + + assert_equal 'eval "$(pyenv init -)"' "$(cat "$HOME/.bashrc")" + assert [ ! -e "$HOME/.profile" ] +} + +@test "install treats PYENV_ROOT as pyenv-related code" { + mkdir -p "$HOME" + echo 'export PYENV_ROOT="$HOME/tools/python-env"' > "$HOME/.bashrc" + + run pyenv-init --install bash + assert_failure + assert_line "pyenv: cannot automatically apply changes to $HOME/.bashrc: it appears to already contain Pyenv-related code." +} + +@test "install refuses unreadable startup file without partial writes" { + mkdir -p "$HOME/.bashrc" + + run pyenv-init --install bash + assert_failure + assert_line "pyenv: failed to inspect $HOME/.bashrc" + + assert [ ! -e "$HOME/.profile" ] +} + +@test "install setup keeps fish block intact when generic lines already exist" { + mkdir -p "$HOME/.config/fish" + create_stub fish < "$HOME/.config/fish/config.fish" + + run pyenv-init --install fish + assert_success + + expected_setup=$'end\npyenv init - fish | source' + assert_equal "$expected_setup" "$(cat "$HOME/.config/fish/config.fish")" +} + +@test "install setup fails gracefully for unsupported shell" { + mkdir -p "$HOME" + + run pyenv-init --install nu + assert_failure "pyenv: cannot automatically configure startup files for nu" +} + @test "option to skip rehash" { run pyenv-init - --no-rehash assert_success From c12fd3ae6bf8b6846a2aa7e554b2411b27894d4e Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 3 Jun 2026 08:42:53 +0300 Subject: [PATCH 1171/1324] realpath.c: fix obsolete syntax warning (#3468) --- src/realpath.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/realpath.c b/src/realpath.c index 6c0c9f3c12..686b26caaa 100644 --- a/src/realpath.c +++ b/src/realpath.c @@ -2,8 +2,7 @@ #include #include -int realpath_builtin(list) -WORD_LIST *list; +int realpath_builtin(WORD_LIST *list) { int es; char *realbuf, *p; From 45180928d34ce5adf21931a494881bbf502ef6bd Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 3 Jun 2026 09:09:54 +0300 Subject: [PATCH 1172/1324] 2.7.1 --- CHANGELOG.md | 7 +++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 428e73f123..86bf36526e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Version History +## Release v2.7.1 +* Support 3.9 EOL Pip URL, consolidate tests by @native-api in https://github.com/pyenv/pyenv/pull/3465 +* Update URLs for PyPy nightly; Remove pypy3.5 and pypy3.7 nightly by @native-api in https://github.com/pyenv/pyenv/pull/3466 +* Add CPython 3.15.0b2 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3467 +* init: add --install for shell setup by @macayu17 in https://github.com/pyenv/pyenv/pull/3454 +* realpath.c: fix obsolete syntax warning by @native-api in https://github.com/pyenv/pyenv/pull/3468 + ## Release v2.6.32 * Add miniconda3 26.3.2-2, miniforge3 26.3.2-0, 26.3.2-1 by @native-api in https://github.com/pyenv/pyenv/pull/3445 * miniforge3 26.1, 26.3, add_miniforge: exclude .pkg installers by @native-api in https://github.com/pyenv/pyenv/pull/3446 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 6ae45e8dcd..4e55c39bca 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.6.32" +version="2.7.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 589d3ebfd3..b990168b6f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.6.32" +PYTHON_BUILD_VERSION="2.7.1" OLDIFS="$IFS" From cf6f3c3200eb1d7bb8aea9eeb99cac4b902601ca Mon Sep 17 00:00:00 2001 From: Anup Das <149822306+anupddas@users.noreply.github.com> Date: Fri, 5 Jun 2026 01:06:11 +0530 Subject: [PATCH 1173/1324] fix(rehash): prevent terminal hang caused by stale or sandbox-blocked lock file (#3469) * reduce stale lock TTL to 2 min, check for stale lock before acquiring and each time -- to hold up new shell sessions for as little as possible --------- Co-authored-by: Ivan Pozdeev --- libexec/pyenv-rehash | 41 +++++++++++++++++++++-------------------- test/rehash.bats | 9 ++++----- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 2541310015..12fe09bff8 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -13,15 +13,29 @@ mkdir -p "$SHIM_PATH" declare last_acquire_error acquire_lock() { - # Ensure only one instance of pyenv-rehash is running at a time by - # setting the shell's `noclobber` option and attempting to write to - # the prototype shim file. local ret + # An old lock file is presumed stale. We assume no healthy rehash takes this long. + # The time is picked very small so that a killed rehash holds up new shell sessions + # for as little as possible + find "$PROTOTYPE_SHIM_PATH" -mmin +2 -exec rm -f {} \; 2>/dev/null || true set -o noclobber - # Assuming an old lockfile is stale - # Unknown why this happens for some users but this at least unblocks them last_acquire_error="$( { ( echo -n > "$PROTOTYPE_SHIM_PATH"; ) 2>&1 1>&3 3>&1-; } 3>&1)" \ - || { find "$PROTOTYPE_SHIM_PATH" -mmin +10 -exec rm -f {} \; ; ret=1; } + && trap release_lock EXIT \ + || { + # Linux Landlock and MacOS Seatbelt sandbox subsystems return false information in access(), + # making -w "$SHIM_PATH" not catch the fact that the shims dir is not writable in this case. + # Bash doesn't provide access to errno to check for non-EEXIST error code in `echo >'. + # So check for writablity by trying to write to a different file, + # in a way that taxes the usual use case as little as possible. + if [[ -z $tested_for_other_write_errors ]]; then + ( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm "$t" ) \ + && tested_for_other_write_errors=1 \ + || { echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2 + set +o noclobber + exit 1; } + fi + ret=1 + } set +o noclobber [[ -z "${ret}" ]] } @@ -32,6 +46,7 @@ remove_prototype_shim() { release_lock() { remove_prototype_shim + trap - EXIT } if [ ! -w "$SHIM_PATH" ]; then @@ -45,22 +60,8 @@ PYENV_REHASH_TIMEOUT=${PYENV_REHASH_TIMEOUT:-60} while (( SECONDS <= start + PYENV_REHASH_TIMEOUT )); do if acquire_lock; then acquired=1 - - # If we were able to obtain a lock, register a trap to clean up the - # prototype shim when the process exits. - trap release_lock EXIT - break else - #Landlock sandbox subsystem in the Linux kernel returns false information in access() as of 6.14.0, - # making -w "$SHIM_PATH" not catch the fact that the shims dir is not writable in this case. - #Bash doesn't provide access to errno to check for non-EEXIST error code in acquire_lock. - #So check for writablity by trying to write to a different file, - # in a way that taxes the usual use case as little as possible. - if [[ -z $tested_for_other_write_errors ]]; then - ( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm "$t" ) && tested_for_other_write_errors=1 || - { echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2; break; } - fi # POSIX sleep(1) doesn't provide subsecond precision, but many others do sleep 0.1 2>/dev/null || sleep 1 fi diff --git a/test/rehash.bats b/test/rehash.bats index 779160057c..c1476e6c33 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -38,18 +38,17 @@ pyenv: cannot rehash: couldn't acquire lock ${PYENV_ROOT}/shims/.pyenv-shim for assert_success } -@test "stale lockfile is removed" { +@test "removes stale lockfile" { mkdir -p "${PYENV_ROOT}/shims" - #GNU and BSD `date` support generating relative dates via different syntax - # but BusyBox `date` used in Bash Docker images doesn't + # A portable code to set mtime to "N minutes ago" is long and unwieldy, + # see https://unix.stackexchange.com/questions/806015/portably-set-a-files-time-to-n-minutes-ago + # Using a fixed timestamp far in the past is infinitely simpler and good enough for the test touch -t 200001010000.00 "${PYENV_ROOT}/shims/.pyenv-shim" run pyenv-rehash assert_success "" assert [ ! -e "${PYENV_ROOT}/shims/.pyenv-shim" ] } - - @test "creates shims" { create_alt_executable_in_version "2.7" "python" create_alt_executable_in_version "2.7" "fab" From 6c0c5cfa9619e4a7a90102d8bee6c771c4739836 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 10 Jun 2026 21:56:10 +0300 Subject: [PATCH 1174/1324] Fix verify_* calls in 3.6.x Fixes #3470 --- plugins/python-build/share/python-build/3.6.10 | 4 ++-- plugins/python-build/share/python-build/3.6.11 | 4 ++-- plugins/python-build/share/python-build/3.6.12 | 4 ++-- plugins/python-build/share/python-build/3.6.13 | 4 ++-- plugins/python-build/share/python-build/3.6.7 | 4 ++-- plugins/python-build/share/python-build/3.6.8 | 4 ++-- plugins/python-build/share/python-build/3.6.9 | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/plugins/python-build/share/python-build/3.6.10 b/plugins/python-build/share/python-build/3.6.10 index b391eb05b2..a2d095283a 100644 --- a/plugins/python-build/share/python-build/3.6.10 +++ b/plugins/python-build/share/python-build/3.6.10 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tar.xz#0a833c398ac8cd7c5538f7232d8531afef943c60495c504484f308dac3af40de" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tar.xz#0a833c398ac8cd7c5538f7232d8531afef943c60495c504484f308dac3af40de" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz#7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.10" "https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz#7034dd7cba98d4f94c74f9edd7345bac71c8814c41672c64d9044fa2f96f334d" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.11 b/plugins/python-build/share/python-build/3.6.11 index 1aa47f8fd4..8f9f702886 100644 --- a/plugins/python-build/share/python-build/3.6.11 +++ b/plugins/python-build/share/python-build/3.6.11 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tar.xz#741ebdcbc4e3937a5ff23517dd455ebf7d543ea9fef6f5cf6f46e575d6c4fda4" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tar.xz#741ebdcbc4e3937a5ff23517dd455ebf7d543ea9fef6f5cf6f46e575d6c4fda4" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tgz#96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.11" "https://www.python.org/ftp/python/3.6.11/Python-3.6.11.tgz#96621902f89746fffc22f39749c07da7c2917b232e72352e6837d41850f7b90c" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.12 b/plugins/python-build/share/python-build/3.6.12 index d8c8894e81..f6fdd0161f 100644 --- a/plugins/python-build/share/python-build/3.6.12 +++ b/plugins/python-build/share/python-build/3.6.12 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz#70953a9b5d6891d92e65d184c3512126a15814bee15e1eff2ddcce04334e9a99" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tar.xz#70953a9b5d6891d92e65d184c3512126a15814bee15e1eff2ddcce04334e9a99" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tgz#12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.12" "https://www.python.org/ftp/python/3.6.12/Python-3.6.12.tgz#12dddbe52385a0f702fb8071e12dcc6b3cb2dde07cd8db3ed60e90d90ab78693" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.13 b/plugins/python-build/share/python-build/3.6.13 index 660c180d74..2fb3674026 100644 --- a/plugins/python-build/share/python-build/3.6.13 +++ b/plugins/python-build/share/python-build/3.6.13 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tar.xz#a47a43a53abb42286a2c11965343ff56711b9e64e8d11bf2c6701a4fb8ce1a0f" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tar.xz#a47a43a53abb42286a2c11965343ff56711b9e64e8d11bf2c6701a4fb8ce1a0f" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tgz#614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.13" "https://www.python.org/ftp/python/3.6.13/Python-3.6.13.tgz#614950d3d54f6e78dac651b49c64cfe2ceefea5af3aff3371a9e4b27a53b2669" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.7 b/plugins/python-build/share/python-build/3.6.7 index 97a655eebf..0875499cb1 100644 --- a/plugins/python-build/share/python-build/3.6.7 +++ b/plugins/python-build/share/python-build/3.6.7 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz#81fd1401a9d66533b0a3e9e3f4ea1c7c6702d57d5b90d659f971e6f1b745f77d" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz#81fd1401a9d66533b0a3e9e3f4ea1c7c6702d57d5b90d659f971e6f1b745f77d" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz#b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.7" "https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tgz#b7c36f7ed8f7143b2c46153b7332db2227669f583ea0cce753facf549d1a4239" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.8 b/plugins/python-build/share/python-build/3.6.8 index f0c3036a10..d7ffc94b90 100644 --- a/plugins/python-build/share/python-build/3.6.8 +++ b/plugins/python-build/share/python-build/3.6.8 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz#35446241e995773b1bed7d196f4b624dadcadc8429f26282e756b2fb8a351193" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz#35446241e995773b1bed7d196f4b624dadcadc8429f26282e756b2fb8a351193" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz#7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.8" "https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tgz#7f5b1f08b3b0a595387ef6c64c85b1b13b38abef0dd871835ee923262e4f32f0" standard verify_py36 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.6.9 b/plugins/python-build/share/python-build/3.6.9 index 14954dc1cc..bb882930ce 100644 --- a/plugins/python-build/share/python-build/3.6.9 +++ b/plugins/python-build/share/python-build/3.6.9 @@ -2,7 +2,7 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" 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-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz#5e2f5f554e3f8f7f0296f7e73d8600c4e9acbaee6b2555b83206edf5153870da" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tar.xz#5e2f5f554e3f8f7f0296f7e73d8600c4e9acbaee6b2555b83206edf5153870da" standard verify_py36 copy_python_gdb ensurepip else - install_package "Python-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz#47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa" standard verify_py37 copy_python_gdb ensurepip + install_package "Python-3.6.9" "https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz#47fc92a1dcb946b9ed0abc311d3767b7215c54e655b17fd1d3f9b538195525aa" standard verify_py36 copy_python_gdb ensurepip fi From e55613a267b62f1198636a1f674bc379a2276bf7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 10 Jun 2026 21:30:08 +0300 Subject: [PATCH 1175/1324] CI: Don't trigger push checks on a pull request --- .github/workflows/macos_build.yml | 5 ++++- .github/workflows/pyenv_tests.yml | 5 ++++- .github/workflows/ubuntu_build.yml | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 5c860d1d68..70672ed9a8 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -1,5 +1,8 @@ name: macos_build -on: [pull_request, push] +on: + push: + branches: [master] + pull_request: {} permissions: contents: read # to fetch code (actions/checkout) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index f6575f0f6d..cf3e343bec 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -1,5 +1,8 @@ name: pyenv_tests -on: [pull_request, push] +on: + push: + branches: [master] + pull_request: {} permissions: contents: read # to fetch code (actions/checkout) diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 9ba4513dff..7c496c3ec5 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -1,5 +1,8 @@ name: ubuntu_build -on: [pull_request, push] +on: + push: + branches: [master] + pull_request: {} permissions: contents: read # to fetch code (actions/checkout) From 7565df6eab43daee2200cf7d36674e21d38b522d Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 23:11:56 +0300 Subject: [PATCH 1176/1324] Add CPython 3.14.6 (#3472) --------- Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> Co-authored-by: Ivan Pozdeev --- .../python-build/share/python-build/3.14.6 | 11 + .../python-build/share/python-build/3.14.6t | 2 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9862 +++++++++++++++++ .../share/python-build/patches/3.14.6t | 1 + 4 files changed, 9876 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.6 create mode 100644 plugins/python-build/share/python-build/3.14.6t create mode 100644 plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.6t diff --git a/plugins/python-build/share/python-build/3.14.6 b/plugins/python-build/share/python-build/3.14.6 new file mode 100644 index 0000000000..09b076fdcd --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.6 @@ -0,0 +1,11 @@ +prefer_openssl3_to_4 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.1" "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz#2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.6" "https://www.python.org/ftp/python/3.14.6/Python-3.14.6.tar.xz#143b1dddefaec3bd2e21e3b839b34a2b7fb9842272883c576420d605e9f30c63" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.6" "https://www.python.org/ftp/python/3.14.6/Python-3.14.6.tgz#74d0d71d0600e477651a077101d6e62d1e2e69b8e992ba18c993dd643b7ba222" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.6t b/plugins/python-build/share/python-build/3.14.6t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.6t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..f695618c2c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9862 @@ +From f399d160f46b95a89910d3fbd7739095ae51686d Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 130 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 8 files changed, 9550 insertions(+), 35 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index dd4c657d0cf..0878d738690 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -396,7 +396,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -587,11 +587,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -657,12 +657,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1156,6 +1158,7 @@ def test_min_max_version(self): + ssl.TLSVersion.TLSv1, + ssl.TLSVersion.TLSv1_1, + ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, + ssl.TLSVersion.SSLv3, + } + ) +@@ -1169,7 +1172,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1717,23 +1720,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2760,6 +2764,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3629,10 +3663,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4481,7 +4515,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4794,6 +4830,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 5258df3958a..2c2edbed882 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -122,8 +122,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -135,6 +137,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -340,6 +353,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -487,6 +510,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -642,6 +669,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -889,6 +928,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1029,6 +1069,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1134,7 +1179,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1163,16 +1208,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2493,6 +2538,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2633,6 +2683,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6513,9 +6568,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index 68bd6e0860d..92c7c4115f5 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -54,6 +54,7 @@ + "3.4.6", + "3.5.7", + "3.6.3", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -414,9 +415,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -432,6 +435,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.54.0.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.6t b/plugins/python-build/share/python-build/patches/3.14.6t new file mode 120000 index 0000000000..75e1d74d45 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.6t @@ -0,0 +1 @@ +3.14.6 \ No newline at end of file From 532b659ca26edb527fd977e6ff9adec953c1169f Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 10 Jun 2026 23:12:21 +0300 Subject: [PATCH 1177/1324] Add CPython 3.13.14 (#3473) --------- Co-authored-by: Ivan Pozdeev --- plugins/python-build/share/python-build/3.13.14 | 11 +++++++++++ plugins/python-build/share/python-build/3.13.14t | 2 ++ 2 files changed, 13 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.14 create mode 100644 plugins/python-build/share/python-build/3.13.14t diff --git a/plugins/python-build/share/python-build/3.13.14 b/plugins/python-build/share/python-build/3.13.14 new file mode 100644 index 0000000000..476711126b --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.14 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.3" "https://github.com/openssl/openssl/releases/download/openssl-3.6.3/openssl-3.6.3.tar.gz#243a86649cf6f23eeb6a2ff2456e09e5d77dd9018a54d3d96b0c6bdd6ba6c7f1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.14" "https://www.python.org/ftp/python/3.13.14/Python-3.13.14.tar.xz#639e43243c620a308f968213df9e00f2f8f62332f7adbaa7a7eeb9783057c690" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.14" "https://www.python.org/ftp/python/3.13.14/Python-3.13.14.tgz#5ae535a36af0ebca6fca176ecb8197f5db9c1cb8c8f0cd12cdf1787046db1f41" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.14t b/plugins/python-build/share/python-build/3.13.14t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.14t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From b43c9e5d4271535808abd60b25ed9f16b0379ed3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 10 Jun 2026 23:16:50 +0300 Subject: [PATCH 1178/1324] 2.7.2 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86bf36526e..70d2165116 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.7.2 +* fix(rehash): prevent terminal hang caused by stale or sandbox-blocked lock file by @anupddas in https://github.com/pyenv/pyenv/pull/3469 +* 3.6.x: Fix verify_* calls by @native-api in https://github.com/pyenv/pyenv/commit/6c0c5cfa9619e4a7a90102d8bee6c771c4739836 +* Add CPython 3.14.6 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3472 +* Add CPython 3.13.14 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3473 + ## Release v2.7.1 * Support 3.9 EOL Pip URL, consolidate tests by @native-api in https://github.com/pyenv/pyenv/pull/3465 * Update URLs for PyPy nightly; Remove pypy3.5 and pypy3.7 nightly by @native-api in https://github.com/pyenv/pyenv/pull/3466 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 4e55c39bca..80259dec89 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.7.1" +version="2.7.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b990168b6f..e80602c241 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.7.1" +PYTHON_BUILD_VERSION="2.7.2" OLDIFS="$IFS" From 3323ba3ed93498435eae8d1786c0fe9ff422a16b Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 12 Jun 2026 15:34:14 +0300 Subject: [PATCH 1179/1324] README: clarify shell setup instructions using the new --install option --- README.md | 251 +++++++++++++++++++++++++++++------------------------- 1 file changed, 134 insertions(+), 117 deletions(-) diff --git a/README.md b/README.md index 942f3e093d..2872e7e0d0 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,7 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * [Using Pyenv without shims](#using-pyenv-without-shims) * [Running nested shells from Python-based programs](#running-nested-shells-from-python-based-programs) * [Environment variables](#environment-variables) + * [Manual shell setup](#manual-shell-setup) * **[Development](#development)** * [Contributing](#contributing) * [Version History](#version-history) @@ -177,134 +178,29 @@ which does install native Windows Python versions. ---- The below setup should work for the vast majority of users for common use cases. -See [Advanced configuration](#advanced-configuration) for details and more configuration options. +See [Advanced configuration](#advanced-configuration) +and specifically [Manual shell setup](#manual-shell-setup) for details and more configuration options. -If `pyenv` is already on `PATH`, you can configure the relevant shell startup -files automatically: +To add the suggested setup code to the startup files of the running shell, +run ` --install`. +Specifically: + +* If you installed Pyenv with the installer script: ```sh -pyenv init --install +~/.pyenv/bin/pyenv init --install ``` -If `pyenv` is not on `PATH` yet, run the same command through the `pyenv` -executable in your chosen installation directory. +* If you installed Pyenv with Homebrew: -This uses the same shell detection as `pyenv init`. If a startup file already -contains Pyenv-related configuration, the command refuses to edit it; review the -file manually and run `pyenv init ` to see the suggested setup. +```sh +pyenv init --install +``` For Bash, avoid the automatic `--install` path if your `BASH_ENV` points to `.bashrc`; use the manual Bash instructions below so the `eval "$(pyenv init - bash)"` line only goes in your login startup file. -#### Bash -
- - Stock Bash startup files vary widely between distributions in which of them source - which, under what circumstances, in what order and what additional configuration they perform. - As such, the most reliable way to get Pyenv in all environments is to append Pyenv - configuration commands to both `.bashrc` (for interactive shells) - and the profile file that Bash would use (for login shells). - - 1. First, add the commands to `~/.bashrc` by running the following in your terminal: - - ```bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc - echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc - ``` - 2. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. - If you have none of these, create a `~/.profile` and add the commands there. - - * to add to `~/.profile`: - ``` bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile - echo 'eval "$(pyenv init - bash)"' >> ~/.profile - ``` - * to add to `~/.bash_profile`: - ```bash - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile - echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile - ``` - - **Bash warning**: There are some systems where the `BASH_ENV` variable is configured - to point to `.bashrc`. On such systems, you should almost certainly put the - `eval "$(pyenv init - bash)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you - may observe strange behaviour, such as `pyenv` getting into an infinite loop. - See [#264](https://github.com/pyenv/pyenv/issues/264) for details. - -
- -#### Zsh - -
- Add Pyenv startup commands to `~/.zshrc` by running the following in your terminal: - - ```zsh - echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc - echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc - echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc - ``` - - If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. -
- -#### Fish - -
- - 1. If you have Fish 3.2.0 or newer, execute this interactively: - ```fish - set -Ux PYENV_ROOT $HOME/.pyenv - test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin - ``` - - 2. Otherwise, execute the snippet below: - ```fish - set -Ux PYENV_ROOT $HOME/.pyenv - test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths - ``` - - 3. Now, add this to `~/.config/fish/config.fish`: - ```fish - pyenv init - fish | source - ``` -
- -#### Nushell - -
- - Add the following lines to your `config.nu` to add Pyenv and its shims to your `PATH`. - Shell integration (completions and subcommands changing the shell's state) - isn't currently supported. - - ~~~ nu - $env.PYENV_ROOT = "~/.pyenv" | path expand - if (( $"($env.PYENV_ROOT)/bin" | path type ) == "dir") { - $env.PATH = $env.PATH | prepend $"($env.PYENV_ROOT)/bin" } - $env.PATH = $env.PATH | prepend $"(pyenv root)/shims" - ~~~ - -
- -#### Microsoft PowerShell - -
- - Add the commands to `$profile.CurrentUserAllHosts` by running the following in your terminal: - - ~~~ pwsh - echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' >> $profile.CurrentUserAllHosts - echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) { - $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' >> $profile.CurrentUserAllHosts - echo 'iex ((pyenv init -) -join "`n")' >> $profile.CurrentUserAllHosts - ~~~ - -
- ### C. Restart your shell ---- @@ -815,6 +711,127 @@ name | default | description See also [_Special environment variables_ in Python-Build's README](plugins/python-build/README.md#special-environment-variables) for environment variables that can be used to customize the build. + +### Manual shell setup + +Below is the suggested shell setup added to shell startup files by `pyenv init --install`. + +* To automatically install Pyenv for a shell different than the running shell, run + +```sh +path/to/pyenv --install +``` + +e.g. `~/.pyenv --install bash`. + +#### Bash +
+ + Stock Bash startup files vary widely between distributions in which of them source + which, under what circumstances, in what order and what additional configuration they perform. + As such, the most reliable way to get Pyenv in all environments is to append Pyenv + configuration commands to both `.bashrc` (for interactive shells) + and the profile file that Bash would use (for login shells). + + 1. First, add the commands to `~/.bashrc` by running the following in your terminal: + + ```bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc + echo 'eval "$(pyenv init - bash)"' >> ~/.bashrc + ``` + 2. Then, if you have `~/.profile`, `~/.bash_profile` or `~/.bash_login`, add the commands there as well. + If you have none of these, create a `~/.profile` and add the commands there. + + * to add to `~/.profile`: + ``` bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile + echo 'eval "$(pyenv init - bash)"' >> ~/.profile + ``` + * to add to `~/.bash_profile`: + ```bash + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile + echo 'eval "$(pyenv init - bash)"' >> ~/.bash_profile + ``` + + **Bash warning**: There are some systems where the `BASH_ENV` variable is configured + to point to `.bashrc`. On such systems, you should almost certainly put the + `eval "$(pyenv init - bash)"` line into `.bash_profile`, and **not** into `.bashrc`. Otherwise, you + may observe strange behaviour, such as `pyenv` getting into an infinite loop. + See [#264](https://github.com/pyenv/pyenv/issues/264) for details. + +
+ +#### Zsh + +
+ Add Pyenv startup commands to `~/.zshrc` by running the following in your terminal: + + ```zsh + echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc + echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc + echo 'eval "$(pyenv init - zsh)"' >> ~/.zshrc + ``` + + If you wish to get Pyenv in noninteractive login shells as well, also add the commands to `~/.zprofile` or `~/.zlogin`. +
+ +#### Fish + +
+ + 1. If you have Fish 3.2.0 or newer, execute this interactively: + ```fish + set -Ux PYENV_ROOT $HOME/.pyenv + test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin + ``` + + 2. Otherwise, execute the snippet below: + ```fish + set -Ux PYENV_ROOT $HOME/.pyenv + test -d $PYENV_ROOT/bin; and set -U fish_user_paths $PYENV_ROOT/bin $fish_user_paths + ``` + + 3. Now, add this to `~/.config/fish/config.fish`: + ```fish + pyenv init - fish | source + ``` +
+ +#### Nushell + +
+ + Add the following lines to your `config.nu` to add Pyenv and its shims to your `PATH`. + Shell integration (completions and subcommands changing the shell's state) + isn't currently supported. + + ~~~ nu + $env.PYENV_ROOT = "~/.pyenv" | path expand + if (( $"($env.PYENV_ROOT)/bin" | path type ) == "dir") { + $env.PATH = $env.PATH | prepend $"($env.PYENV_ROOT)/bin" } + $env.PATH = $env.PATH | prepend $"(pyenv root)/shims" + ~~~ + +
+ +#### Microsoft PowerShell + +
+ + Add the commands to `$profile.CurrentUserAllHosts` by running the following in your terminal: + + ~~~ pwsh + echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' >> $profile.CurrentUserAllHosts + echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) { + $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' >> $profile.CurrentUserAllHosts + echo 'iex ((pyenv init -) -join "`n")' >> $profile.CurrentUserAllHosts + ~~~ + +
+ ---- ## Development From f122a9d76453eff69e21ea6cfa42878d3a087cc5 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Mon, 15 Jun 2026 00:16:48 +0530 Subject: [PATCH 1180/1324] CI: add_version enhancements (#3475) - Prevent OpenSSL from bumping across major versions - Skip adding versions that already have pending PRs - Copy/move patches when adding new releases in the same series --- plugins/python-build/scripts/add_cpython.py | 129 ++++++++++++++++++-- 1 file changed, 118 insertions(+), 11 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index 0742dd7a3a..fc507f5cf7 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -17,6 +17,7 @@ import pathlib import pprint import re +import shutil import subprocess import sys import typing @@ -46,6 +47,14 @@ def _excepthook(type,value,traceback): here = pathlib.Path(__file__).resolve() OUT_DIR: pathlib.Path = here.parent.parent / "share" / "python-build" +AUTO_ADD_VERSION_REF_RE = re.compile( + r"^(?P[0-9a-f]{40,64})\t" + r"refs/heads/auto_add_version/(?P\S+)$" +) +OPENSSL_RELEASE_TAG_RE = re.compile( + r"^openssl-(?P\d+)\.\d+(?:\.\d+)*(?:[a-z]+\d*)?$" +) + T_THUNK=\ '''export PYTHON_BUILD_FREE_THREADING=1 source "${BASH_SOURCE[0]%t}" @@ -83,10 +92,13 @@ def adapt_script(version: packaging.version.Version, url=new_package_url+'#'+new_package_hash, verify_py_suffix=verify_py_suffix) - elif m:=re.match(r'\s*install_package\s+"(?Popenssl-\S+)"\s+' - r'"(?P\S+)"\s.*$', + elif m:=re.match(r'\s*install_package\s+' + r'"(?Popenssl-(?P\d+)\.\S+)"\s+' + r'"(?P\S+)"\s.*$', line): - item = VersionDirectory.openssl.get_store_latest_release() + item = VersionDirectory.openssl.get_store_latest_release( + int(m.group('openssl_major')) + ) line = Re.sub_groups(m, package=item.package_name, @@ -129,6 +141,8 @@ def add_version(version: packaging.version.Version): return False VersionDirectory.existing.append(_CPythonExistingScriptInfo(version,str(new_path))) + handle_version_patches(version, previous_version, is_prerelease_upgrade) + cleanup_prerelease_upgrade(is_prerelease_upgrade, previous_version, version) handle_t_thunks(version, previous_version, is_prerelease_upgrade) @@ -137,6 +151,51 @@ def add_version(version: packaging.version.Version): return True +def handle_version_patches( + version: packaging.version.Version, + previous_version: packaging.version.Version, + is_prerelease_upgrade: bool)\ + -> None: + if (previous_version.major, previous_version.minor) != (version.major, version.minor): + return + + patches_dir = OUT_DIR / "patches" + previous_patches = patches_dir / str(previous_version) + if not previous_patches.exists(): + return + + new_patches = patches_dir / str(version) + if is_prerelease_upgrade: + logger.info(f"Git moving patches from {previous_version} to {version}") + subprocess.check_call(( + "git", "-C", OUT_DIR, "mv", + f"patches/{previous_version}", + f"patches/{version}", + )) + else: + logger.info(f"Copying patches from {previous_version} to {version}") + shutil.copytree(previous_patches, new_patches) + + previous_package_patches = new_patches / f"Python-{previous_version}" + new_package_patches = new_patches / f"Python-{version}" + if is_prerelease_upgrade: + subprocess.check_call(( + "git", "-C", OUT_DIR, "mv", + f"patches/{version}/Python-{previous_version}", + f"patches/{version}/Python-{version}", + )) + else: + previous_package_patches.rename(new_package_patches) + + previous_t_patches = patches_dir / f"{previous_version}t" + if previous_t_patches.exists() or previous_t_patches.is_symlink(): + if is_prerelease_upgrade: + previous_t_patches.unlink() + (patches_dir / f"{version}t").symlink_to( + str(version), target_is_directory=True + ) + + def cleanup_prerelease_upgrade( is_prerelease_upgrade: bool, previous_version: packaging.version.Version, @@ -211,7 +270,11 @@ def main(): VersionDirectory.available.get_store_available_source_downloads(release, True) del release - versions_to_add = sorted(VersionDirectory.available.keys() - VersionDirectory.existing.keys()) + versions_to_add = sorted( + VersionDirectory.available.keys() + - VersionDirectory.existing.keys() + - get_pending_versions() + ) logger.info("Versions to add:\n"+pprint.pformat(versions_to_add)) result = False @@ -219,6 +282,27 @@ def main(): result = add_version(version_to_add) or result return int(not result) + +def get_pending_versions() -> typing.Set[packaging.version.Version]: + ls_remote = subprocess.check_output( + ("git", "-C", OUT_DIR, "ls-remote", "origin", + "refs/heads/auto_add_version/*"), + text=True, + timeout=30, + ) + + pending_versions = set() + for line in ls_remote.splitlines(): + match = AUTO_ADD_VERSION_REF_RE.fullmatch(line) + if not match: + raise ValueError(f"Unexpected git ls-remote output: {line!r}") + pending_versions.update( + packaging.version.Version(version) + for version in match.group("versions").split("_") + ) + return pending_versions + + def parse_args(): parser = argparse.ArgumentParser(description=__doc__) parser.add_argument( @@ -440,18 +524,41 @@ class _OpenSSLVersionInfo(typing.NamedTuple): class OpenSSLVersionsDirectory(KeyedList[_OpenSSLVersionInfo, packaging.version.Version]): key_field = "version" - def get_store_latest_release(self) \ + def get_store_latest_release(self, major: int) \ -> _OpenSSLVersionInfo: - if self: - #already retrieved - return self[max(self.keys())] + matching = [ + release for release in self + if release.version.major == major + ] + if matching: + return max(matching, key=lambda release: release.version) + + url = "https://api.github.com/repos/openssl/openssl/releases?per_page=100" + while url: + response = requests.get(url, timeout=30) + response.raise_for_status() + matching = [ + release + for release in response.json() + if not release['draft'] + and not release['prerelease'] + and (match := OPENSSL_RELEASE_TAG_RE.fullmatch( + release['tag_name'] + )) + and int(match.group('major')) == major + ] + if matching: + j_release = matching[0] + break + url = response.links.get('next', {}).get('url') + else: + raise ValueError(f"No OpenSSL {major}.x release found") - j = requests.get("https://api.github.com/repos/openssl/openssl/releases/latest", timeout=30).json() # noinspection PyTypeChecker # urlparse can parse str as well as bytes shasum_url = more_itertools.one( asset['browser_download_url'] - for asset in j['assets'] + for asset in j_release['assets'] if urllib.parse.urlparse(asset['browser_download_url']).path.split('/')[-1].endswith('.sha256') ) shasum_text = requests.get(shasum_url, timeout=30).text @@ -467,7 +574,7 @@ def get_store_latest_release(self) \ package_url = more_itertools.one( asset['browser_download_url'] - for asset in j['assets'] + for asset in j_release['assets'] if urllib.parse.urlparse(asset['browser_download_url']).path.split('/')[-1] == package_filename ) From b52a8e3f52c3be68cf46c751ed40a180dfc48ba4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 19 Jun 2026 08:36:53 +0300 Subject: [PATCH 1181/1324] python-build scripts: Switch to jc release They finally made a release with our fix --- plugins/python-build/scripts/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index c79b3e294b..07d4f7300a 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -6,4 +6,4 @@ packaging requests sortedcontainers tqdm -jc @ git+https://github.com/native-api/jc@haslib_mode +jc From 09dce106a403fcb1eaefd17910ceb920a4bc3672 Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 24 Jun 2026 04:27:01 +0300 Subject: [PATCH 1182/1324] Add CPython 3.15.0b3 (#3479) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.15.0b2 | 11 ----------- plugins/python-build/share/python-build/3.15.0b3 | 11 +++++++++++ .../share/python-build/{3.15.0b2t => 3.15.0b3t} | 0 3 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.15.0b2 create mode 100644 plugins/python-build/share/python-build/3.15.0b3 rename plugins/python-build/share/python-build/{3.15.0b2t => 3.15.0b3t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0b2 b/plugins/python-build/share/python-build/3.15.0b2 deleted file mode 100644 index c52bae07d3..0000000000 --- a/plugins/python-build/share/python-build/3.15.0b2 +++ /dev/null @@ -1,11 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-4.0.0" "https://github.com/openssl/openssl/releases/download/openssl-4.0.0/openssl-4.0.0.tar.gz#c32cf49a959c4f345f9606982dd36e7d28f7c58b19c2e25d75624d2b3d2f79ac" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.15.0b2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b2.tar.xz#d14f474ab679e90bc734b02ff58447b6ec99a821af61d6ff0c1da0f86e341a71" standard verify_py315 copy_python_gdb ensurepip -else - install_package "Python-3.15.0b2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b2.tgz#781f4bcdef48d1d38b335fdc7a156b4e5fe9738b14456121f949257ff5cce77c" standard verify_py315 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0b3 b/plugins/python-build/share/python-build/3.15.0b3 new file mode 100644 index 0000000000..d70951d1ea --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0b3 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.1" "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz#2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0b3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b3.tar.xz#6a935ae234a67e6549894373b0cfeb8361182d03b21442328ae9598ab7422127" standard verify_py315 copy_python_gdb ensurepip +else + install_package "Python-3.15.0b3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b3.tgz#e5a18806817f912f2c9a1091ac77703f9a969b129c878d436f0f7025bf2f9e97" standard verify_py315 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0b2t b/plugins/python-build/share/python-build/3.15.0b3t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0b2t rename to plugins/python-build/share/python-build/3.15.0b3t From 933d0aaf1d1190a641c3ddce484e72b1a993473d Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 24 Jun 2026 05:14:13 +0300 Subject: [PATCH 1183/1324] 2.7.3 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 70d2165116..2174311a27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.7.3 +* CI: add_version enhancements by @macayu17 in https://github.com/pyenv/pyenv/pull/3475 +* Add CPython 3.15.0b3 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3479 + ## Release v2.7.2 * fix(rehash): prevent terminal hang caused by stale or sandbox-blocked lock file by @anupddas in https://github.com/pyenv/pyenv/pull/3469 * 3.6.x: Fix verify_* calls by @native-api in https://github.com/pyenv/pyenv/commit/6c0c5cfa9619e4a7a90102d8bee6c771c4739836 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 80259dec89..f9c0a3635b 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.7.2" +version="2.7.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index e80602c241..35d1c0995a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.7.2" +PYTHON_BUILD_VERSION="2.7.3" OLDIFS="$IFS" From 4b77d83d9d3dc3d6cb8ecb48bb3c9fabfd9e8724 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 25 Jun 2026 09:48:57 +0300 Subject: [PATCH 1184/1324] CI: add_version enhancements (#3480) * Default 30 seems enough for our needs * comments on critical knowledge * Cleaner handling of t thunk patches * Fix an error when adding a release for which there's also a prerelease * Workaround excepthook not working in Github Actions * requirements.txt workaround is only needed for old Python --- plugins/python-build/scripts/add_cpython.py | 53 ++++++++++++------- plugins/python-build/scripts/requirements.txt | 2 +- 2 files changed, 34 insertions(+), 21 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index fc507f5cf7..cedc629484 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -31,13 +31,6 @@ import sortedcontainers import tqdm -#CI uses exit code 1 as a signal that no new version is found -#so have to produce a different exit code on an exception -def _excepthook(type,value,traceback): - logging.error("Unhandled exception occured",exc_info=(type,value,traceback)) - sys.exit(2) -sys.excepthook = _excepthook - logger = logging.getLogger(__name__) CUTOFF_VERSION=packaging.version.Version('3.10') @@ -176,6 +169,8 @@ def handle_version_patches( logger.info(f"Copying patches from {previous_version} to {version}") shutil.copytree(previous_patches, new_patches) + # Subdir rename as a separate step from upper dir copying/moving + # in case there are patches for dependency packages as well previous_package_patches = new_patches / f"Python-{previous_version}" new_package_patches = new_patches / f"Python-{version}" if is_prerelease_upgrade: @@ -187,10 +182,9 @@ def handle_version_patches( else: previous_package_patches.rename(new_package_patches) - previous_t_patches = patches_dir / f"{previous_version}t" - if previous_t_patches.exists() or previous_t_patches.is_symlink(): - if is_prerelease_upgrade: - previous_t_patches.unlink() + if uses_t_thunks(previous_version) and is_prerelease_upgrade: + (patches_dir / f"{previous_version}t").unlink(missing_ok=True) + if uses_t_thunks(version): (patches_dir / f"{version}t").symlink_to( str(version), target_is_directory=True ) @@ -225,7 +219,7 @@ def cleanup_prerelease_upgrade( def handle_t_thunks(version, previous_version, is_prerelease_upgrade): - if (version.major, version.minor) < (3, 13): + if not uses_t_thunks(version): return # an old thunk may have older version-specific code @@ -244,6 +238,10 @@ def handle_t_thunks(version, previous_version, is_prerelease_upgrade): thunk_path.write_text(T_THUNK, encoding='utf-8') +def uses_t_thunks(version: packaging.version.Version) -> bool: + return (version.major, version.minor) >= (3, 13) + + Arguments: argparse.Namespace def main(): @@ -262,14 +260,20 @@ def main(): # So until we know the release is out, its directory is a potential prerelease directory. # Normally, prereleases are only made for initial releases (x.y.0) -- # but rarely, they may make them for other releases (e.g. 3.14.5). - for release in (v for v in frozenset(VersionDirectory.available.keys()) #refining changes the + for release in (v for v in frozenset(VersionDirectory.available.keys()) #refining alters the #corresponding directory key #which breaks iteration + #over the directory -- #so have to iterate over a copy if v not in VersionDirectory.existing): VersionDirectory.available.get_store_available_source_downloads(release, True) del release + # Excluding versions for which there already are PRs. + # This will prevent us from using advanced features of + # peter-evans/create-pull-request Github Action + # like updating a PR and closing a superseded PR + # but we don't really need them as of this writing. versions_to_add = sorted( VersionDirectory.available.keys() - VersionDirectory.existing.keys() @@ -293,9 +297,8 @@ def get_pending_versions() -> typing.Set[packaging.version.Version]: pending_versions = set() for line in ls_remote.splitlines(): - match = AUTO_ADD_VERSION_REF_RE.fullmatch(line) - if not match: - raise ValueError(f"Unexpected git ls-remote output: {line!r}") + if not (match := AUTO_ADD_VERSION_REF_RE.fullmatch(line)): + raise ValueError(f"Unexpected git ls-remote output line: {line!r}") pending_versions.update( packaging.version.Version(version) for version in match.group("versions").split("_") @@ -453,8 +456,9 @@ def get_store_available_source_downloads(self, version, refine_mode=False): download_version = packaging.version.Version(m.group("version")) if download_version != version: if not refine_mode: - raise ValueError(f"Unexpectedly found a download {name} ({download_version}) " + logger.warning(f"Ignoring download {name} ({download_version}) " f"for {version} at page {entry.download_page_url}") + continue entry_to_fill = additional_versions_found.get_or_create( download_version, download_page_url=entry.download_page_url @@ -467,7 +471,10 @@ def get_store_available_source_downloads(self, version, refine_mode=False): m.group("extension"), m.group('package'), url )) - if not exact_download_found: + # XXX: Exact download not found in non-refine mode never happens now + # 'cuz we first call the function in refine mode. + # Decide what's best to do if it starts to after a logic change. + if not exact_download_found and refine_mode: actual_version = max(additional_versions_found.keys()) logger.debug(f"Refining available version {version} to {actual_version}") del self[version] @@ -533,7 +540,7 @@ def get_store_latest_release(self, major: int) \ if matching: return max(matching, key=lambda release: release.version) - url = "https://api.github.com/repos/openssl/openssl/releases?per_page=100" + url = "https://api.github.com/repos/openssl/openssl/releases" while url: response = requests.get(url, timeout=30) response.raise_for_status() @@ -657,6 +664,7 @@ def enum_download_entries(cls, url, pattern, session=None, if session is None: session = requests_html.HTMLSession() response = session.get(url, timeout=30) + response.raise_for_status() page = response.html table = page.find("pre", first=True) # some GNU mirrors format entries as a table @@ -736,4 +744,9 @@ def sha256_url(url, session=None): if __name__ == "__main__": - sys.exit(main()) + #sys.excepthook seems to have no effect in Github Actions + try: + sys.exit(main()) + except Exception: + logging.exception("Unhandled exception occured") + sys.exit(2) diff --git a/plugins/python-build/scripts/requirements.txt b/plugins/python-build/scripts/requirements.txt index 07d4f7300a..2b64919d8c 100644 --- a/plugins/python-build/scripts/requirements.txt +++ b/plugins/python-build/scripts/requirements.txt @@ -1,6 +1,6 @@ more_itertools requests-html -fake_useragent<2 +fake_useragent<2; python_version < "3.9" lxml[html_clean] packaging requests From ebd788d08c5b32eac6dc1337b5563fa05796388b Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 25 Jun 2026 09:52:54 +0300 Subject: [PATCH 1185/1324] Add miniforge3-26.3.2-2, 26.3.2-3 (#3481) --- .../share/python-build/miniforge3-26.3.2-2 | 25 +++++++++++++++++++ .../share/python-build/miniforge3-26.3.2-3 | 25 +++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniforge3-26.3.2-2 create mode 100644 plugins/python-build/share/python-build/miniforge3-26.3.2-3 diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-2 b/plugins/python-build/share/python-build/miniforge3-26.3.2-2 new file mode 100644 index 0000000000..42908e8f75 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-2 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.3.2-2-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-2/Miniforge3-26.3.2-2-Linux-aarch64.sh#f4096a92482b30f04534cddb63d8bc929118318deffac71d90fb89dc52359d22" "miniconda" verify_py313 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.3.2-2-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-2/Miniforge3-26.3.2-2-Linux-ppc64le.sh#8b3527cd4c70e6eb4a6c2c4c41de34c2480f0a5200de2ecb7fe385d186af0869" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.3.2-2-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-2/Miniforge3-26.3.2-2-Linux-x86_64.sh#42260ffe3830fb953d5eee1bbb32229ff06aa7c3833c1ed7a9a0420a95685d94" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.3.2-2-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-2/Miniforge3-26.3.2-2-MacOSX-arm64.sh#2657d94152343cff7c06159ac9fc09624d7879fa9575c5a0a324c571c4df0ade" "miniconda" verify_py313 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.3.2-2-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-2/Miniforge3-26.3.2-2-MacOSX-x86_64.sh#a755192103de19bb2782685ac78820c2e00702e5f33e6e4f0a3bf3c214f45d69" "miniconda" verify_py313 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-26.3.2-3 b/plugins/python-build/share/python-build/miniforge3-26.3.2-3 new file mode 100644 index 0000000000..afbeac3e69 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.3.2-3 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.3.2-3-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-3/Miniforge3-26.3.2-3-Linux-aarch64.sh#2c113a69297e612b01ca0f320c22a3107a11f2ab9b573d79ac868a175945ce29" "miniconda" verify_py313 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.3.2-3-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-3/Miniforge3-26.3.2-3-Linux-ppc64le.sh#df7e80ee070ccc6031e2710eb4cf81ee0012264b587306b5aa3890d3d89edd97" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.3.2-3-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-3/Miniforge3-26.3.2-3-Linux-x86_64.sh#848194851a98903134187fbb4ab50efe87b003e0c0f808f97644b7524a62bf2c" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.3.2-3-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-3/Miniforge3-26.3.2-3-MacOSX-arm64.sh#59168f1e24d0a4ad9932021170809fca836cd240e183eeeb331d5bcfc0098168" "miniconda" verify_py313 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.3.2-3-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.3.2-3/Miniforge3-26.3.2-3-MacOSX-x86_64.sh#39273e4c89a0a1af4538010615d44ae8f44e1af41007e02def593d20f316b003" "miniconda" verify_py313 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From 3974647f0f5b006d979a83ff617ab4a4c959418c Mon Sep 17 00:00:00 2001 From: Yo Takezawa Date: Sat, 27 Jun 2026 03:04:33 +0900 Subject: [PATCH 1186/1324] rehash: fix race condition in landlock writability check (#3483) --- libexec/pyenv-rehash | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 12fe09bff8..19d9427415 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -28,7 +28,9 @@ acquire_lock() { # So check for writablity by trying to write to a different file, # in a way that taxes the usual use case as little as possible. if [[ -z $tested_for_other_write_errors ]]; then - ( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm "$t" ) \ + # if lots of (50+) rehashes run concurrently, another concurrent rehash + # may delete the temporary file in remove_*_shims() before we do so + ( t="$(TMPDIR="$SHIM_PATH" mktemp)" && rm -f "$t" ) \ && tested_for_other_write_errors=1 \ || { echo "pyenv: cannot rehash: $SHIM_PATH isn't writable" >&2 set +o noclobber From 91aacc5dbffa7c391fcfc23a585c1c5e60acca5d Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Sun, 28 Jun 2026 22:36:38 +0530 Subject: [PATCH 1187/1324] Add script to generate sponsors section for release notes (#3478) * OpenCollectrive API is blocked by a Cloudflare challenge page in some locations so allow to specify the OpenCollective API data manually --------- Co-authored-by: Ivan Pozdeev --- .../generate_release_notes_sponsors.py | 364 ++++++++++++++++++ MAINTENANCE.md | 10 +- 2 files changed, 373 insertions(+), 1 deletion(-) create mode 100755 .github/scripts/generate_release_notes_sponsors.py diff --git a/.github/scripts/generate_release_notes_sponsors.py b/.github/scripts/generate_release_notes_sponsors.py new file mode 100755 index 0000000000..216535e378 --- /dev/null +++ b/.github/scripts/generate_release_notes_sponsors.py @@ -0,0 +1,364 @@ +#!/usr/bin/env python3 +"""Generate a "Sponsors since " section for release notes. + +Queries GitHub Sponsors and OpenCollective for new sponsors since the latest +pyenv release or one month ago, whichever is longer. The output is Markdown +suitable for GitHub Releases. + +Requirements: +* Python 3.8+ +* The ``gh`` CLI authenticated with the ``read:user`` scope. +* Network access to https://opencollective.com. +""" + +import argparse +import calendar +import datetime +import json +import pathlib +import subprocess +import sys +import typing +import urllib.error +import urllib.request + + +GITHUB_ORG = "pyenv" +OPENCOLLECTIVE_MEMBERS_URL = "https://opencollective.com/pyenv/members.json" + + +class SponsorDataError(RuntimeError): + """Raised when a sponsors data source cannot be queried or parsed.""" + + +def parse_date(value: str) -> datetime.date: + return datetime.datetime.fromisoformat(value).date() + + +def one_month_ago(today: typing.Optional[datetime.date] = None) -> datetime.date: + today = today or datetime.date.today() + year = today.year + month = today.month - 1 + if month == 0: + year -= 1 + month = 12 + try: + return datetime.date(year, month, today.day) + except ValueError: + last_day = calendar.monthrange(year, month)[1] + return datetime.date(year, month, last_day) + + +def latest_release_date() -> datetime.date: + """Return the publish date of the latest GitHub release.""" + latest_release_error = None + try: + result = subprocess.run( + ["gh", "api", f"repos/{GITHUB_ORG}/{GITHUB_ORG}/releases/latest"], + capture_output=True, + text=True, + check=True, + ) + data = json.loads(result.stdout) + published = data["published_at"].replace("Z", "+00:00") + return datetime.datetime.fromisoformat(published).date() + except ( + subprocess.CalledProcessError, + OSError, + json.JSONDecodeError, + KeyError, + ) as exc: + latest_release_error = exc + + try: + tag = subprocess.run( + ["git", "describe", "--tags", "--abbrev=0"], + capture_output=True, + text=True, + check=True, + ).stdout.strip() + date_str = subprocess.run( + ["git", "log", "-1", "--format=%cI", tag], + capture_output=True, + text=True, + check=True, + ).stdout.strip() + return datetime.datetime.fromisoformat(date_str).date() + except (subprocess.CalledProcessError, OSError) as exc: + detail = "" + if latest_release_error is not None: + detail = f" GitHub release lookup failed first: {latest_release_error}." + raise SponsorDataError( + "Could not determine the latest release date. " + "Pass --since explicitly or run from a clone with release tags." + f"{detail}" + ) from exc + + +def compute_since_date(explicit_since: typing.Optional[datetime.date]) -> datetime.date: + if explicit_since is not None: + return explicit_since + return min(latest_release_date(), one_month_ago()) + + +def github_sponsors(since: datetime.date) -> typing.List[typing.Dict]: + """Return GitHub Sponsors created on or after *since*.""" + query = """ + query($org: String!, $after: String) { + organization(login: $org) { + sponsorshipsAsMaintainer( + first: 100, + after: $after, + activeOnly: false, + orderBy: {field: CREATED_AT, direction: DESC} + ) { + pageInfo { + hasNextPage + endCursor + } + nodes { + createdAt + sponsorEntity { + ... on User { login, name } + ... on Organization { login, name } + } + } + } + } + } + """ + since_dt = datetime.datetime.combine( + since, datetime.time.min, tzinfo=datetime.timezone.utc + ) + sponsors = [] + cursor = None + while True: + command = [ + "gh", + "api", + "graphql", + "-F", + f"org={GITHUB_ORG}", + "-f", + f"query={query}", + ] + if cursor is not None: + command.extend(["-F", f"after={cursor}"]) + + result = subprocess.run( + command, + capture_output=True, + text=True, + ) + if result.returncode != 0: + detail = result.stderr.strip() or result.stdout.strip() or "no output" + raise SponsorDataError( + "GitHub Sponsors query failed. " + "Check that `gh auth status` shows access to the pyenv org " + "and that the token has the scopes required to read sponsorships. " + f"`gh api graphql` exited {result.returncode}: {detail}" + ) + + try: + data = json.loads(result.stdout) + except json.JSONDecodeError as exc: + raise SponsorDataError( + "GitHub Sponsors query returned invalid JSON." + ) from exc + + if "errors" in data: + raise SponsorDataError( + f"GitHub Sponsors query returned errors: {data['errors']}" + ) + + try: + sponsorships = data["data"]["organization"]["sponsorshipsAsMaintainer"] + except (TypeError, KeyError) as exc: + raise SponsorDataError( + "GitHub Sponsors query returned an unexpected response shape." + ) from exc + try: + nodes = sponsorships["nodes"] + page_info = sponsorships["pageInfo"] + except (TypeError, KeyError) as exc: + raise SponsorDataError( + "GitHub Sponsors query returned incomplete pagination data." + ) from exc + + for node in nodes: + try: + created = datetime.datetime.fromisoformat( + node["createdAt"].replace("Z", "+00:00") + ) + entity = node["sponsorEntity"] + login = entity["login"] + except (AttributeError, KeyError, TypeError, ValueError) as exc: + raise SponsorDataError( + "GitHub Sponsors query returned an unexpected sponsor record." + ) from exc + if created < since_dt: + return sponsors + sponsors.append({ + "login": login, + "name": entity.get("name") or login, + }) + + try: + has_next_page = page_info["hasNextPage"] + cursor = page_info["endCursor"] + except (TypeError, KeyError) as exc: + raise SponsorDataError( + "GitHub Sponsors query returned incomplete pagination data." + ) from exc + if not has_next_page: + return sponsors + + +def opencollective_sponsors(since: datetime.date, data: typing.Union[str, None]) -> typing.List[typing.Dict]: + """Return OpenCollective backers active on or after *since*.""" + if data is None: + req = urllib.request.Request( + f"{OPENCOLLECTIVE_MEMBERS_URL}?limit=1000", + headers={"User-Agent": f"{GITHUB_ORG}/release-notes-sponsors"}, + ) + try: + with urllib.request.urlopen(req, timeout=30) as resp: + data = resp.read() + except urllib.error.HTTPError as exc: + raise SponsorDataError( + f"OpenCollective sponsors query failed for {OPENCOLLECTIVE_MEMBERS_URL}: " + f"HTTP {exc.code} {exc.reason}" + ) from exc + except urllib.error.URLError as exc: + raise SponsorDataError( + f"OpenCollective sponsors query failed for {OPENCOLLECTIVE_MEMBERS_URL}: " + f"{exc.reason}" + ) from exc + try: + members = json.loads(data) + except json.JSONDecodeError as exc: + raise SponsorDataError( + "OpenCollective sponsors query returned invalid JSON." + ) from exc + + since_dt = datetime.datetime.combine(since, datetime.time.min) + sponsors = [] + for member in members: + if member.get("role") != "BACKER": + continue + try: + last_transaction_at = datetime.datetime.strptime(member["lastTransactionAt"], "%Y-%m-%d %H:%M") + profile = member["profile"].rstrip("/") + except (KeyError, TypeError, ValueError) as exc: + raise SponsorDataError( + "OpenCollective sponsors query returned an unexpected member record." + ) from exc + if last_transaction_at < since_dt: + continue + slug = profile.split("/")[-1] + if slug == "github-sponsors": + # Listed separately under GitHub Sponsors. + continue + sponsors.append({ + "name": member.get("name") or slug, + "profile": profile, + }) + return sponsors + + +def render( + since: datetime.date, + gh_sponsors: typing.List[typing.Dict], + oc_sponsors: typing.List[typing.Dict], +) -> str: + lines = [f"## Sponsors since {since.isoformat()}", ""] + + if gh_sponsors: + lines.append("### GitHub Sponsors") + for sponsor in gh_sponsors: + lines.append( + markdown_link( + sponsor["name"], + f"https://github.com/{sponsor['login']}", + ) + ) + lines.append("") + + if oc_sponsors: + lines.append("### Open Collective") + for sponsor in oc_sponsors: + lines.append(markdown_link(sponsor["name"], sponsor["profile"])) + lines.append("") + + if not gh_sponsors and not oc_sponsors: + lines.append("*No new sponsors in this period.*") + lines.append("") + + return "\n".join(lines) + + +def markdown_link(text: str, url: str) -> str: + escaped_text = escape_markdown_text(text) + escaped_url = url.replace(")", "%29") + return f"- [{escaped_text}]({escaped_url})" + + +def escape_markdown_text(text: str) -> str: + escaped = text.replace("\\", "\\\\") + for char in r"`*_{}[]()#+-.!|>": + escaped = escaped.replace(char, f"\\{char}") + return escaped + + +def main() -> int: + parser = argparse.ArgumentParser( + description="Generate a sponsors section for GitHub release notes." + ) + parser.add_argument( + "--since", + type=parse_date, + metavar="YYYY-MM-DD", + help="Include sponsors created on or after this date.", + ) + parser.add_argument( + "--output", + metavar="FILE", + help="Write the section to FILE instead of stdout.", + ) + parser.add_argument( + "--skip-opencollective", + action="store_true", + help="Skip OpenCollective backers if the members endpoint is unavailable.", + ) + parser.add_argument( + "--opencollective-data", + metavar="FILE", + help="Take OpenCollective API reply from FILE.", + ) + args = parser.parse_args() + + try: + since = compute_since_date(args.since) + oc_sponsors = [] + if not args.skip_opencollective: + manual_data = ( + pathlib.Path(args.opencollective_data).read_text()) \ + if args.opencollective_data \ + else None + oc_sponsors = opencollective_sponsors(since, manual_data) + section = render(since, github_sponsors(since), oc_sponsors) + except SponsorDataError as exc: + print(f"error: {exc}", file=sys.stderr) + return 1 + + if args.output: + with open(args.output, "w", encoding="utf-8") as f: + f.write(section) + else: + print(section, end="") + + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/MAINTENANCE.md b/MAINTENANCE.md index db53f17853..0dfed2b8fd 100644 --- a/MAINTENANCE.md +++ b/MAINTENANCE.md @@ -7,6 +7,14 @@ Release checklist: * Start [drafting a new release on GitHub](https://github.com/pyenv/pyenv/releases) to generate a summary of changes. Type the would-be tag name in the "Choose a tag" field and press "Generate release notes" * The summary may need editing. E.g. rephrase entries, delete/merge entries that are too minor or irrelevant to the users (e.g. typo fixes, CI) +* Add a sponsors section to the release notes by running: + ```bash + .github/scripts/generate_release_notes_sponsors.py + ``` + Paste the output at the end of the release notes. + * This lists new GitHub Sponsors and OpenCollective backers since the last release or within the last month, whichever is longer. + * The GitHub Sponsors query requires the `gh` CLI with the `read:user` scope. + * If OpenCollective is unavailable, pass `--skip-opencollective` and add those backers manually. * Update `CHANGELOG.md` with the new version number and the edited summary (only the changes section) * Push the version number in `libexec/pyenv---version` and `plugins/python-build/bin/python-build` * Minor version is pushed if there are significant functional changes (not e.g. bugfixes/formula adaptations/supporting niche use cases). @@ -14,4 +22,4 @@ Type the would-be tag name in the "Choose a tag" field and press "Generate relea * Commit the changes locally into `master` * Create a new tag locally with the same name as specified in the new release window * Push the changes including the tag -* In the still open new release window, press "Publish release". The now-existing tag will be used. \ No newline at end of file +* In the still open new release window, press "Publish release". The now-existing tag will be used. From 4c78a0dd507107fa80cadbec2309606c790c6f90 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Tue, 30 Jun 2026 06:42:16 +0530 Subject: [PATCH 1188/1324] pyenv-install: install a version under a custom name with `:` (#3484) --- plugins/python-build/README.md | 7 ++++++ plugins/python-build/bin/pyenv-install | 32 +++++++++++++++++++++++--- plugins/python-build/test/pyenv.bats | 26 +++++++++++++++++++++ 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 93e6612020..3b60c1dd44 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -67,6 +67,13 @@ exact name of the version you want to install. For example, Python versions will be installed into a directory of the same name under `~/.pyenv/versions`. +To install a version under a different name -- for instance, to keep several +builds of the same version side by side -- append `:` to the version: + + pyenv install 3.12.0:3.12-custom + +This installs into `~/.pyenv/versions/3.12-custom`. + To see a list of all available Python versions, run `pyenv install --list`. You may also tab-complete available Python versions if your pyenv installation is properly configured. diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 508e8a24e8..6e5fcb60a7 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -20,6 +20,13 @@ # --version Show version of python-build # -g/--debug Build a debug version # +# Append `:' to a version to install it under a custom name, so that +# several builds of the same version can coexist: +# +# pyenv install 3.12.0:my-3.12 +# +# This installs into $PYENV_ROOT/versions/my-3.12. +# # For detailed information on installing Python versions with # python-build, including a list of environment variables for adjusting # compilation, see: https://github.com/pyenv/pyenv#readme @@ -123,6 +130,20 @@ DEFINITIONS=("${ARGUMENTS[@]}") [[ "${#DEFINITIONS[*]}" -eq 0 ]] && DEFINITIONS=($(pyenv-local 2>/dev/null || true)) [[ "${#DEFINITIONS[*]}" -eq 0 ]] && usage 1 >&2 +# A `:` argument installs under the custom name +# , so that several builds of the same version can coexist. The `latest` +# suffix is reserved for latest-version resolution (see the `install` hook), so +# it is left untouched here. +declare -a ALIASES +for i in "${!DEFINITIONS[@]}"; do + definition="${DEFINITIONS[$i]}" + alias="${definition##*:}" + if [[ "$definition" == *:* ]] && [ "$alias" != "latest" ]; then + DEFINITIONS[$i]="${definition%:*}" + ALIASES[$i]="$alias" + fi +done + # Define `before_install` and `after_install` functions that allow # plugin hooks to register a string of code for execution before or # after the installation process. @@ -152,7 +173,9 @@ IFS="$OLDIFS" for script in "${scripts[@]}"; do source "$script"; done COMBINED_STATUS=0 -for DEFINITION in "${DEFINITIONS[@]}"; do +for i in "${!DEFINITIONS[@]}"; do + DEFINITION="${DEFINITIONS[$i]}" + VERSION_ALIAS="${ALIASES[$i]}" STATUS=0 # Try to resolve a prefix if user indeed gave a prefix. @@ -161,9 +184,12 @@ for DEFINITION in "${DEFINITIONS[@]}"; do DEFINITION="$(pyenv-latest -f -k "$DEFINITION")" # Set VERSION_NAME from $DEFINITION. Then compute the installation prefix. + # With a `:` argument, install under the alias instead; + # VERSION_NAME still reflects the real version so version-specific build logic + # (e.g. the bootstrap version detection below) keeps working. VERSION_NAME="${DEFINITION##*/}" [ -n "$DEBUG" ] && VERSION_NAME="${VERSION_NAME}-debug" - PREFIX="${PYENV_ROOT}/versions/${VERSION_NAME}" + PREFIX="${PYENV_ROOT}/versions/${VERSION_ALIAS:-$VERSION_NAME}" [ -d "${PREFIX}" ] && PREFIX_EXISTS=1 @@ -188,7 +214,7 @@ for DEFINITION in "${DEFINITIONS[@]}"; do # If PYENV_BUILD_ROOT is set, always pass keep options to python-build. if [ -n "${PYENV_BUILD_ROOT}" ]; then - export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_NAME}" + export PYTHON_BUILD_BUILD_PATH="${PYENV_BUILD_ROOT}/${VERSION_ALIAS:-$VERSION_NAME}" KEEP="-k" fi diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 9b514d780a..8d4ec144e9 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -31,6 +31,32 @@ stub_python_build() { unstub python-build } +@test "install a single version under an alias" { + stub_python_build_lib + stub_python_build + + run pyenv-install 3.4.2:3.4.2-custom + assert_success "python-build 3.4.2 ${PYENV_ROOT}/versions/3.4.2-custom" + + unstub python-build +} + +@test "install multiple versions, each under its own alias" { + stub_python_build_lib + stub_python_build + stub_python_build + + run pyenv-install 3.4.1:custom1 3.4.2:custom2 + assert_success + assert_output < Date: Tue, 30 Jun 2026 04:17:58 +0300 Subject: [PATCH 1189/1324] install: reflect the new alias syntax in reference --- COMMANDS.md | 4 ++-- plugins/python-build/bin/pyenv-install | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 6d74f4e9c8..748b98e0c8 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -202,8 +202,8 @@ or, if you prefer 3.3.3 over 2.7.6, Install a Python version (using [`python-build`](https://github.com/pyenv/pyenv/tree/master/plugins/python-build)). - Usage: pyenv install [-f] [-kvp] - pyenv install [-f] [-kvp] + Usage: pyenv install [-f] [-kvp] [:] + pyenv install [-f] [-kvp] [:] pyenv install -l|--list -l/--list List all available versions diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 6e5fcb60a7..4d0220ed2d 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -2,8 +2,8 @@ # # Summary: Install a Python version using python-build # -# Usage: pyenv install [-f] [-kvp] ... -# pyenv install [-f] [-kvp] +# Usage: pyenv install [-f] [-kvp] [:]... +# pyenv install [-f] [-kvp] [:] # pyenv install -l|--list # pyenv install --version # From 8f68aab443ac3cd309b68173506186cd4e5e776a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Tue, 30 Jun 2026 20:25:03 +0200 Subject: [PATCH 1190/1324] Add graalpy-3.12-25.1.3 (#3485) * Add graalpy-3.12-25.1.3 * Adjust GraalPy version detection with the new naming scheme --------- Co-authored-by: Ivan Pozdeev --- .github/workflows/modified_scripts_build.yml | 2 +- .../share/python-build/graalpy3.12-25.1.3 | 61 +++++++++++++++++++ .../python-build/graalpy3.12-community-25.1.3 | 51 ++++++++++++++++ 3 files changed, 113 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/graalpy3.12-25.1.3 create mode 100644 plugins/python-build/share/python-build/graalpy3.12-community-25.1.3 diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 78d144c984..73fed17238 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -59,7 +59,7 @@ jobs: if name == 'anaconda3' and version >= packaging.version.Version('2025.12'): result.append({'os':'macos-15-intel','python-version':line}) - if m:=re.match(r'graalpy-(community-)?(\d+\.\d+.\d+)', line): + if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+.\d+)', line): version = packaging.version.Version(m.group(2)) # GraalPy dropped MacOS x64 support diff --git a/plugins/python-build/share/python-build/graalpy3.12-25.1.3 b/plugins/python-build/share/python-build/graalpy3.12-25.1.3 new file mode 100644 index 0000000000..0dcfe1d9bc --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.12-25.1.3 @@ -0,0 +1,61 @@ +# Copyright (c) 2026, 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='25.1.3' +BUILD='' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy3.12-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="53d46f3ad78229699eb00677f4cb5e3cfe451b58c46970e4d4272a719b53ce82" + ;; +"linux-aarch64" ) + checksum="947170f0896c8acb02b364caad3e0c01439c12cbdad1b7605cff589b7dd5b26e" + ;; +"macos-aarch64" ) + checksum="adb17eb3aa3c5701cfc518af26bbaf4e5755ecb62a6a22d490af06523ea02913" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + { echo + colorize 1 "ERROR" + echo "Oracle GraalPy currently doesn't provide snapshot builds. Use graalpy3.12-community if you need snapshots." + echo + } >&2 + exit 1 +fi + +url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.12-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" + +install_package "graalpy3.12-${VERSION}" "${url}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy3.12-community-25.1.3 b/plugins/python-build/share/python-build/graalpy3.12-community-25.1.3 new file mode 100644 index 0000000000..42b77d8f69 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.12-community-25.1.3 @@ -0,0 +1,51 @@ +# Copyright (c) 2026, 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='25.1.3' +BUILD='' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="1705b59e5a3d04364b1fa4cbb31ad6c273b487a87dc67e336fc5476b599c8d3e" + ;; +"linux-aarch64" ) + checksum="2558dec612e02b1ce5d7807fdd338f2a65dd9a0e62913458a32202289cc211ac" + ;; +"macos-aarch64" ) + checksum="76c0ccde939b94e6669a0e7eb01df612a070a6dbb966ed70989a851a9b1066e8" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +if [ -n "${BUILD}" ]; then + url="https://github.com/graalvm/graalvm-ce-dev-builds/releases/download/${VERSION}-dev-${BUILD}/graalpy3.12-community-dev-${graalpy_arch}.tar.gz" +else + url="https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.12-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" +fi + +install_package "graalpy3.12-community-${VERSION}${BUILD}" "${url}" "copy" ensurepip From 46cc3e552b7f3b4c4bb996b162d0596ae2ff85e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jul 2026 10:27:40 +0300 Subject: [PATCH 1191/1324] Bump actions/checkout from 6 to 7 in the github-actions group (#3486) Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 6 to 7 - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_version.yml | 2 +- .github/workflows/macos_build.yml | 2 +- .github/workflows/modified_scripts_build.yml | 10 +++++----- .github/workflows/pyenv_tests.yml | 2 +- .github/workflows/ubuntu_build.yml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 5a75ad0e95..530e514126 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -14,7 +14,7 @@ jobs: add_cpython: runs-on: ubuntu-slim steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: actions/setup-python@v6 with: python-version: 3 diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml index 70672ed9a8..b30511ac32 100644 --- a/.github/workflows/macos_build.yml +++ b/.github/workflows/macos_build.yml @@ -20,7 +20,7 @@ jobs: - "3.14" runs-on: macos-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd - run: | diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 73fed17238..1ce8594c85 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -8,7 +8,7 @@ jobs: versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}} versions_macos_build_exclude: ${{steps.modified-versions.outputs.versions_macos_build_exclude}} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: git fetch origin "$GITHUB_BASE_REF" - shell: bash run: > @@ -94,7 +94,7 @@ jobs: exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}} runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -156,7 +156,7 @@ jobs: os: ["macos-14", "macos-15", "macos-15-intel"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -205,7 +205,7 @@ jobs: - ubuntu-24.04 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" @@ -268,7 +268,7 @@ jobs: os: ["ubuntu-latest"] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | #envvars export PYENV_ROOT="$GITHUB_WORKSPACE" diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index cf3e343bec..ece8d2cccc 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -21,7 +21,7 @@ jobs: - macos-26 runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | if test "$RUNNER_OS" == "macOS"; then brew install coreutils fish diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml index 7c496c3ec5..697f4bd7c4 100644 --- a/.github/workflows/ubuntu_build.yml +++ b/.github/workflows/ubuntu_build.yml @@ -20,7 +20,7 @@ jobs: - "3.14" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - run: | sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ libbz2-dev libreadline-dev libsqlite3-dev curl \ From 19f4c7cf204174a7f7758a1a51cd6b613f5d0409 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Fri, 3 Jul 2026 11:38:54 +0530 Subject: [PATCH 1192/1324] Add an experimental pyenv-binary plugin with a save command (#3487) * pyenv-binary: add experimental plugin skeleton Adds a new plugin, decoupled from `pyenv install`, for packaging and installing relocatable Python binaries. This commit is just the command dispatcher; the individual subcommands follow. `pyenv binary ` dispatches to the matching script under the plugin's libexec, so subcommands stay out of the top-level `pyenv commands` list. Groundwork for the binary distribution support discussed in #2334. * pyenv-binary: add the `save` subcommand `pyenv binary save []` packs an installed version into a relocatable .tar.gz with relative paths and writes a metadata file recording the build platform, distro, libc version and the external system libraries the build links against (via `ldd` on Linux, `otool -L` on macOS). * pyenv-binary: reject invalid version names and drop readlink -f in save A version is a single directory name under versions/, so refuse names with a slash or a dot-dot component before building the prefix path. Also emit the python paths directly instead of `readlink -f`, which BSD readlink on macOS does not support; ldd/otool follow the symlinks anyway, so the resolved paths were never needed. * pyenv-binary: test the `save` subcommand Cover argument validation, the version-name guard, and packaging an installed version into an archive with matching metadata. * pyenv-binary: test dependency parsing and tighten the version guard Add tests that feed realistic ldd and otool listings through save and check only the libraries resolving outside the prefix end up in the metadata, since that filtering is the fiddliest part of the command. Narrow the version guard to reject `.' and `..' rather than any name containing a dot-dot, now that a slash is already refused, and note why the find still matches *.so.* even though CPython does not produce them. --- plugins/.gitignore | 1 + plugins/pyenv-binary/README.md | 27 ++++ plugins/pyenv-binary/bin/pyenv-binary | 61 +++++++++ .../pyenv-binary/libexec/pyenv-binary-save | 107 ++++++++++++++++ plugins/pyenv-binary/test/save.bats | 117 ++++++++++++++++++ plugins/pyenv-binary/test/test_helper.bash | 68 ++++++++++ 6 files changed, 381 insertions(+) create mode 100644 plugins/pyenv-binary/README.md create mode 100755 plugins/pyenv-binary/bin/pyenv-binary create mode 100755 plugins/pyenv-binary/libexec/pyenv-binary-save create mode 100644 plugins/pyenv-binary/test/save.bats create mode 100644 plugins/pyenv-binary/test/test_helper.bash diff --git a/plugins/.gitignore b/plugins/.gitignore index acd0fcce1e..2a5caf55db 100644 --- a/plugins/.gitignore +++ b/plugins/.gitignore @@ -2,4 +2,5 @@ !/.gitignore !/version-ext-compat !/python-build +!/pyenv-binary /python-build/test/build diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md new file mode 100644 index 0000000000..15023325d5 --- /dev/null +++ b/plugins/pyenv-binary/README.md @@ -0,0 +1,27 @@ +# pyenv-binary (experimental) + +Package an installed Python version into a relocatable archive that can be +installed on another machine. + +This is experimental and intentionally decoupled: it does not change +`pyenv install` or any other command. You drive it explicitly through +`pyenv binary`. Run `pyenv binary --help` for details on a command. + +## Portability + +An archive is portable across machines that share its build platform (OS, +architecture and a compatible libc) and have the recorded system libraries. It +is not portable across, say, glibc and musl, or to an older glibc; the platform +and dependency metadata exist to catch that. + +## Commands + +### `pyenv binary save []` + +Packs an installed version into `-.tar.gz` (relative paths) +and writes `-.meta` describing the build platform (OS, arch, +distro and libc version) and the system libraries the build links against. + +```sh +pyenv binary save 3.12.7 ./dist +``` diff --git a/plugins/pyenv-binary/bin/pyenv-binary b/plugins/pyenv-binary/bin/pyenv-binary new file mode 100755 index 0000000000..9cd29950f3 --- /dev/null +++ b/plugins/pyenv-binary/bin/pyenv-binary @@ -0,0 +1,61 @@ +#!/usr/bin/env bash +# +# Summary: Package an installed Python version as a relocatable binary (experimental) +# +# Usage: pyenv binary [] +# +# `pyenv binary` packages an already-installed Python version into a relocatable +# archive that can be installed on another machine. It is experimental and does +# not touch `pyenv install' or any other command. +# +# Run `pyenv binary' to list its commands, or `pyenv binary --help' +# for command-specific help. +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +libexec="${BASH_SOURCE%/*}/../libexec" + +list_commands() { + local path + for path in "$libexec"/pyenv-binary-*; do + [ -e "$path" ] && echo "${path##*/pyenv-binary-}" + done +} + +# Provide pyenv completions +if [ "$1" = "--complete" ]; then + shift + if [ -z "$1" ]; then + list_commands + else + command_path="${libexec}/pyenv-binary-$1" + shift + [ -x "$command_path" ] && exec "$command_path" --complete "$@" + fi + exit +fi + +subcommand="$1" +if [ -z "$subcommand" ]; then + { pyenv-help binary + echo + echo "Commands:" + list_commands | sed 's/^/ /' + } >&2 + exit 1 +fi +shift + +command_path="${libexec}/pyenv-binary-${subcommand}" +if [ ! -x "$command_path" ]; then + echo "pyenv-binary: no such command \`${subcommand}'" >&2 + exit 1 +fi + +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + # `pyenv help' looks the command up on PATH; the subcommands live in libexec. + PATH="${libexec}:${PATH}" exec pyenv-help "binary-${subcommand}" +fi + +exec "$command_path" "$@" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save new file mode 100755 index 0000000000..e427368112 --- /dev/null +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -0,0 +1,107 @@ +#!/usr/bin/env bash +# +# Summary: Save an installed Python version as a relocatable archive +# +# Usage: pyenv binary save [] +# +# Packs an installed version into a relocatable .tar.gz (relative paths) and +# writes a metadata file listing the build platform and the system libraries +# it links against, so an installer can check compatibility before unpacking. +# +# An installed version, as listed by `pyenv versions --bare'. +# Where to write the archive and metadata (default: `.'). +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +# Provide pyenv completions +if [ "$1" = "--complete" ]; then + exec pyenv-versions --bare +fi + +version="$1" +output_dir="${2:-$PWD}" + +if [ -z "$version" ]; then + echo "Usage: pyenv binary save []" >&2 + exit 1 +fi + +# A version is a single directory name under versions/. With no slash allowed, +# the only remaining names that could point elsewhere are `.' and `..'. +case "$version" in +*/* | .. | . ) + echo "pyenv-binary: invalid version name \`${version}'" >&2 + exit 1 + ;; +esac + +prefix="${PYENV_ROOT}/versions/${version}" +if [ ! -d "${prefix}/bin" ]; then + echo "pyenv-binary: version \`${version}' is not installed" >&2 + exit 1 +fi + +os="$(uname -s)" +arch="$(uname -m)" +platform="$(printf '%s' "$os" | tr '[:upper:]' '[:lower:]')-${arch}" + +# Record the distro and libc version. Platform and arch alone are too coarse to +# judge compatibility: a build is only portable to a matching libc (e.g. a +# glibc 2.36 build will not load on an older glibc, nor on musl at all). +distro="" +libc="" +if [ -r /etc/os-release ]; then + distro="$( . /etc/os-release && printf '%s %s' "${ID:-}" "${VERSION_ID:-}" )" +elif [ "$os" = "Darwin" ]; then + distro="macos $(sw_vers -productVersion 2>/dev/null)" +fi +if [ "$os" = "Linux" ]; then + libc="$(getconf GNU_LIBC_VERSION 2>/dev/null || true)" +fi + +# List the external shared libraries the install links against: those that +# resolve outside its own prefix, so they must already exist on the target. +# The interpreter plus every bundled shared object are inspected. +system_deps() { + local f + { + for f in "${prefix}"/bin/python*; do + [ -e "$f" ] && printf '%s\n' "$f" + done + # CPython ships its extension modules as *.so (and *.dylib on macOS). A + # bare *.so.* is unusual for CPython itself, but the odd build carries a + # versioned copy alongside, so match it too rather than miss a dependency. + find "${prefix}" -type f \( -name '*.so' -o -name '*.so.*' -o -name '*.dylib' \) + } | sort -u | while IFS= read -r f; do + if [ "$os" = "Darwin" ]; then + otool -L "$f" 2>/dev/null | tail -n +2 | awk -v pfx="${prefix}/" \ + '$1 !~ /^@/ && substr($1, 1, length(pfx)) != pfx { print $1 }' + else + ldd "$f" 2>/dev/null | awk -v pfx="${prefix}/" \ + '$2 == "=>" && $3 ~ /^\// && substr($3, 1, length(pfx)) != pfx { print $1 }' + fi + done | sort -u +} + +mkdir -p "$output_dir" +archive="${version}-${platform}.tar.gz" +metadata="${version}-${platform}.meta" + +tar -C "$prefix" -czf "${output_dir}/${archive}" . + +{ + echo "# pyenv-binary metadata" + echo "version=${version}" + echo "os=${os}" + echo "arch=${arch}" + echo "platform=${platform}" + [ -n "$distro" ] && echo "distro=${distro}" + [ -n "$libc" ] && echo "libc=${libc}" + echo "archive=${archive}" + system_deps | while IFS= read -r dep; do + [ -n "$dep" ] && echo "dep=${dep}" + done +} > "${output_dir}/${metadata}" + +echo "Saved ${archive} and ${metadata} to ${output_dir}" diff --git a/plugins/pyenv-binary/test/save.bats b/plugins/pyenv-binary/test/save.bats new file mode 100644 index 0000000000..1e1188ef70 --- /dev/null +++ b/plugins/pyenv-binary/test/save.bats @@ -0,0 +1,117 @@ +#!/usr/bin/env bats + +load test_helper + +create_version() { + mkdir -p "${PYENV_ROOT}/versions/$1/bin" +} + +platform() { + echo "$(uname -s | tr '[:upper:]' '[:lower:]')-$(uname -m)" +} + +@test "fails with no version given" { + run pyenv-binary-save + assert_failure "Usage: pyenv binary save []" +} + +@test "fails for a version that is not installed" { + run pyenv-binary-save 9.9.9 + assert_failure "pyenv-binary: version \`9.9.9' is not installed" +} + +@test "rejects a version name containing a slash" { + run pyenv-binary-save "foo/bar" + assert_failure "pyenv-binary: invalid version name \`foo/bar'" +} + +@test "rejects the parent directory reference" { + run pyenv-binary-save ".." + assert_failure "pyenv-binary: invalid version name \`..'" +} + +@test "packages an installed version" { + create_version "3.12.7" + local out="${BATS_TEST_TMPDIR}/dist" + run pyenv-binary-save "3.12.7" "$out" + assert_success "Saved 3.12.7-$(platform).tar.gz and 3.12.7-$(platform).meta to $out" + assert [ -f "${out}/3.12.7-$(platform).tar.gz" ] + assert [ -f "${out}/3.12.7-$(platform).meta" ] +} + +@test "records the platform in the metadata" { + create_version "3.12.7" + local out="${BATS_TEST_TMPDIR}/dist" + pyenv-binary-save "3.12.7" "$out" >/dev/null + run cat "${out}/3.12.7-$(platform).meta" + assert_success + assert_output_contains "version=3.12.7" + assert_output_contains "platform=$(platform)" + assert_output_contains "archive=3.12.7-$(platform).tar.gz" +} + +# Put an executable on PATH that stands in for a system tool during the test. +stub() { + local name="$1" + local dir="${BATS_TEST_TMPDIR}/stubs" + mkdir -p "$dir" + { echo "#!/usr/bin/env bash"; cat -; } > "${dir}/${name}" + chmod +x "${dir}/${name}" + export PATH="${dir}:$PATH" +} + +@test "records only the libraries ldd resolves outside the prefix" { + create_version "3.12.7" + touch "${PYENV_ROOT}/versions/3.12.7/bin/python3.12" + + # A realistic ldd listing: the vdso and the loader have no `=>' mapping, + # libpython resolves inside the prefix, and libc/libm are external. + stub ldd <<'STUB' +prefix="${PYENV_ROOT}/versions/3.12.7" +cat < ${prefix}/lib/libpython3.12.so.1.0 (0x00007f4a3c000000) + libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4a3bc00000) + libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4a3b800000) + /lib64/ld-linux-x86-64.so.2 (0x00007f4a3c200000) +EOF +STUB + + run pyenv-binary-save "3.12.7" "${BATS_TEST_TMPDIR}/dist" + assert_success + + run grep '^dep=' "${BATS_TEST_TMPDIR}/dist/"*.meta + assert_output "dep=libc.so.6 +dep=libm.so.6" +} + +@test "records only the libraries otool resolves outside the prefix" { + create_version "3.12.7" + touch "${PYENV_ROOT}/versions/3.12.7/bin/python3.12" + + # Take the macOS path by faking the platform, then feed a realistic otool + # listing: the first line names the file, @rpath and in-prefix entries are + # bundled, and libSystem is the one external dependency. + stub uname <<'STUB' +case "$1" in + -s) echo Darwin ;; + -m) echo arm64 ;; + *) exec /usr/bin/uname "$@" ;; +esac +STUB + stub otool <<'STUB' +prefix="${PYENV_ROOT}/versions/3.12.7" +cat < Date: Sat, 11 Jul 2026 07:22:46 +0300 Subject: [PATCH 1195/1324] Merge commit from fork --- libexec/pyenv-global | 4 ++++ libexec/pyenv-local | 4 ++++ libexec/pyenv-prefix | 4 ++++ libexec/pyenv-version | 4 ++++ libexec/pyenv-version-name | 4 ++++ libexec/pyenv-versions | 8 ++++++++ libexec/pyenv-which | 4 ++++ test/global.bats | 8 ++++++++ test/local.bats | 7 +++++++ test/prefix.bats | 6 ++++++ test/version-name.bats | 8 ++++++++ test/version.bats | 9 +++++++++ test/versions.bats | 12 ++++++++++++ test/which.bats | 11 +++++++++++ 14 files changed, 93 insertions(+) diff --git a/libexec/pyenv-global b/libexec/pyenv-global index dd9dae9750..de6007f7e4 100755 --- a/libexec/pyenv-global +++ b/libexec/pyenv-global @@ -36,12 +36,16 @@ if [ -n "$versions" ]; then pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}" else OLDIFS="$IFS" + # VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting + # which is undesired + set -f IFS=: versions=($( pyenv-version-file-read "$PYENV_VERSION_FILE" || pyenv-version-file-read "${PYENV_ROOT}/global" || pyenv-version-file-read "${PYENV_ROOT}/default" || echo system )) + set +f IFS="$OLDIFS" for version in "${versions[@]}"; do echo "$version" diff --git a/libexec/pyenv-local b/libexec/pyenv-local index a44576a64d..4c4e37c18e 100755 --- a/libexec/pyenv-local +++ b/libexec/pyenv-local @@ -59,7 +59,11 @@ elif [ -n "$versions" ]; then pyenv-version-file-write ${FORCE:+-f }.python-version "${versions[@]}" else if version_file="$(pyenv-version-file "$PWD")"; then + # VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting + # which is undesired + set -f IFS=: versions=($(pyenv-version-file-read "$version_file")) + set +f for version in "${versions[@]}"; do echo "$version" done diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index 65bc542580..f42bd6608b 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -28,6 +28,9 @@ fi PYENV_PREFIX_PATHS=() OLDIFS="$IFS" { IFS=: + # Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting + # which is undesired + set -f for version in ${PYENV_VERSION}; do if [ "$version" = "system" ]; then if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python --skip-advice 2>/dev/null)" || \ @@ -52,6 +55,7 @@ OLDIFS="$IFS" exit 1 fi done + set +f } IFS="$OLDIFS" diff --git a/libexec/pyenv-version b/libexec/pyenv-version index 75e2287c65..a2ad8e7e9a 100755 --- a/libexec/pyenv-version +++ b/libexec/pyenv-version @@ -9,7 +9,11 @@ set -e exitcode=0 OLDIFS="$IFS" +# VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting +# which is undesired +set -f IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) || exitcode=$? +set +f IFS="$OLDIFS" unset bare diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index f7c57efb23..4430f8ed63 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -46,6 +46,9 @@ versions=() OLDIFS="$IFS" { IFS=: any_not_installed=0 + # Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting + # which is undesired + set -f for version in ${PYENV_VERSION}; do # Remove the explicit 'python-' prefix from versions like 'python-3.12'. normalised_version="${version#python-}" @@ -66,6 +69,7 @@ OLDIFS="$IFS" fi fi done + set +f } IFS="$OLDIFS" diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index bfd67c70a8..91cb56d4c3 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -99,6 +99,9 @@ else miss_prefix=" " OLDIFS="$IFS" IFS=: + # VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting + # which is undesired + set -f if ((${BASH_VERSINFO[0]} > 3)); then for i in $(pyenv-version-name || true); do current_versions["$i"]="1" @@ -106,6 +109,7 @@ else else current_versions=($(pyenv-version-name || true)) fi + set +f IFS="$OLDIFS" include_system="1" fi @@ -161,11 +165,15 @@ versions_dir_entries=("$versions_dir"/*) if sort --version-sort /dev/null 2>&1; then # system sort supports version sorting OLDIFS="$IFS" + # VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting + # which is undesired + set -f IFS=$'\n' versions_dir_entries=($( printf "%s\n" "${versions_dir_entries[@]}" | sort --version-sort )) + set +f IFS="$OLDIFS" fi diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 4cdcfeb073..1bc6ed0e0b 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -63,7 +63,11 @@ if [ -z "$PYENV_COMMAND" ]; then fi OLDIFS="$IFS" +# Unquoted $VAR or VAR=() of unquoted value does glob expansion (against the current dir's contents) +# after IFS-splitting which is undesired +set -f IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name -f)}) +set +f IFS="$OLDIFS" declare -a nonexistent_versions diff --git a/test/global.bats b/test/global.bats index 62870b3e70..be67987d9f 100644 --- a/test/global.bats +++ b/test/global.bats @@ -16,6 +16,14 @@ load test_helper assert_output "1.2.3" } +@test "version with glob characters is handled correctly" { + touch 1.1 + mkdir -p "$PYENV_ROOT" + echo "[1-9].?*" > "$PYENV_ROOT/version" + run pyenv-global + assert_success "[1-9].?*" +} + @test "set PYENV_ROOT/version" { mkdir -p "$PYENV_ROOT/versions/1.2.3" run pyenv-global "1.2.3" diff --git a/test/local.bats b/test/local.bats index 98639673db..74d02e8a54 100644 --- a/test/local.bats +++ b/test/local.bats @@ -19,6 +19,13 @@ _setup() { assert_success "1.2.3" } +@test "version with glob characters is handled correctly" { + touch 1.1 + echo "[1-9].?*" > .python-version + run pyenv-local + assert_success "[1-9].?*" +} + @test "discovers version file in parent directory" { echo "1.2.3" > .python-version mkdir -p "subdir" && cd "subdir" diff --git a/test/prefix.bats b/test/prefix.bats index f52e520d9b..3a6bfb6a24 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -16,6 +16,12 @@ load test_helper assert_failure "pyenv: version \`1.2.3' not installed" } +@test "version with glob characters is handled correctly" { + touch 1.1 + PYENV_VERSION="[1-9].?*" run pyenv-prefix + assert_failure "pyenv: version \`[1-9].?*' not installed" +} + @test "prefix for system" { mkdir -p "${PYENV_TEST_DIR}/bin" touch "${PYENV_TEST_DIR}/bin/python" diff --git a/test/version-name.bats b/test/version-name.bats index cc179b97e7..95afded8ce 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -22,6 +22,14 @@ _setup() { assert_success "system" } +@test "version with glob characters is handled correctly" { + touch 1.1 + PYENV_VERSION="[1-9].?*" run pyenv-version-name + assert_failure <<'!' +pyenv: version `[1-9].?*' is not installed (set by PYENV_VERSION environment variable) +! +} + @test "PYENV_VERSION can be overridden by hook" { create_version "2.7.11" create_version "3.5.1" diff --git a/test/version.bats b/test/version.bats index a311b62ff4..25623413cc 100644 --- a/test/version.bats +++ b/test/version.bats @@ -79,3 +79,12 @@ OUT 3.3.3 OUT } + +@test "version with glob characters is handled correctly" { + touch 1.1 + PYENV_VERSION="[1-9].?*" run pyenv-version + assert_failure + assert_output < Date: Sat, 11 Jul 2026 08:02:53 +0300 Subject: [PATCH 1196/1324] Adapt tests involving current directory for Docker In Docker CI tests, the default current dir is read-only --- test/global.bats | 2 +- test/local.bats | 2 +- test/prefix.bats | 2 +- test/version-name.bats | 2 +- test/version.bats | 2 +- test/versions.bats | 2 +- test/which.bats | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/test/global.bats b/test/global.bats index be67987d9f..18634bab4d 100644 --- a/test/global.bats +++ b/test/global.bats @@ -17,7 +17,7 @@ load test_helper } @test "version with glob characters is handled correctly" { - touch 1.1 + cd "$BATS_TEST_TMPDIR"; touch 1.1 mkdir -p "$PYENV_ROOT" echo "[1-9].?*" > "$PYENV_ROOT/version" run pyenv-global diff --git a/test/local.bats b/test/local.bats index 74d02e8a54..84205cce2a 100644 --- a/test/local.bats +++ b/test/local.bats @@ -20,7 +20,7 @@ _setup() { } @test "version with glob characters is handled correctly" { - touch 1.1 + cd "$BATS_TEST_TMPDIR"; touch 1.1 echo "[1-9].?*" > .python-version run pyenv-local assert_success "[1-9].?*" diff --git a/test/prefix.bats b/test/prefix.bats index 3a6bfb6a24..28a22a550f 100644 --- a/test/prefix.bats +++ b/test/prefix.bats @@ -17,7 +17,7 @@ load test_helper } @test "version with glob characters is handled correctly" { - touch 1.1 + cd "$BATS_TEST_TMPDIR"; touch 1.1 PYENV_VERSION="[1-9].?*" run pyenv-prefix assert_failure "pyenv: version \`[1-9].?*' not installed" } diff --git a/test/version-name.bats b/test/version-name.bats index 95afded8ce..6753529194 100644 --- a/test/version-name.bats +++ b/test/version-name.bats @@ -23,7 +23,7 @@ _setup() { } @test "version with glob characters is handled correctly" { - touch 1.1 + cd "$BATS_TEST_TMPDIR"; touch 1.1 PYENV_VERSION="[1-9].?*" run pyenv-version-name assert_failure <<'!' pyenv: version `[1-9].?*' is not installed (set by PYENV_VERSION environment variable) diff --git a/test/version.bats b/test/version.bats index 25623413cc..53c31f06ae 100644 --- a/test/version.bats +++ b/test/version.bats @@ -81,7 +81,7 @@ OUT } @test "version with glob characters is handled correctly" { - touch 1.1 + cd "$BATS_TEST_TMPDIR"; touch 1.1 PYENV_VERSION="[1-9].?*" run pyenv-version assert_failure assert_output < Date: Sat, 11 Jul 2026 08:23:42 +0300 Subject: [PATCH 1197/1324] Add miniconda3 26.5.3-1 (#3491) --- .../python-build/miniconda3-3.10-26.5.3-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.11-26.5.3-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.12-26.5.3-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.13-26.5.3-1 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.14-26.5.3-1 | 20 +++++++++++++++++++ 5 files changed, 100 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-1 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-1 b/plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-1 new file mode 100644 index 0000000000..145be8248e --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_26.5.3-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.5.3-1-Linux-aarch64.sh#d2988632a30ea71e158874b9c5386d016660908fec38ee58125af7783b1a0bf6" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_26.5.3-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.5.3-1-Linux-x86_64.sh#4a82fe0a50a28e8a9406b3ed8e465b7009aa7d0225566802c3370df96b10d834" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_26.5.3-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.5.3-1-MacOSX-arm64.sh#7868e87c7e1ecaa6ff25f5041e0abdf766e5e2d082788b26bcf57554d0036a2d" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-1 b/plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-1 new file mode 100644 index 0000000000..92342ded05 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_26.5.3-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.5.3-1-Linux-aarch64.sh#4a2e39642fcd0b25cf199f5ada4725120a9a40fa10e864d67b8f93e7f2f44dad" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_26.5.3-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.5.3-1-Linux-x86_64.sh#f1d308a450763ce617f4e4f1609521358f663b2d1c097cfcc11a1c1f09baf680" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_26.5.3-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.5.3-1-MacOSX-arm64.sh#721bccd83c53ff56e364faf883c5da9abfdf61daecb4863c533818851b33edc3" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-1 b/plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-1 new file mode 100644 index 0000000000..f91b48ace3 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_26.5.3-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.5.3-1-Linux-aarch64.sh#9e48caecbad9cc43d8a483584f0a5e1da2754189416a8811aaada3f58aceeb67" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_26.5.3-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.5.3-1-Linux-x86_64.sh#ecb43ee4ae30a7a5af87737e9548ceb21f0a10ec55b8dc40d247aa925b80bfec" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_26.5.3-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.5.3-1-MacOSX-arm64.sh#f5767f038d5aa8299254b96b7e0db4f086c29e4b3a620fc38fea51974f66abdd" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-1 b/plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-1 new file mode 100644 index 0000000000..0604dafe80 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_26.5.3-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.5.3-1-Linux-aarch64.sh#4eaf1f2d83ede3ad010afa6ad19bef69893ca4667ba5996f51efb3080c08a70d" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_26.5.3-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.5.3-1-Linux-x86_64.sh#7358a5961dc6a4941d087281cd70313728fcc68695735e18a337321bc31c7f51" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_26.5.3-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.5.3-1-MacOSX-arm64.sh#c73b91d59c872f472d7a21dadaf0cc70dcff1fadf5bd98200bd15341be2bcbd0" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-1 b/plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-1 new file mode 100644 index 0000000000..c5d5d65592 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py314_26.5.3-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.5.3-1-Linux-aarch64.sh#781abf4cec9b842f5ed508e7c364ed9951380ba11187b80fe5d9c3dbf9ffccea" "miniconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py314_26.5.3-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.5.3-1-Linux-x86_64.sh#42cfece170da342364a78d629e06b94dfd81b0f2717d7655729100d888d606b4" "miniconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py314_26.5.3-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.5.3-1-MacOSX-arm64.sh#0cb1e1d43810d3118f7b6cd0095aff48dbde8312a19cb8c44e9a79c38bb48be3" "miniconda" verify_py314 + ;; +* ) + { 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 From b3a3e702f1bb24ff78e242dd3b17dd927ceb2099 Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 11 Jul 2026 08:24:01 +0300 Subject: [PATCH 1198/1324] version-name: skip redundant checks (#3492) --- libexec/pyenv-version-name | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index 4430f8ed63..6483c14a6f 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -46,20 +46,22 @@ versions=() OLDIFS="$IFS" { IFS=: any_not_installed=0 + normalization_done= # Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting # which is undesired set -f for version in ${PYENV_VERSION}; do # Remove the explicit 'python-' prefix from versions like 'python-3.12'. normalised_version="${version#python-}" - if version_exists "${version}" || [ "$version" = "system" ]; then - versions+=("${version}") - elif version_exists "${normalised_version}"; then + [[ $version != "${normalised_version}" ]] && normalization_done=1 + if [[ $version == "system" ]] || version_exists "${normalised_version}" ; then versions+=("${normalised_version}") - elif resolved_version="$(pyenv-latest -b "${version}")"; then - versions+=("${resolved_version}") + elif [[ -n $normalization_done ]] && version_exists "${version}"; then + versions+=("${version}") elif resolved_version="$(pyenv-latest -b "${normalised_version}")"; then versions+=("${resolved_version}") + elif [[ -n $normalization_done ]] && resolved_version="$(pyenv-latest -b "${version}")"; then + versions+=("${resolved_version}") else if [[ -n $FORCE ]]; then versions+=("${normalised_version}") From 135adbb192d32142a648cae7c2f7e491f5c57202 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 13 Jul 2026 21:01:27 +0300 Subject: [PATCH 1199/1324] 2.8.0 --- CHANGELOG.md | 14 ++++++++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2174311a27..5c74434e96 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,19 @@ # Version History +## Release v2.8.0 +* CI: add_version enhancements by @native-api in https://github.com/pyenv/pyenv/pull/3480 +* Add miniforge3-26.3.2-2, 26.3.2-3 by @native-api in https://github.com/pyenv/pyenv/pull/3481 +* rehash: fix race condition in landlock writability check by @Sheile in https://github.com/pyenv/pyenv/pull/3483 +* Add script to generate sponsors section for release notes by @macayu17 in https://github.com/pyenv/pyenv/pull/3478 +* install: Add an ability to install a version under an alias by @macayu17 in https://github.com/pyenv/pyenv/pull/3484 +* Add graalpy-3.12-25.1.3 by @msimacek in https://github.com/pyenv/pyenv/pull/3485 +* Bump actions/checkout from 6 to 7 in the github-actions group by @dependabot[bot] in https://github.com/pyenv/pyenv/pull/3486 +* Add an experimental pyenv-binary plugin with a save command by @macayu17 in https://github.com/pyenv/pyenv/pull/3487 +* CI: dependabot: set cooldown by @orbisai0security in https://github.com/pyenv/pyenv/pull/3489 +* Fix typos in docs, scripts, and tests by @maxtaran2010 in https://github.com/pyenv/pyenv/pull/3490 +* Add miniconda3 26.5.3-1 by @native-api in https://github.com/pyenv/pyenv/pull/3491 +* version-name: skip redundant checks by @native-api in https://github.com/pyenv/pyenv/pull/3492 + ## Release v2.7.3 * CI: add_version enhancements by @macayu17 in https://github.com/pyenv/pyenv/pull/3475 * Add CPython 3.15.0b3 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3479 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f9c0a3635b..c3399090c2 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.7.3" +version="2.8.0" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 35d1c0995a..8a1f7ef1cd 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.7.3" +PYTHON_BUILD_VERSION="2.8.0" OLDIFS="$IFS" From 286a167cf007aefb3c72ee8b10e5dc7011f42e7f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 3 Jul 2026 17:05:12 +0300 Subject: [PATCH 1200/1324] gitignore Vim swap files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 17548950b4..1432ec4fe8 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /default-packages .idea *.un~ +*.swp From 6188e9efa9c04c60a82398272b5a59ea0fe50110 Mon Sep 17 00:00:00 2001 From: macayu17 Date: Thu, 16 Jul 2026 10:14:40 +0300 Subject: [PATCH 1201/1324] pyenv-binary: add the `generate-installer` subcommand * Relocation only implemented for Linux (requires patchelf + ldconfig -p) * Shell-completing file name is not possible with current Pyenv completion logic: `pyenv-complete` does not pass info about the word being completed * Fix `save`-produced tarball to be compatible with Python-Build fetch_tarball() * Reuse test_helper from core -- Co-authored-by: Ivan Pozdeev --- plugins/pyenv-binary/README.md | 30 +++ plugins/pyenv-binary/bin/pyenv-binary | 8 +- .../libexec/pyenv-binary-generate-installer | 189 ++++++++++++++++++ .../libexec/pyenv-binary-relocate | 58 ++++++ .../pyenv-binary/libexec/pyenv-binary-save | 2 +- .../pyenv-binary/test/generate-installer.bats | 123 ++++++++++++ plugins/pyenv-binary/test/relocate.bats | 72 +++++++ plugins/pyenv-binary/test/save.bats | 46 ++--- plugins/pyenv-binary/test/test_helper.bash | 69 +------ 9 files changed, 499 insertions(+), 98 deletions(-) create mode 100755 plugins/pyenv-binary/libexec/pyenv-binary-generate-installer create mode 100755 plugins/pyenv-binary/libexec/pyenv-binary-relocate create mode 100644 plugins/pyenv-binary/test/generate-installer.bats create mode 100644 plugins/pyenv-binary/test/relocate.bats mode change 100644 => 120000 plugins/pyenv-binary/test/test_helper.bash diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index 15023325d5..ac01be5876 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -25,3 +25,33 @@ distro and libc version) and the system libraries the build links against. ```sh pyenv binary save 3.12.7 ./dist ``` + +### `pyenv binary generate-installer --archive-url [-o ]` + +Reads a `.meta` file and emits a python-build definition. Drop it into +python-build's definition directory and `pyenv install ` installs the +archive like any other version. The archive location is a parameter, so you can +host it anywhere (it does not have to be a pyenv location); the archive itself +must sit next to the `.meta` file so its checksum can be baked into the +definition. + +The definition refuses to install on a different OS/architecture, or an older +glibc, than the archive was built for, and checks that the system libraries it +needs are present. + +```sh +pyenv binary generate-installer ./dist/3.12.7-linux-x86_64.meta \ + --archive-url https://example.com/3.12.7-linux-x86_64.tar.gz \ + -o "$(pyenv root)/plugins/python-build/share/python-build/3.12.7-linux-x86_64" + +pyenv install 3.12.7-linux-x86_64 +``` + +### `pyenv binary relocate ` + +Rewrites the rpaths of a Python tree unpacked into `` so the interpreter +and its extension modules load the bundled libraries from there rather than from +the path the archive was built at. Uses `patchelf`. The generated definition +calls this; you rarely run it by hand. + +Relocation is implemented for Linux; macOS is not wired up yet. diff --git a/plugins/pyenv-binary/bin/pyenv-binary b/plugins/pyenv-binary/bin/pyenv-binary index 9cd29950f3..36e205326b 100755 --- a/plugins/pyenv-binary/bin/pyenv-binary +++ b/plugins/pyenv-binary/bin/pyenv-binary @@ -16,6 +16,11 @@ set -e libexec="${BASH_SOURCE%/*}/../libexec" +# The pyenv launcher only puts a plugin's bin on PATH, but `pyenv-help' looks a +# command up there. Add our libexec so the subcommands, and the help text they +# print, can be found. +export PATH="${libexec}:${PATH}" + list_commands() { local path for path in "$libexec"/pyenv-binary-*; do @@ -54,8 +59,7 @@ if [ ! -x "$command_path" ]; then fi if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then - # `pyenv help' looks the command up on PATH; the subcommands live in libexec. - PATH="${libexec}:${PATH}" exec pyenv-help "binary-${subcommand}" + exec pyenv-help "binary-${subcommand}" fi exec "$command_path" "$@" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer new file mode 100755 index 0000000000..3a3e8445bf --- /dev/null +++ b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer @@ -0,0 +1,189 @@ +#!/usr/bin/env bash +# +# Summary: Generate a python-build definition for a saved binary archive +# +# Usage: pyenv binary generate-installer --archive-url [-o ] +# +# Reads a metadata file written by `pyenv binary save' and emits a python-build +# definition. Dropped into python-build's definition directory, it installs the +# archive like any other version: `pyenv install' downloads it from , +# checks the platform and the required system libraries, unpacks it, then +# rewrites rpaths so the copy runs from its prefix. +# +# The archive must sit next to the metadata file so its checksum can be baked +# into the definition; `pyenv binary save' writes the two together. +# +# A .meta file written by `pyenv binary save'. +# The corresponsing binary package written by `pyenv binary save' +# needs to be present alongside it. +# --archive-url The URL for the resulting installation script to download +# the package from. +# -o Write the definition here (default: stdout). +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +# Provide pyenv completions +if [ "$1" = "--complete" ]; then + echo --archive-url + echo -o + exit +fi + +metadata="" +archive_url="" +output="" + +while [ $# -gt 0 ]; do + case "$1" in + --archive-url ) + [ $# -ge 2 ] || { echo "pyenv-binary: --archive-url needs a value" >&2; exit 1; } + archive_url="$2"; shift 2 ;; + -o ) + [ $# -ge 2 ] || { echo "pyenv-binary: -o needs a value" >&2; exit 1; } + output="$2"; shift 2 ;; + -* ) + echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;; + * ) + [ -z "$metadata" ] || { echo "pyenv-binary: unexpected argument \`$1'" >&2; exit 1; } + metadata="$1"; shift ;; + esac +done + +if [ -z "$metadata" ] || [ -z "$archive_url" ]; then + pyenv-help --usage binary-generate-installer >&2 + exit 1 +fi + +version="" os="" arch="" distro="" libc="" archive="" +deps="" +while IFS='=' read -r key value; do + case "$key" in + version ) version="$value" ;; + os ) os="$value" ;; + arch ) arch="$value" ;; + distro ) distro="$value" ;; + libc ) libc="$value" ;; + archive ) archive="$value" ;; + dep ) deps="${deps:+$deps }$value" ;; + esac +done < "$metadata" + +# Fail here if the metadata is incomplete, rather than bake a blank into the +# definition where a missing arch would give a confusing platform error. +for field in version os arch archive; do + if [ -z "${!field}" ]; then + echo "pyenv-binary: metadata is missing \`${field}'" >&2 + exit 1 + fi +done + +# macOS relocation needs install_name_tool and a different rpath scheme, so it is +# not supported yet. Other systems relocate with patchelf. +if [ "$os" = "Darwin" ]; then + echo "pyenv-binary: macOS archives are not supported yet" >&2 + exit 1 +fi + +# The glibc floor only applies on Linux; require it there so the definition can +# tell whether the target is new enough to run the binaries. +if [ "$os" = "Linux" ] && [ -z "$libc" ]; then + echo "pyenv-binary: metadata is missing \`libc'" >&2 + exit 1 +fi + +# python-build downloads the archive itself, so the checksum has to be baked in. +# The archive sits next to the metadata `save' wrote it alongside. +archive_path="$(dirname "$metadata")/${archive}" +if [ ! -r "$archive_path" ]; then + echo "pyenv-binary: cannot read the archive \`${archive_path}' to checksum it" >&2 + exit 1 +fi +if command -v sha256sum >/dev/null 2>&1; then + sha256="$(sha256sum "$archive_path")"; sha256="${sha256%% *}" +elif command -v shasum >/dev/null 2>&1; then + sha256="$(shasum -a 256 "$archive_path")"; sha256="${sha256%% *}" +elif command -v openssl >/dev/null 2>&1; then + sha256="$(openssl dgst -sha256 "$archive_path")"; sha256="${sha256##* }" +else + echo "pyenv-binary: need sha256sum, shasum or openssl to checksum the archive" >&2 + exit 1 +fi + +emit() { + # The values known now go in as %q-quoted assignments so a stray quote or space + # in the URL or metadata cannot break the definition or inject into it. The body + # below is a quoted here-doc, verbatim. + { + printf '# python-build definition for prebuilt Python %s (%s/%s%s).\n' \ + "$version" "$os" "$arch" "${distro:+, $distro}" + echo "# Generated by \`pyenv binary generate-installer'." + echo + printf 'EXPECT_OS=%q\n' "$os" + printf 'EXPECT_ARCH=%q\n' "$arch" + printf 'EXPECT_LIBC=%q\n' "$libc" + printf 'VERSION=%q\n' "$version" + printf 'ARCHIVE_URL=%q\n' "$archive_url" + printf 'SHA256=%q\n' "$sha256" + printf 'DEPS=%q\n' "$deps" + } + cat <<'EOF' + +os="$(uname -s)" +arch="$(uname -m)" +if [ "$os" != "$EXPECT_OS" ] || [ "$arch" != "$EXPECT_ARCH" ]; then + echo "pyenv-binary: this archive is for ${EXPECT_OS}/${EXPECT_ARCH}, not ${os}/${arch}" >&2 + exit 1 +fi + +# Refuse a target whose glibc is older than the one the archive was built on; +# the dynamic loader would reject the binaries. +case "$EXPECT_LIBC" in +"glibc "* ) + build_libc="${EXPECT_LIBC#glibc }" + target_libc="$(getconf GNU_LIBC_VERSION 2>/dev/null || true)" + case "$target_libc" in + "glibc "* ) + target_libc="${target_libc#glibc }" + older="$(printf '%s\n%s\n' "$build_libc" "$target_libc" | sort -V | head -n1)" + if [ "$older" = "$target_libc" ] && [ "$target_libc" != "$build_libc" ]; then + echo "pyenv-binary: archive needs glibc ${build_libc} or newer, but this system has ${target_libc}" >&2 + exit 1 + fi + ;; + esac + ;; +esac + +# Required system libraries must already be present on the target. ldconfig -p +# lists each library as " (...) => "; match the soname column +# exactly so a longer name like libc.so.6.1 does not satisfy libc.so.6. +if command -v ldconfig &>/dev/null && cache="$(ldconfig -p)"; then + missing="" + for dep in $DEPS; do + printf '%s\n' "$cache" | awk -v d="$dep" '$1 == d { found = 1 } END { exit !found }' \ + || missing="${missing} ${dep}" + done + if [ -n "$missing" ]; then + echo "pyenv-binary: missing required system libraries:${missing}" >&2 + exit 1 + fi +elif [ -n "$DEPS" ]; then + echo "pyenv-binary: cannot check required system libraries (ldconfig with -p not found)" >&2 +fi + +build_package_relocate() { + pyenv binary relocate "$PREFIX_PATH" +} + +install_package "Python-${VERSION}-binary" "${ARCHIVE_URL}#${SHA256}" copy relocate + +EOF +} + +if [ -n "$output" ]; then + emit > "$output" + echo "Wrote definition to ${output}" +else + emit +fi diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-relocate b/plugins/pyenv-binary/libexec/pyenv-binary-relocate new file mode 100755 index 0000000000..6b9778930c --- /dev/null +++ b/plugins/pyenv-binary/libexec/pyenv-binary-relocate @@ -0,0 +1,58 @@ +#!/usr/bin/env bash +# +# Summary: Rewrite an unpacked Python's rpaths so it runs from its prefix +# +# Usage: pyenv binary relocate +# +# Rewrites the rpaths of a Python tree that was unpacked into so the +# interpreter and its extension modules load the bundled libraries from their +# new location rather than the path it was built at. Requires patchelf. +# +# The definition that `pyenv binary generate-installer' produces calls this +# after `install_package ... copy' has laid the tree down. +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +if [ "$1" = "--complete" ]; then + exit +fi + +prefix="$1" +if [ -z "$prefix" ]; then + pyenv-help --usage binary-relocate >&2 + exit 1 +fi + +# patchelf can add an rpath and write one of any length; chrpath can only shorten +# an existing one, which is not enough to relocate every build, so require it. +if ! command -v patchelf >/dev/null 2>&1; then + echo "pyenv-binary: need patchelf to relocate the binary" >&2 + exit 1 +fi + +# The interpreter loads libpython from ../lib. Patch every ELF binary in bin/ so +# this holds whatever the interpreter is named (python3, python2.7, ...); the +# scripts alongside it (pip, idle) are not ELF, so `--print-rpath' fails on them +# and they are skipped. A tree with no interpreter at all did not unpack the way +# we expect, so treat that as an error rather than quietly relocating nothing. +found=0 +for file in "$prefix"/bin/*; do + [[ -f $file && -x $file && ! -L $file ]] || continue + patchelf --print-rpath "$file" >/dev/null 2>&1 || continue + patchelf --set-rpath "$prefix/lib" "$file" + found=1 +done +if [ "$found" -eq 0 ]; then + echo "pyenv-binary: found no interpreter to relocate under \`${prefix}/bin'" >&2 + exit 1 +fi + +# The extension modules CPython built are the only other objects with an rpath +# into the old prefix, so point them at lib/ as well. Anything a wheel installed +# carries an rpath of its own, often into a bundled library directory beside it, +# and would stop loading if we overwrote it. Each match is an ELF object we expect +# to patch, so let a failure stop us rather than swallow it. +while IFS= read -r so; do + patchelf --set-rpath "$prefix/lib" "$so" +done < <(find "$prefix" -path '*/lib-dynload/*.so') diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index e427368112..7a20b5c490 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -88,7 +88,7 @@ mkdir -p "$output_dir" archive="${version}-${platform}.tar.gz" metadata="${version}-${platform}.meta" -tar -C "$prefix" -czf "${output_dir}/${archive}" . +tar -C "$(dirname "$prefix")" -czf "${output_dir}/${archive}" "$(basename "$prefix")" { echo "# pyenv-binary metadata" diff --git a/plugins/pyenv-binary/test/generate-installer.bats b/plugins/pyenv-binary/test/generate-installer.bats new file mode 100644 index 0000000000..e7e36c514b --- /dev/null +++ b/plugins/pyenv-binary/test/generate-installer.bats @@ -0,0 +1,123 @@ +#!/usr/bin/env bats + +load test_helper + +create_meta() { + local os="${1-Linux}" + local arch="${2-x86_64}" + local libc="${3-glibc 2.17}" + local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz" + local meta="${BATS_TEST_TMPDIR}/sample.meta" + + rm -rf "${BATS_TEST_TMPDIR}/archive" + mkdir -p "${BATS_TEST_TMPDIR}/archive/3.12.7/bin" + printf '#!/bin/sh\n' > "${BATS_TEST_TMPDIR}/archive/3.12.7/bin/python" + chmod +x "${BATS_TEST_TMPDIR}/archive/3.12.7/bin/python" + tar -C "${BATS_TEST_TMPDIR}/archive" -czf "$archive" 3.12.7 + + { + echo "version=3.12.7" + echo "os=${os}" + echo "arch=${arch}" + [ -z "$libc" ] || echo "libc=${libc}" + echo "archive=${archive##*/}" + } > "$meta" + echo "$meta" +} + +@test "completion lists the options" { + run pyenv-binary-generate-installer --complete + assert_success "--archive-url +-o" +} + +@test "fails with no arguments" { + create_stub pyenv-help "echo usage" + run pyenv-binary-generate-installer + assert_failure "usage" +} + +@test "fails without an archive url" { + create_stub pyenv-help "echo usage" + run pyenv-binary-generate-installer "$(create_meta)" + assert_failure "usage" +} + +@test "fails when --archive-url has no value" { + run pyenv-binary-generate-installer "$(create_meta)" --archive-url + assert_failure "pyenv-binary: --archive-url needs a value" +} + +@test "rejects a second positional argument" { + run pyenv-binary-generate-installer "$(create_meta)" extra --archive-url http://x/a.tar.gz + assert_failure "pyenv-binary: unexpected argument \`extra'" +} + +@test "fails for a metadata file that cannot be read" { + run pyenv-binary-generate-installer /no/such.meta --archive-url http://x/a.tar.gz + assert_failure +} + +@test "refuses macOS metadata" { + run pyenv-binary-generate-installer "$(create_meta Darwin arm64 '')" \ + --archive-url http://x/a.tar.gz + assert_failure "pyenv-binary: macOS archives are not supported yet" +} + +@test "fails when required metadata is missing" { + local field meta + for field in version os arch archive; do + meta="$(create_meta)" + #cannot use -i: GNU sed requires -i[suf], BSD sed required -i + sed "/^${field}=/d" "$meta" > "${meta}.tmp"; mv "${meta}"{.tmp,} + + run pyenv-binary-generate-installer "$meta" --archive-url http://x/a.tar.gz + assert_failure "pyenv-binary: metadata is missing \`${field}'" + done +} + +@test "fails when Linux metadata is missing libc" { + run pyenv-binary-generate-installer "$(create_meta Linux x86_64 '')" \ + --archive-url http://x/a.tar.gz + assert_failure "pyenv-binary: metadata is missing \`libc'" +} + +@test "refuses a host whose glibc is older than the archive" { + local out="${BATS_TEST_TMPDIR}/definition" + pyenv-binary-generate-installer "$(create_meta Linux x86_64 'glibc 99.0')" \ + --archive-url http://example.com/a.tar.gz -o "$out" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub getconf 'echo "glibc 2.31"' + + run bash "$out" + assert_failure "pyenv-binary: archive needs glibc 99.0 or newer, but this system has 2.31" +} + +@test "fails when the archive is not beside the metadata" { + local meta="$(create_meta)" + rm "${BATS_TEST_TMPDIR}/3.12.7.tar.gz" + + run pyenv-binary-generate-installer "$meta" --archive-url http://x/a.tar.gz + assert_failure "pyenv-binary: cannot read the archive \`${BATS_TEST_TMPDIR}/3.12.7.tar.gz' to checksum it" +} + +@test "the generated definition is installable with python-build" { + ldconfig -p &>/dev/null || skip "ldconfig with -p is not present" + local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz" + local cache="${BATS_TEST_TMPDIR}/cache" + local definition="${BATS_TEST_TMPDIR}/definition" + local prefix="${BATS_TEST_TMPDIR}/install" + pyenv-binary-generate-installer "$(create_meta)" \ + --archive-url http://example.com/3.12.7.tar.gz -o "$definition" + mkdir -p "$cache" + cp "$archive" "${cache}/Python-3.12.7-binary.tar.gz" + create_stub pyenv 'echo "pyenv $*"' + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + + PYTHON_BUILD_CACHE_PATH="$cache" run \ + "${BATS_TEST_DIRNAME}/../../python-build/bin/python-build" "$definition" "$prefix" + assert_success + assert_line "pyenv binary relocate ${prefix}" + assert_line "Installed Python-3.12.7-binary to ${prefix}" + assert [ -x "${prefix}/bin/python" ] +} diff --git a/plugins/pyenv-binary/test/relocate.bats b/plugins/pyenv-binary/test/relocate.bats new file mode 100644 index 0000000000..0051a42c76 --- /dev/null +++ b/plugins/pyenv-binary/test/relocate.bats @@ -0,0 +1,72 @@ +#!/usr/bin/env bats + +load test_helper + +_setup() { + create_stub pyenv-help "echo usage" +} + +stub_patchelf() { + create_path_executable patchelf <> "${BATS_TEST_TMPDIR}/patchelf.log" +STUB +} + +create_interpreter() { + mkdir -p "${BATS_TEST_TMPDIR}/prefix/bin" + printf '#!/bin/sh\n' > "${BATS_TEST_TMPDIR}/prefix/bin/python2.7" + chmod +x "${BATS_TEST_TMPDIR}/prefix/bin/python2.7" +} + +@test "completion produces nothing" { + run pyenv-binary-relocate --complete + assert_success "" +} + +@test "fails without a prefix" { + run pyenv-binary-relocate + assert_failure "usage" +} + +@test "fails when patchelf is not available" { + PATH="$(path_without patchelf)" run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix" + assert_failure "pyenv-binary: need patchelf to relocate the binary" +} + +@test "fails when the prefix has no interpreter" { + create_path_executable patchelf "exit 0" + mkdir -p "${BATS_TEST_TMPDIR}/prefix" + + run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix" + assert_failure "pyenv-binary: found no interpreter to relocate under \`${BATS_TEST_TMPDIR}/prefix/bin'" +} + +@test "relocates an executable interpreter" { + stub_patchelf + create_interpreter + + run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix" + assert_success + run cat "${BATS_TEST_TMPDIR}/patchelf.log" + assert_output "--set-rpath ${BATS_TEST_TMPDIR}/prefix/lib ${BATS_TEST_TMPDIR}/prefix/bin/python2.7" +} + +@test "relocates the extension modules but not what a wheel installed" { + local lib="${BATS_TEST_TMPDIR}/prefix/lib/python3.12" + stub_patchelf + create_interpreter + mkdir -p "${lib}/lib-dynload" "${lib}/site-packages/numpy" + touch "${lib}/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so" + # A wheel points its extensions at the libraries it bundles alongside them, so + # its rpath is its own business and must survive relocation. + touch "${lib}/site-packages/numpy/_multiarray.so" + + run pyenv-binary-relocate "${BATS_TEST_TMPDIR}/prefix" + assert_success + run cat "${BATS_TEST_TMPDIR}/patchelf.log" + assert_line "--set-rpath ${BATS_TEST_TMPDIR}/prefix/lib ${lib}/lib-dynload/_ssl.cpython-312-x86_64-linux-gnu.so" + refute_line "--set-rpath ${BATS_TEST_TMPDIR}/prefix/lib ${lib}/site-packages/numpy/_multiarray.so" +} diff --git a/plugins/pyenv-binary/test/save.bats b/plugins/pyenv-binary/test/save.bats index 1e1188ef70..97c9f12a32 100644 --- a/plugins/pyenv-binary/test/save.bats +++ b/plugins/pyenv-binary/test/save.bats @@ -33,40 +33,39 @@ platform() { @test "packages an installed version" { create_version "3.12.7" local out="${BATS_TEST_TMPDIR}/dist" + local archive="${out}/3.12.7-$(platform).tar.gz" + run pyenv-binary-save "3.12.7" "$out" assert_success "Saved 3.12.7-$(platform).tar.gz and 3.12.7-$(platform).meta to $out" - assert [ -f "${out}/3.12.7-$(platform).tar.gz" ] + assert [ -f "$archive" ] assert [ -f "${out}/3.12.7-$(platform).meta" ] + run tar -tzf "$archive" + assert_success + assert_line 0 "3.12.7/" } @test "records the platform in the metadata" { create_version "3.12.7" local out="${BATS_TEST_TMPDIR}/dist" pyenv-binary-save "3.12.7" "$out" >/dev/null + run cat "${out}/3.12.7-$(platform).meta" assert_success - assert_output_contains "version=3.12.7" - assert_output_contains "platform=$(platform)" - assert_output_contains "archive=3.12.7-$(platform).tar.gz" -} - -# Put an executable on PATH that stands in for a system tool during the test. -stub() { - local name="$1" - local dir="${BATS_TEST_TMPDIR}/stubs" - mkdir -p "$dir" - { echo "#!/usr/bin/env bash"; cat -; } > "${dir}/${name}" - chmod +x "${dir}/${name}" - export PATH="${dir}:$PATH" + assert_line "version=3.12.7" + assert_line "platform=$(platform)" + assert_line "archive=3.12.7-$(platform).tar.gz" } @test "records only the libraries ldd resolves outside the prefix" { create_version "3.12.7" touch "${PYENV_ROOT}/versions/3.12.7/bin/python3.12" - - # A realistic ldd listing: the vdso and the loader have no `=>' mapping, - # libpython resolves inside the prefix, and libc/libm are external. - stub ldd <<'STUB' + create_path_executable uname <<'STUB' +case "$1" in + -s) echo Linux ;; + -m) echo x86_64 ;; +esac +STUB + create_path_executable ldd <<'STUB' prefix="${PYENV_ROOT}/versions/3.12.7" cat <.bats +Tests are executed using [Bats](https://github.com/bats-core/bats-core). +See the [tests README](test/README.md) for details. ### Contributing diff --git a/test/README.md b/test/README.md index 682702e2df..e8ba5e182d 100644 --- a/test/README.md +++ b/test/README.md @@ -15,62 +15,25 @@ Under the hood, `pyenv` test suites use `bats` as a test framework and are run o - `test` - Run the whole test suite on the local host - `test-docker` - - Run the whole test suite on docker - - Some volumes are used in read-only mode + - Run the whole test suite in Docker (in all environments) - `test-unit` - - Run the unit test -- `test-plugin` - - Run the plugin test -- `test-unit-docker-[BASH_VERSION]` - - Run the unit test under **official** bash docker container (alpine/busybox) with the specified bash version if present is in the `Makefile` - - Some volumes are used in read-only mode -- `test-unit-docker-gnu-[BASH_VERSION]` - - Run the unit test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile` - - Some volumes are used in read-only mode -- `test-plugin-docker-[BASH_VERSION]` - - Run the plugin test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile` - - Some volumes are used in read-only mode -- `test-plugin-docker-gnu-[BASH_VERSION]` - - Run the plugin test under **official** bash docker container (alpine/busybox), completed by **GNU Tools**, with the specified bash version if present is in the `Makefile` - - Some volumes are used in read-only mode + - Run core tests +- `test-python-build` + - Run Python-Build tests +- `test-binary` + - Run Pyenv-Binary tests +- `test-*-docker` + - Run the corresponding test suite in Docker +- `test-*-docker-[BASH_VERSION]`, `test-*-docker-gnu-[BASH_VERSION]` + - Run the corresponding test suite in the official Bash Docker container (alpine/busybox) + against either Busybox tools or GNU tools, with the specified Bash version + among those listed in the `Makefile` ## Targeting specific test / test file - By setting some environment variables, it is possible to filtering which test and/or test file who will be tested with bats + By setting some environment variables, it is possible to filter which test and/or test file will be run - `BATS_FILE_FILTER` - - - Run test only with the specified file - + - Run tests from the specified file - `BATS_TEST_FILTER` - - Run test only who corresponding to the filter provided - - -### Examples - -```bash - $ BATS_TEST_FILTER=".*installed.*" BATS_FILE_FILTER="build.bats" make test-plugin-docker-gnu-3.2.57 - build.bats - ✓ yaml is installed for python - ✓ homebrew is used in Linux if Pyenv is installed with Homebrew - ✓ homebrew is not used in Linux if Pyenv is not installed with Homebrew - - 3 tests, 0 failures - - $ BATS_TEST_FILTER=".*installed.*" BATS_FILE_FILTER="build.bats" make test-plugin - build.bats - ✓ yaml is installed for python - ✓ homebrew is used in Linux if Pyenv is installed with Homebrew - ✓ homebrew is not used in Linux if Pyenv is not installed with Homebrew - - 3 tests, 0 failures -``` - - - -## Writing test - -To be reproducible, each test use/should use its own `TMPDIR` . -It's achieved by using the environment variable `BATS_TEST_TMPDIR` provided by bats that is automatically deleted at the end of each test. More info [here](https://bats-core.readthedocs.io/en/stable/writing-tests.html#special-variables) - -Another variable who could be used to source some file who need to be tested is `BATS_TEST_DIRNAME` who point to the directory in which the bats test file is located. \ No newline at end of file + - Run tests with the names corresponding to the filter From ae9e6594d6cf028c7e08bca4a8b304530327c95e Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Sat, 18 Jul 2026 21:59:23 +0300 Subject: [PATCH 1203/1324] Add CPython 3.15.0b4 (#3495) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- .../python-build/share/python-build/{3.15.0b3 => 3.15.0b4} | 4 ++-- .../python-build/share/python-build/{3.15.0b3t => 3.15.0b4t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0b3 => 3.15.0b4} (63%) rename plugins/python-build/share/python-build/{3.15.0b3t => 3.15.0b4t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0b3 b/plugins/python-build/share/python-build/3.15.0b4 similarity index 63% rename from plugins/python-build/share/python-build/3.15.0b3 rename to plugins/python-build/share/python-build/3.15.0b4 index d70951d1ea..c0ca64efb0 100644 --- a/plugins/python-build/share/python-build/3.15.0b3 +++ b/plugins/python-build/share/python-build/3.15.0b4 @@ -5,7 +5,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-4.0.1" "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz#2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0b3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b3.tar.xz#6a935ae234a67e6549894373b0cfeb8361182d03b21442328ae9598ab7422127" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0b4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b4.tar.xz#93efb9c88d7b6633368e7f7b8f8db6e98988f7f761c09b77849447262841ce3a" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0b3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b3.tgz#e5a18806817f912f2c9a1091ac77703f9a969b129c878d436f0f7025bf2f9e97" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0b4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b4.tgz#4825af9329834306ad4a9cb56b94455381b52bcde4b653604a39f387cc559fc9" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0b3t b/plugins/python-build/share/python-build/3.15.0b4t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0b3t rename to plugins/python-build/share/python-build/3.15.0b4t From bec9a562a59e48a730fe3320fe90c6999c82886c Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 18 Jul 2026 22:02:09 +0300 Subject: [PATCH 1204/1324] 2.8.1 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5c74434e96..1167b79363 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.8.1 +* pyenv-binary: add the `generate-installer` subcommand by @macayu17 in https://github.com/pyenv/pyenv/pull/3488 +* Add CPython 3.15.0b4 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3495 + ## Release v2.8.0 * CI: add_version enhancements by @native-api in https://github.com/pyenv/pyenv/pull/3480 * Add miniforge3-26.3.2-2, 26.3.2-3 by @native-api in https://github.com/pyenv/pyenv/pull/3481 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index c3399090c2..8ef0c9c2df 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.0" +version="2.8.1" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 8a1f7ef1cd..6c09268073 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.0" +PYTHON_BUILD_VERSION="2.8.1" OLDIFS="$IFS" From bac39a0ef85996975923bedd5098107bebaa561a Mon Sep 17 00:00:00 2001 From: Michael Newman Date: Mon, 27 Jul 2026 01:30:33 -0400 Subject: [PATCH 1205/1324] Fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7ff5898d7a..03dfbbd36e 100644 --- a/README.md +++ b/README.md @@ -672,7 +672,7 @@ to `PATH` in the ``'s environment, the same as what e.g. RVM does. ### Running nested shells from Python-based programs In addition to altering `PATH`, `pyenv exec` sets `PYENV_VERSION` in the -executed program's environment to ensure that it won't spontaneouly switch to +executed program's environment to ensure that it won't spontaneously switch to using a different Python version. Some Python-based programs (e.g. Jupyter) can spawn nested shell sessions. From 26dd5d9ddad732edf845f51cb12ad22850e647bb Mon Sep 17 00:00:00 2001 From: Michael Newman Date: Mon, 27 Jul 2026 14:57:58 -0400 Subject: [PATCH 1206/1324] Fix typo --- test/test_helper.bash | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_helper.bash b/test/test_helper.bash index 9df7a1ce53..30c046293a 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -35,7 +35,7 @@ setup() { unset xdg_var # Workaround for Powershell. When tests are run from a terminal, - # and running a script fron a here-document, + # and running a script from a here-document, # Powershell 7.5.4 erroneously prints ANSI escape sequences # even if its output is redirected, breaking the comparison logic export NO_COLOR=1 From 7126870320bbc65b6c959c3d9b4d00270bd20722 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Tue, 28 Jul 2026 17:01:20 +0530 Subject: [PATCH 1207/1324] pyenv-binary: add the `package` subcommand; add `pyenv install --list --bare` (#3498) Co-authored-by: native-api Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- plugins/pyenv-binary/README.md | 22 ++++- .../pyenv-binary/libexec/pyenv-binary-package | 90 ++++++++++++++++++ .../pyenv-binary/libexec/pyenv-binary-save | 46 ++++++++-- plugins/pyenv-binary/test/package.bats | 92 +++++++++++++++++++ plugins/pyenv-binary/test/save.bats | 25 ++++- plugins/python-build/bin/pyenv-install | 22 ++++- plugins/python-build/test/pyenv.bats | 17 ++++ 7 files changed, 301 insertions(+), 13 deletions(-) create mode 100755 plugins/pyenv-binary/libexec/pyenv-binary-package create mode 100644 plugins/pyenv-binary/test/package.bats diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index ac01be5876..8e940022a8 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -16,11 +16,29 @@ and dependency metadata exist to catch that. ## Commands -### `pyenv binary save []` +### `pyenv binary package : --archive-base-url ` + +Installs `` from source under the separate name ``, packages +that install with `save`, then emits a python-build definition for it with +`generate-installer`. The archive, metadata and definition land in the current +directory, named after the entry; host the archive under `` and drop the +definition into python-build's definition directory. Keeping the entry name +distinct from the version lets the binary sit alongside a normal source +install of the same version. + +```sh +pyenv binary package 3.12.7:3.12.7-debian-12 \ + --archive-base-url https://example.com/binaries +# writes 3.12.7-debian-12.tar.gz, its .meta file and +# a `3.12.7-debian-12' definition +``` + +### `pyenv binary save [] [--name ]` Packs an installed version into `-.tar.gz` (relative paths) and writes `-.meta` describing the build platform (OS, arch, -distro and libc version) and the system libraries the build links against. +distro and libc version) and the system libraries the build links against. Use +`--name` to set a different base name for both files. ```sh pyenv binary save 3.12.7 ./dist diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package new file mode 100755 index 0000000000..42294ed115 --- /dev/null +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -0,0 +1,90 @@ +#!/usr/bin/env bash +# +# Summary: Create an installable binary package from a Python version +# +# Usage: pyenv binary package : --archive-base-url +# +# Installs from source under the separate name , saves it as +# a binary package, then emits a python-build definition for that package. +# The archive, metadata and definition are written to the current directory +# as .tar.gz, .meta and . +# +# A version `pyenv install' knows how to build. +# The name to build under and to install the binary +# as, e.g. `3.13.14-debian-12'. Keeping it distinct +# from lets the binary sit alongside a +# normal source install of the same version. +# --archive-base-url +# Where the archive will be hosted; the definition +# downloads it from /.tar.gz. +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +# Provide pyenv completions +if [ "$1" = "--complete" ]; then + echo --archive-base-url + exec pyenv-install --list --bare +fi + +spec="" +archive_base_url="" + +while [ $# -gt 0 ]; do + case "$1" in + --archive-base-url ) + [ $# -ge 2 ] || { echo "pyenv-binary: --archive-base-url needs a value" >&2; exit 1; } + archive_base_url="$2"; shift 2 ;; + -* ) + echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;; + * ) + [ -z "$spec" ] || { echo "pyenv-binary: unexpected argument \`$1'" >&2; exit 1; } + spec="$1"; shift ;; + esac +done + +if [ -z "$spec" ] || [ -z "$archive_base_url" ]; then + pyenv-help --usage binary-package >&2 + exit 1 +fi + +case "$spec" in +*?:?* ) ;; +* ) + echo "pyenv-binary: expected :, e.g. \`3.13.14:3.13.14-debian-12'" >&2 + exit 1 + ;; +esac +entry="${spec##*:}" + +case "$entry" in +# `pyenv install' reads a trailing `:latest' as part of the version rather than +# as an alias, so nothing would end up installed under that name. +latest ) + echo "pyenv-binary: \`latest' cannot be used as an entry name" >&2 + exit 1 + ;; +# The entry becomes a directory name under versions/. `pyenv install' does not +# validate the alias, and `save' only checks once the build is done, so refuse +# a name that could point elsewhere before compiling anything. +*/* | .. | . ) + echo "pyenv-binary: invalid entry name \`${entry}'" >&2 + exit 1 + ;; +esac + +os="$(uname -s)" + +# `generate-installer' refuses a macOS archive, so the last step here cannot +# succeed on one. Give up before compiling rather than after it. +if [ "$os" = "Darwin" ]; then + echo "pyenv-binary: macOS archives are not supported yet" >&2 + exit 1 +fi + +# `pyenv install' puts a `:' build under versions/. +pyenv-install "$spec" +pyenv-binary-save "$entry" "$PWD" --name "$entry" + +pyenv-binary-generate-installer "${entry}.meta" \ + --archive-url "${archive_base_url%/}/${entry}.tar.gz" -o "$entry" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index 7a20b5c490..4b1047a3a0 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -2,7 +2,7 @@ # # Summary: Save an installed Python version as a relocatable archive # -# Usage: pyenv binary save [] +# Usage: pyenv binary save [] [--name ] # # Packs an installed version into a relocatable .tar.gz (relative paths) and # writes a metadata file listing the build platform and the system libraries @@ -10,20 +10,46 @@ # # An installed version, as listed by `pyenv versions --bare'. # Where to write the archive and metadata (default: `.'). +# --name Use as the archive and metadata base name instead of +# -. # set -e [ -n "$PYENV_DEBUG" ] && set -x # Provide pyenv completions if [ "$1" = "--complete" ]; then + echo --name exec pyenv-versions --bare fi -version="$1" -output_dir="${2:-$PWD}" +version="" +output_dir="" +package_name="" + +while [ $# -gt 0 ]; do + case "$1" in + --name ) + [ $# -ge 2 ] && [ -n "$2" ] || { echo "pyenv-binary: --name needs a value" >&2; exit 1; } + package_name="$2"; shift 2 ;; + -* ) + echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;; + * ) + if [ -z "$version" ]; then + version="$1" + elif [ -z "$output_dir" ]; then + output_dir="$1" + else + echo "pyenv-binary: unexpected argument \`$1'" >&2 + exit 1 + fi + shift ;; + esac +done + +output_dir="${output_dir:-$PWD}" if [ -z "$version" ]; then - echo "Usage: pyenv binary save []" >&2 + echo "Usage: pyenv binary save [] [--name ]" >&2 exit 1 fi @@ -36,6 +62,13 @@ case "$version" in ;; esac +case "$package_name" in +*/* | .. | . | *[[:cntrl:]]* ) + echo "pyenv-binary: invalid package name \`${package_name}'" >&2 + exit 1 + ;; +esac + prefix="${PYENV_ROOT}/versions/${version}" if [ ! -d "${prefix}/bin" ]; then echo "pyenv-binary: version \`${version}' is not installed" >&2 @@ -85,8 +118,9 @@ system_deps() { } mkdir -p "$output_dir" -archive="${version}-${platform}.tar.gz" -metadata="${version}-${platform}.meta" +package_name="${package_name:-${version}-${platform}}" +archive="${package_name}.tar.gz" +metadata="${package_name}.meta" tar -C "$(dirname "$prefix")" -czf "${output_dir}/${archive}" "$(basename "$prefix")" diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats new file mode 100644 index 0000000000..806e80da6e --- /dev/null +++ b/plugins/pyenv-binary/test/package.bats @@ -0,0 +1,92 @@ +#!/usr/bin/env bats + +load test_helper + +# Make the build deterministic: `pyenv-install' just creates the prefix, and +# the platform tools report a fixed Linux target so the real `save' and +# `generate-installer' behave the same on any test host. +stub_build_environment() { + create_stub pyenv-install 'mkdir -p "${PYENV_ROOT}/versions/${1##*:}/bin"' + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub getconf 'echo "glibc 2.17"' +} + +@test "completion lists the option and definitions provided by another plugin" { + mkdir -p "${PYENV_ROOT}/plugins/example/share/python-build" + touch "${PYENV_ROOT}/plugins/example/share/python-build/3.12.7-example" + PATH="${BATS_TEST_DIRNAME}/../../python-build/bin:${PATH}" + + run pyenv-binary-package --complete + assert_success + assert_line "--archive-base-url" + assert_line "3.12.7-example" + refute_line "Available versions:" +} + +@test "fails with no arguments" { + create_stub pyenv-help "echo usage" + run pyenv-binary-package + assert_failure "usage" +} + +@test "fails without an archive base url" { + create_stub pyenv-help "echo usage" + run pyenv-binary-package 3.12.7:3.12.7-test + assert_failure "usage" +} + +@test "fails when --archive-base-url has no value" { + run pyenv-binary-package 3.12.7:3.12.7-test --archive-base-url + assert_failure "pyenv-binary: --archive-base-url needs a value" +} + +@test "rejects a second positional argument" { + run pyenv-binary-package 3.12.7:3.12.7-test extra --archive-base-url http://x/b + assert_failure "pyenv-binary: unexpected argument \`extra'" +} + +@test "rejects a bare version without an entry name" { + run pyenv-binary-package 3.12.7 --archive-base-url http://x/b + assert_failure "pyenv-binary: expected :, e.g. \`3.13.14:3.13.14-debian-12'" +} + +@test "rejects an entry name containing a slash" { + run pyenv-binary-package "3.12.7:foo/bar" --archive-base-url http://x/b + assert_failure "pyenv-binary: invalid entry name \`foo/bar'" +} + +@test "rejects \`latest' as an entry name" { + run pyenv-binary-package 3.12:latest --archive-base-url http://x/b + assert_failure "pyenv-binary: \`latest' cannot be used as an entry name" +} + +@test "refuses to package on macOS before compiling anything" { + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + run pyenv-binary-package 3.12.7:3.12.7-test --archive-base-url http://x/b + assert_failure "pyenv-binary: macOS archives are not supported yet" +} + +@test "writes the archive, metadata and definition under the entry name" { + stub_build_environment + cd "${BATS_TEST_TMPDIR}" + + run pyenv-binary-package 3.12.7:3.12.7-test \ + --archive-base-url http://example.com/binaries + assert_success + assert [ -d "${PYENV_ROOT}/versions/3.12.7-test" ] + assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.tar.gz" ] + assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.meta" ] + run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-test" + assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-test.tar.gz" +} + +@test "strips a trailing slash from the archive base url" { + stub_build_environment + cd "${BATS_TEST_TMPDIR}" + + run pyenv-binary-package 3.12.7:3.12.7-test \ + --archive-base-url http://example.com/binaries/ + assert_success + run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-test" + assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-test.tar.gz" +} diff --git a/plugins/pyenv-binary/test/save.bats b/plugins/pyenv-binary/test/save.bats index 97c9f12a32..03616856b3 100644 --- a/plugins/pyenv-binary/test/save.bats +++ b/plugins/pyenv-binary/test/save.bats @@ -12,7 +12,7 @@ platform() { @test "fails with no version given" { run pyenv-binary-save - assert_failure "Usage: pyenv binary save []" + assert_failure "Usage: pyenv binary save [] [--name ]" } @test "fails for a version that is not installed" { @@ -44,6 +44,29 @@ platform() { assert_line 0 "3.12.7/" } +@test "uses an explicit package name" { + create_version "3.12.7" + local out="${BATS_TEST_TMPDIR}/dist" + + run pyenv-binary-save "3.12.7" "$out" --name "custom" + assert_success "Saved custom.tar.gz and custom.meta to $out" + assert [ -f "${out}/custom.tar.gz" ] + run grep '^archive=' "${out}/custom.meta" + assert_success "archive=custom.tar.gz" +} + +@test "fails when --name has no value" { + run pyenv-binary-save "3.12.7" --name + assert_failure "pyenv-binary: --name needs a value" +} + +@test "rejects an invalid package name" { + create_version "3.12.7" + + run pyenv-binary-save "3.12.7" --name "foo/bar" + assert_failure "pyenv-binary: invalid package name \`foo/bar'" +} + @test "records the platform in the metadata" { create_version "3.12.7" local out="${BATS_TEST_TMPDIR}/dist" diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 4d0220ed2d..4a5e71c17d 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -4,7 +4,7 @@ # # Usage: pyenv install [-f] [-kvp] [:]... # pyenv install [-f] [-kvp] [:] -# pyenv install -l|--list +# pyenv install -l|--list [--bare] # pyenv install --version # # -l/--list List all available versions @@ -45,6 +45,7 @@ shopt -u nullglob # Provide pyenv completions if [ "$1" = "--complete" ]; then + echo --bare echo --list echo --force echo --skip-existing @@ -79,6 +80,8 @@ unset KEEP unset VERBOSE unset HAS_PATCH unset DEBUG +unset BARE +unset LIST [ -n "$PYENV_DEBUG" ] && VERBOSE="-v" @@ -88,10 +91,11 @@ for option in "${OPTIONS[@]}"; do "h" | "help" ) usage 0 ;; + "bare" ) + BARE=1 + ;; "l" | "list" ) - echo "Available versions:" - definitions | indent - exit + LIST=1 ;; "f" | "force" ) FORCE=true @@ -120,6 +124,16 @@ for option in "${OPTIONS[@]}"; do esac done +if [[ -n $LIST ]]; then + if [[ -n $BARE ]]; then + definitions + else + echo "Available versions:" + definitions | indent + fi + exit +fi + unset VERSION_NAME # The first argument contains the definition to install. If the diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 8d4ec144e9..12d7d2dec0 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -160,6 +160,22 @@ OUT unstub python-build } +@test "list available versions with --bare" { + stub_python_build_lib + stub_python_build "--definitions : echo 2.6.9 2.7.9-rc1 2.7.9-rc2 3.4.2 | tr ' ' $'\\n'" + + run pyenv-install --list --bare + assert_success + assert_output < Date: Tue, 28 Jul 2026 22:49:46 -0400 Subject: [PATCH 1208/1324] Fix typos --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1167b79363..78322c903f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -387,7 +387,7 @@ * Add CPython 3.13.0a4 by @saaketp in https://github.com/pyenv/pyenv/pull/2903 * Handle the case where `pyenv-commands --sh` returns nothing by @aphedges in https://github.com/pyenv/pyenv/pull/2908 * Document default build configuration customizations by @native-api in https://github.com/pyenv/pyenv/pull/2911 -* Use Homebrew in Linux if Pyenv is installled with Homebrew by @native-api in https://github.com/pyenv/pyenv/pull/2906 +* Use Homebrew in Linux if Pyenv is installed with Homebrew by @native-api in https://github.com/pyenv/pyenv/pull/2906 * Add miniforge and mambaforge 22.11.1-3, 22.11.1-4, 23.1.0-0 to 23.11.0-0 by @aphedges in https://github.com/pyenv/pyenv/pull/2909 * Add miniconda3-24.1.2 by @binbjz in https://github.com/pyenv/pyenv/pull/2915 * Minor grammar fix in libffi backport patch in 2.5.x by @cuinix in https://github.com/pyenv/pyenv/pull/2922 @@ -1523,7 +1523,7 @@ * pyenv: Prefer gawk over awk if both are available. * python-build: Add new PyPy release; pypy-2.3, pypy-2.3-src (#162) * python-build: Add new Anaconda release; anaconda-1.9.2 (#155) -* python-build: Add new Miniconda releases; miniconda-3.3.0, minoconda-3.4.2, miniconda3-3.3.0, miniconda3-3.4.2 +* python-build: Add new Miniconda releases; miniconda-3.3.0, miniconda-3.4.2, miniconda3-3.3.0, miniconda3-3.4.2 * python-build: Add new Stackless releases; stackless-2.7.3, stackless-2.7.4, stackless-2.7.5, stackless-2.7.6, stackless-3.2.5, stackless-3.3.5 (#164) * python-build: Add IronPython versions (setuptools and pip will work); ironpython-2.7.4, ironpython-dev * python-build: Add new Jython beta release; jython-2.7-beta2 From f5915fc8664f709fe79ec60d72720c6e20ddbe3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 29 Jul 2026 04:53:27 +0200 Subject: [PATCH 1209/1324] Add graalpy3.12-25.2.4 (#3502) --- .../share/python-build/graalpy3.12-25.2.4 | 49 +++++++++++++++++++ .../python-build/graalpy3.12-community-25.2.4 | 44 +++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy3.12-25.2.4 create mode 100644 plugins/python-build/share/python-build/graalpy3.12-community-25.2.4 diff --git a/plugins/python-build/share/python-build/graalpy3.12-25.2.4 b/plugins/python-build/share/python-build/graalpy3.12-25.2.4 new file mode 100644 index 0000000000..da282eb08a --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.12-25.2.4 @@ -0,0 +1,49 @@ +# Copyright (c) 2026, 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='25.2.4' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy3.12-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="b3d0766ae6d55daa15f0db1f6c884383d7eec506b186d0ba2f702523a78ff28d" + ;; +"linux-aarch64" ) + checksum="e57472272b1b659ae6ac972117723b0515a49cc9577688ed5563919793170d67" + ;; +"macos-aarch64" ) + checksum="79f0e1fefb42bb484122ae9e50cb21ce14541d18e6bd66c498e44b459ce652df" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +install_package "graalpy3.12-${VERSION}" "https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.12-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy3.12-community-25.2.4 b/plugins/python-build/share/python-build/graalpy3.12-community-25.2.4 new file mode 100644 index 0000000000..e427e5df9c --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.12-community-25.2.4 @@ -0,0 +1,44 @@ +# Copyright (c) 2026, 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='25.2.4' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="98af303a6b714bde39077354733254f78023ddef06d61e14cb66a3a01f10ae82" + ;; +"linux-aarch64" ) + checksum="dda5e97c8b38158184dec189addaece57a37207a0dad38be162621d605f964f5" + ;; +"macos-aarch64" ) + checksum="76a182713660ce69f640b9666c2861ec8a5839637a972eaa80c6b5cf38f1357b" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +install_package "graalpy3.12-community-${VERSION}" "https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.12-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip From bdf8d254fefdb0e4abc286b279601ba4c2acc8f6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:38:32 +0300 Subject: [PATCH 1210/1324] Bump actions/setup-python from 6 to 7 in the github-actions group (#3505) Bumps the github-actions group with 1 update: [actions/setup-python](https://github.com/actions/setup-python). Updates `actions/setup-python` from 6 to 7 - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/setup-python dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/add_version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/add_version.yml b/.github/workflows/add_version.yml index 530e514126..1a50b157d1 100644 --- a/.github/workflows/add_version.yml +++ b/.github/workflows/add_version.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-slim steps: - uses: actions/checkout@v7 - - uses: actions/setup-python@v6 + - uses: actions/setup-python@v7 with: python-version: 3 cache: 'pip' From 8f70d418bb74de3181e3eace740eb9abc605636d Mon Sep 17 00:00:00 2001 From: Anupam Mediratta Date: Tue, 4 Aug 2026 15:42:42 +0530 Subject: [PATCH 1211/1324] add_cpython: refactor extra Requests logic (#3507) --------- Co-authored-by: Claude Sonnet 4.6 Co-authored-by: Ivan Pozdeev --- plugins/python-build/scripts/add_cpython.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/scripts/add_cpython.py b/plugins/python-build/scripts/add_cpython.py index 3d9a3d1df9..e7632bcb9b 100755 --- a/plugins/python-build/scripts/add_cpython.py +++ b/plugins/python-build/scripts/add_cpython.py @@ -542,8 +542,7 @@ def get_store_latest_release(self, major: int) \ url = "https://api.github.com/repos/openssl/openssl/releases" while url: - response = requests.get(url, timeout=30) - response.raise_for_status() + response = Requests.get(url) matching = [ release for release in response.json() @@ -568,7 +567,7 @@ def get_store_latest_release(self, major: int) \ for asset in j_release['assets'] if urllib.parse.urlparse(asset['browser_download_url']).path.split('/')[-1].endswith('.sha256') ) - shasum_text = requests.get(shasum_url, timeout=30).text + shasum_text = Requests.get(shasum_url).text shasum_data = jc.parse("hashsum", shasum_text, quiet=True)[0] package_hash, package_filename = shasum_data["hash"], shasum_data["filename"] del shasum_data, shasum_text, shasum_url @@ -742,6 +741,13 @@ def sha256_url(url, session=None): h.update(c) return h.hexdigest() +class Requests: + @staticmethod + def get(url: str) -> requests.Response: + response = requests.get(url, timeout=30) + response.raise_for_status() + return response + if __name__ == "__main__": #sys.excepthook seems to have no effect in Github Actions From 3088203e33f1e1795ac7c4faa67618104af40cd4 Mon Sep 17 00:00:00 2001 From: John Sirois Date: Tue, 4 Aug 2026 12:48:04 -0700 Subject: [PATCH 1212/1324] Add CPython 3.15.0rc1 (#3510) --- .../python-build/share/python-build/{3.15.0b4 => 3.15.0rc1} | 4 ++-- .../python-build/share/python-build/{3.15.0b4t => 3.15.0rc1t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0b4 => 3.15.0rc1} (58%) rename plugins/python-build/share/python-build/{3.15.0b4t => 3.15.0rc1t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0b4 b/plugins/python-build/share/python-build/3.15.0rc1 similarity index 58% rename from plugins/python-build/share/python-build/3.15.0b4 rename to plugins/python-build/share/python-build/3.15.0rc1 index c0ca64efb0..d372b37e5f 100644 --- a/plugins/python-build/share/python-build/3.15.0b4 +++ b/plugins/python-build/share/python-build/3.15.0rc1 @@ -5,7 +5,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-4.0.1" "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz#2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0b4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b4.tar.xz#93efb9c88d7b6633368e7f7b8f8db6e98988f7f761c09b77849447262841ce3a" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0rc1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc1.tar.xz#f84dad680ab2147417d2739355c2678f0f9acffe4ae8ef77895de1454b384b07" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0b4" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0b4.tgz#4825af9329834306ad4a9cb56b94455381b52bcde4b653604a39f387cc559fc9" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0rc1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc1.tgz#32c2b9878bbd6ac3ceb138c5b6c880345ce9d33388b399378c0da6fc7cb3bfbc" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0b4t b/plugins/python-build/share/python-build/3.15.0rc1t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0b4t rename to plugins/python-build/share/python-build/3.15.0rc1t From b9e165271e34f6df7c2763b0f848134c88ace237 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Wed, 5 Aug 2026 01:23:34 +0530 Subject: [PATCH 1213/1324] pyenv-binary: generate platform-specific package names (#3504) --- plugins/pyenv-binary/README.md | 39 +++++++--- .../pyenv-binary/libexec/pyenv-binary-package | 21 +++--- .../libexec/pyenv-binary-package-name | 71 +++++++++++++++++++ plugins/pyenv-binary/test/package-name.bats | 54 ++++++++++++++ plugins/pyenv-binary/test/package.bats | 15 +++- 5 files changed, 173 insertions(+), 27 deletions(-) create mode 100755 plugins/pyenv-binary/libexec/pyenv-binary-package-name create mode 100644 plugins/pyenv-binary/test/package-name.bats diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index 8e940022a8..5e3ba20a02 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -16,21 +16,38 @@ and dependency metadata exist to catch that. ## Commands -### `pyenv binary package : --archive-base-url ` +### `pyenv binary package [:] --archive-base-url ` -Installs `` from source under the separate name ``, packages -that install with `save`, then emits a python-build definition for it with -`generate-installer`. The archive, metadata and definition land in the current -directory, named after the entry; host the archive under `` and drop the -definition into python-build's definition directory. Keeping the entry name -distinct from the version lets the binary sit alongside a normal source -install of the same version. +Installs `` from source under a separate name, packages that install +with `save`, then emits a python-build definition for it with +`generate-installer`. With no explicit entry, the name is generated from the +current platform, platform version and architecture. An explicit entry keeps +the existing custom-build workflow. ```sh -pyenv binary package 3.12.7:3.12.7-debian-12 \ +pyenv binary package 3.12.7 \ --archive-base-url https://example.com/binaries -# writes 3.12.7-debian-12.tar.gz, its .meta file and -# a `3.12.7-debian-12' definition +# On Debian 12 x86_64, writes 3.12.7-debian-12-x86_64.tar.gz, +# its .meta file and a `3.12.7-debian-12-x86_64' definition. + +pyenv binary package 3.12.7:company-python \ + --archive-base-url https://example.com/binaries +``` + +The archive, metadata and definition land in the current directory, named after +the entry. Host the archive under `` and drop the definition into +python-build's definition directory. + +### `pyenv binary package-name ` + +Prints the automatically generated entry name without building anything. Linux +uses the distribution name and version, macOS uses the macOS version, and other +systems use the name and release reported by `uname`. All names include the +architecture. + +```sh +pyenv binary package-name 3.12.7 +# 3.12.7-debian-12-x86_64 ``` ### `pyenv binary save [] [--name ]` diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package index 42294ed115..88a0283f92 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -2,18 +2,17 @@ # # Summary: Create an installable binary package from a Python version # -# Usage: pyenv binary package : --archive-base-url +# Usage: pyenv binary package [:] --archive-base-url # -# Installs from source under the separate name , saves it as -# a binary package, then emits a python-build definition for that package. +# Installs from source under a separate entry name, saves it as a +# binary package, then emits a python-build definition for that package. # The archive, metadata and definition are written to the current directory # as .tar.gz, .meta and . # # A version `pyenv install' knows how to build. -# The name to build under and to install the binary -# as, e.g. `3.13.14-debian-12'. Keeping it distinct -# from lets the binary sit alongside a -# normal source install of the same version. +# The optional name to build under and install the +# binary as. If omitted, a name is generated from the +# current platform, platform version and architecture. # --archive-base-url # Where the archive will be hosted; the definition # downloads it from /.tar.gz. @@ -49,13 +48,9 @@ if [ -z "$spec" ] || [ -z "$archive_base_url" ]; then fi case "$spec" in -*?:?* ) ;; -* ) - echo "pyenv-binary: expected :, e.g. \`3.13.14:3.13.14-debian-12'" >&2 - exit 1 - ;; +*?:?* ) entry="${spec##*:}" ;; +* ) entry="$(pyenv-binary-package-name "$spec")"; spec="${spec}:${entry}" ;; esac -entry="${spec##*:}" case "$entry" in # `pyenv install' reads a trailing `:latest' as part of the version rather than diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package-name b/plugins/pyenv-binary/libexec/pyenv-binary-package-name new file mode 100755 index 0000000000..7fbd9bf315 --- /dev/null +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package-name @@ -0,0 +1,71 @@ +#!/usr/bin/env bash +# +# Summary: Generate a binary package name for the current platform +# +# Usage: pyenv binary package-name +# +# Prints a package name containing the Python version, platform name, +# platform version and architecture. +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +if [ "$1" = "--complete" ]; then + exec pyenv-install --list --bare +fi + +if [ $# -ne 1 ]; then + pyenv-help --usage binary-package-name >&2 + exit 1 +fi + +version="$1" + +case "$version" in +*/* | .. | . | *[[:cntrl:]]* ) + echo "pyenv-binary: invalid version name \`${version}'" >&2 + exit 1 + ;; +esac + +os="$(uname -s)" +arch="$(uname -m)" +distro="" +distro_version="" + +case "$os" in +Linux ) + if type -p lsb_release >/dev/null; then + distro="$(lsb_release -si)" + distro_version="$(lsb_release -sr)" + elif [ -r /etc/os-release ]; then + distro="$(. /etc/os-release && printf '%s' "${ID:-}")" + distro_version="$(. /etc/os-release && printf '%s' "${VERSION_ID:-}")" + fi + ;; +Darwin ) + distro="macos" + distro_version="$(sw_vers -productVersion)" + ;; +* ) + distro="$os" + distro_version="$(uname -r)" + ;; +esac + +slug() { + printf '%s' "$1" | + tr '[:upper:] ' '[:lower:]-' | + tr -cd 'a-z0-9._-' +} + +distro="$(slug "$distro")" +distro_version="$(slug "$distro_version")" +arch="$(slug "$arch")" + +if [ -z "$distro" ] || [ -z "$distro_version" ] || [ -z "$arch" ]; then + echo "pyenv-binary: could not determine the package platform" >&2 + exit 1 +fi + +printf '%s-%s-%s-%s\n' "$version" "$distro" "$distro_version" "$arch" diff --git a/plugins/pyenv-binary/test/package-name.bats b/plugins/pyenv-binary/test/package-name.bats new file mode 100644 index 0000000000..dadb4cafc0 --- /dev/null +++ b/plugins/pyenv-binary/test/package-name.bats @@ -0,0 +1,54 @@ +#!/usr/bin/env bats + +load test_helper + +@test "completion lists installable versions" { + create_stub pyenv-install \ + '[ "$*" = "--list --bare" ] && echo 3.13.14' + + run pyenv-binary-package-name --complete + assert_success "3.13.14" +} + +@test "fails without a version" { + create_stub pyenv-help 'echo usage' + + run pyenv-binary-package-name + assert_failure "usage" +} + +@test "rejects a second argument" { + create_stub pyenv-help 'echo usage' + + run pyenv-binary-package-name 3.13.14 extra + assert_failure "usage" +} + +@test "generates a package name for Linux" { + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub lsb_release 'case "$1" in -si) echo Debian;; -sr) echo 12;; esac' + + run pyenv-binary-package-name 3.13.14 + assert_success "3.13.14-debian-12-x86_64" +} + +@test "generates a package name for macOS" { + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_stub sw_vers 'echo 15.5' + + run pyenv-binary-package-name 3.13.14 + assert_success "3.13.14-macos-15.5-arm64" +} + +@test "generates a package name for FreeBSD" { + create_stub uname \ + 'case "$1" in -s) echo FreeBSD;; -m) echo amd64;; -r) echo 14.2-RELEASE-p3;; esac' + + run pyenv-binary-package-name 3.13.14 + assert_success "3.13.14-freebsd-14.2-release-p3-amd64" +} + +@test "rejects an invalid version name" { + run pyenv-binary-package-name ../3.13.14 + assert_failure "pyenv-binary: invalid version name \`../3.13.14'" +} diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index 806e80da6e..a3d7ceb1d1 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -45,9 +45,18 @@ stub_build_environment() { assert_failure "pyenv-binary: unexpected argument \`extra'" } -@test "rejects a bare version without an entry name" { - run pyenv-binary-package 3.12.7 --archive-base-url http://x/b - assert_failure "pyenv-binary: expected :, e.g. \`3.13.14:3.13.14-debian-12'" +@test "generates an entry name for a bare version" { + stub_build_environment + create_stub lsb_release 'case "$1" in -si) echo Debian;; -sr) echo 12;; esac' + cd "${BATS_TEST_TMPDIR}" + + run pyenv-binary-package 3.12.7 --archive-base-url http://example.com/binaries + assert_success + assert [ -d "${PYENV_ROOT}/versions/3.12.7-debian-12-x86_64" ] + assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.tar.gz" ] + assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.meta" ] + run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64" + assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-debian-12-x86_64.tar.gz" } @test "rejects an entry name containing a slash" { From 9e4d1ca95a873e5ce46a3d63e76beebfc33971a6 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 4 Aug 2026 23:10:49 +0300 Subject: [PATCH 1214/1324] 2.8.2 --- CHANGELOG.md | 8 ++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78322c903f..f2fc919236 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # Version History +## Release v2.8.2 +* pyenv-binary: add the `package` subcommand; add `pyenv install --list --bare` by @macayu17 in https://github.com/pyenv/pyenv/pull/3498 +* Add graalpy3.12-25.2.4 by @msimacek in https://github.com/pyenv/pyenv/pull/3502 +* Bump actions/setup-python from 6 to 7 in the github-actions group by @dependabot[bot] in https://github.com/pyenv/pyenv/pull/3505 +* add_cpython: refactor extra Requests logic by @anupamme in https://github.com/pyenv/pyenv/pull/3507 +* Add CPython 3.15.0rc1 by @jsirois in https://github.com/pyenv/pyenv/pull/3510 +* pyenv-binary: generate platform-specific package names by @macayu17 in https://github.com/pyenv/pyenv/pull/3504 + ## Release v2.8.1 * pyenv-binary: add the `generate-installer` subcommand by @macayu17 in https://github.com/pyenv/pyenv/pull/3488 * Add CPython 3.15.0b4 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3495 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 8ef0c9c2df..59f2b772b8 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.1" +version="2.8.2" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 6c09268073..5244e68232 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.1" +PYTHON_BUILD_VERSION="2.8.2" OLDIFS="$IFS" From b0a64af8cc7fd21e0a4c70794fbdb14093db4c3d Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 5 Aug 2026 22:06:09 +0300 Subject: [PATCH 1215/1324] Add CPython 3.13.15, 3.14.7 (#3512) --- .../python-build/share/python-build/3.13.15 | 11 + .../python-build/share/python-build/3.13.15t | 2 + .../python-build/share/python-build/3.14.7 | 11 + .../python-build/share/python-build/3.14.7t | 2 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9862 +++++++++++++++++ .../share/python-build/patches/3.14.7t | 1 + 6 files changed, 9889 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.15 create mode 100644 plugins/python-build/share/python-build/3.13.15t create mode 100644 plugins/python-build/share/python-build/3.14.7 create mode 100644 plugins/python-build/share/python-build/3.14.7t create mode 100644 plugins/python-build/share/python-build/patches/3.14.7/Python-3.14.7/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.7t diff --git a/plugins/python-build/share/python-build/3.13.15 b/plugins/python-build/share/python-build/3.13.15 new file mode 100644 index 0000000000..704afa5f29 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.15 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.3" "https://github.com/openssl/openssl/releases/download/openssl-3.6.3/openssl-3.6.3.tar.gz#243a86649cf6f23eeb6a2ff2456e09e5d77dd9018a54d3d96b0c6bdd6ba6c7f1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.15" "https://www.python.org/ftp/python/3.13.15/Python-3.13.15.tar.xz#1e66a7945a48390ee4c2a4268a0e4185884059a13c4aab6d148aa208deea4a76" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.15" "https://www.python.org/ftp/python/3.13.15/Python-3.13.15.tgz#c28d9d213c09b5b5ab2c29812950e12f746999e099b82894231be954b26baed9" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.15t b/plugins/python-build/share/python-build/3.13.15t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.15t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/3.14.7 b/plugins/python-build/share/python-build/3.14.7 new file mode 100644 index 0000000000..bc7664d1f3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.7 @@ -0,0 +1,11 @@ +prefer_openssl3_to_4 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.1" "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz#2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.7" "https://www.python.org/ftp/python/3.14.7/Python-3.14.7.tar.xz#3b48dac8fb59f62eaa67ac83c1eb12bda1b7a08406dd286e252c11a66be27f81" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.7" "https://www.python.org/ftp/python/3.14.7/Python-3.14.7.tgz#62859805f6fdf25e2bcbf3fa3217801e1996887ca33e6a2af80674bdfa2dbe07" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.7t b/plugins/python-build/share/python-build/3.14.7t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.7t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/patches/3.14.7/Python-3.14.7/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.7/Python-3.14.7/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..f695618c2c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.7/Python-3.14.7/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9862 @@ +From f399d160f46b95a89910d3fbd7739095ae51686d Mon Sep 17 00:00:00 2001 +From: Victor Stinner +Date: Wed, 25 Mar 2026 09:44:47 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 130 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 8 files changed, 9550 insertions(+), 35 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index dd4c657d0cf..0878d738690 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -396,7 +396,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -587,11 +587,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -657,12 +657,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1156,6 +1158,7 @@ def test_min_max_version(self): + ssl.TLSVersion.TLSv1, + ssl.TLSVersion.TLSv1_1, + ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, + ssl.TLSVersion.SSLv3, + } + ) +@@ -1169,7 +1172,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1717,23 +1720,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2760,6 +2764,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3629,10 +3663,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4481,7 +4515,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -4794,6 +4830,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 5258df3958a..2c2edbed882 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -122,8 +122,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -135,6 +137,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -340,6 +353,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -487,6 +510,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -642,6 +669,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -889,6 +928,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1029,6 +1069,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1134,7 +1179,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1163,16 +1208,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2493,6 +2538,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2633,6 +2683,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6513,9 +6568,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index 68bd6e0860d..92c7c4115f5 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -54,6 +54,7 @@ + "3.4.6", + "3.5.7", + "3.6.3", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -414,9 +415,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -432,6 +435,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.54.0.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.14.7t b/plugins/python-build/share/python-build/patches/3.14.7t new file mode 120000 index 0000000000..38f27a2ba6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.7t @@ -0,0 +1 @@ +3.14.7 \ No newline at end of file From da172db42d2c152b9ee3e52a774df4f81d45bc20 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 5 Aug 2026 22:08:09 +0300 Subject: [PATCH 1216/1324] 2.8.3 --- CHANGELOG.md | 3 +++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f2fc919236..e83daa6c03 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Version History +## Release v2.8.3 +* Add CPython 3.13.15, 3.14.7 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3512 + ## Release v2.8.2 * pyenv-binary: add the `package` subcommand; add `pyenv install --list --bare` by @macayu17 in https://github.com/pyenv/pyenv/pull/3498 * Add graalpy3.12-25.2.4 by @msimacek in https://github.com/pyenv/pyenv/pull/3502 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 59f2b772b8..f3c3c4aef6 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.2" +version="2.8.3" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5244e68232..a7f29fca60 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.2" +PYTHON_BUILD_VERSION="2.8.3" OLDIFS="$IFS" From 2d9a224e6c3759f8f899490ee693523d1f40c496 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 5 Aug 2026 21:35:05 +0300 Subject: [PATCH 1217/1324] Add macos-26-intel to CI * Fix macos_build_bundled_dependencies in macos-26-intel It has a different set of preinstalled OpenSSL formulae --- .github/workflows/modified_scripts_build.yml | 32 +++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 1ce8594c85..205b7e89c9 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -43,28 +43,32 @@ jobs: import packaging.version result=[] + def exclude_macos_intel(result, python_version): + result.append({'os':'macos-15-intel','python-version':python_version}) + result.append({'os':'macos-26-intel','python-version':python_version}) + for line in os.environ['versions'].splitlines(): - if m:=re.match(r'([^-]+)-(\d+\.\d+)-(\d+\.\d+.\d+)', line): - name, version = m.group(1), packaging.version.Version(m.group(3)) + if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+.\d+)', line): + version = packaging.version.Version(m.group(1)) # Miniconda dropped MacOS x64 support - if (name == 'miniconda3' and version >= packaging.version.Version('25.9.1')): - result.append({'os':'macos-15-intel','python-version':line}) + if version >= packaging.version.Version('25.9.1'): + exclude_macos_intel(result, line) - if m:=re.match(r'([^-]+)-(\d+\.\d+)', line): - name, version = m.group(1), packaging.version.Version(m.group(2)) + if m:=re.match(r'anaconda3-(\d+\.\d+)', line): + version = packaging.version.Version(m.group(1)) # Anaconda dropped MacOS x64 support - if name == 'anaconda3' and version >= packaging.version.Version('2025.12'): - result.append({'os':'macos-15-intel','python-version':line}) + if version >= packaging.version.Version('2025.12'): + exclude_macos_intel(result, line) if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+.\d+)', line): version = packaging.version.Version(m.group(2)) # GraalPy dropped MacOS x64 support if version >= packaging.version.Version('25.0.2'): - result.append({'os':'macos-15-intel','python-version':line}) + exclude_macos_intel(result, line) EOF = str(random.getrandbits(15*8)) @@ -91,6 +95,7 @@ jobs: - macos-15 - macos-15-intel - macos-26 + - macos-26-intel exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}} runs-on: ${{ matrix.os }} steps: @@ -153,7 +158,12 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["macos-14", "macos-15", "macos-15-intel"] + os: + - macos-14 + - macos-15 + - macos-15-intel + - macos-26 + - macos-26-intel runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 @@ -165,7 +175,7 @@ jobs: - run: | #prerequisites brew install sqlite3 xz tcl-tk@8 libb2 zstd - "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" openssl@3 openssl@1.1 readline + "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" $(brew list | grep -E '^openssl(@|$)') readline if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV From 340348d98d799cfb14330a53c156403034859f45 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 19:19:46 +0300 Subject: [PATCH 1218/1324] - code irrelevant to CPython in CPython-specific scenarios --- .github/workflows/modified_scripts_build.yml | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 205b7e89c9..360b464c2b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -176,11 +176,6 @@ jobs: #prerequisites brew install sqlite3 xz tcl-tk@8 libb2 zstd "$GITHUB_WORKSPACE/.github/workflows/scripts/brew-uninstall-cascade.sh" $(brew list | grep -E '^openssl(@|$)') readline - if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - pyenv install $PYENV_BOOTSTRAP_VERSION - fi - run: | #build pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? @@ -289,13 +284,8 @@ jobs: #prerequisites sudo apt-get update -q; sudo apt-get install -yq make build-essential \ libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - curl llvm libncurses5-dev libncursesw5-dev \ + curl libncursesw5-dev \ xz-utils tk-dev libffi-dev liblzma-dev - if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then - export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 - echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV - pyenv install $PYENV_BOOTSTRAP_VERSION - fi - run: | #build pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? From 0e2e214f560843b17633841d950512e820d8b2f2 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 19:20:14 +0300 Subject: [PATCH 1219/1324] Fix ubuntu_build_tar_gz --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 360b464c2b..4c69e8bb1c 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -279,7 +279,7 @@ jobs: export PYENV_ROOT="$GITHUB_WORKSPACE" echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_PATH + echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_ENV - run: | #prerequisites sudo apt-get update -q; sudo apt-get install -yq make build-essential \ From 1cc9e770ae8dd212e5836a3da89de14f84ed07ea Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 19:37:33 +0300 Subject: [PATCH 1220/1324] Fix regexes --- .github/workflows/modified_scripts_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 4c69e8bb1c..988420e526 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -49,7 +49,7 @@ jobs: for line in os.environ['versions'].splitlines(): - if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+.\d+)', line): + if m:=re.match(r'miniconda3-\d+\.\d+-(\d+\.\d+\.\d+)', line): version = packaging.version.Version(m.group(1)) # Miniconda dropped MacOS x64 support @@ -63,7 +63,7 @@ jobs: if version >= packaging.version.Version('2025.12'): exclude_macos_intel(result, line) - if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+.\d+)', line): + if m:=re.match(r'graalpy[^-]*-(community-)?(\d+\.\d+\.\d+)', line): version = packaging.version.Version(m.group(2)) # GraalPy dropped MacOS x64 support From 9d6cf587b789d5b5ad9fa3072cfb60b7db273ca8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 6 Aug 2026 23:38:47 +0300 Subject: [PATCH 1221/1324] Run the discover job on slim --- .github/workflows/modified_scripts_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 988420e526..900f927f85 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -2,7 +2,7 @@ name: modified_scripts on: [pull_request] jobs: discover_modified_scripts: - runs-on: ubuntu-latest + runs-on: ubuntu-slim outputs: versions: ${{steps.modified-versions.outputs.versions}} versions_cpython_only: ${{steps.modified-versions.outputs.versions_cpython_only}} From 5a31fea21b16bca8013743e76e0c61c7906860c1 Mon Sep 17 00:00:00 2001 From: macayu17 Date: Wed, 5 Aug 2026 11:21:46 +0300 Subject: [PATCH 1222/1324] pyenv-binary: support checking FreeBSD system libraries * Handle both spaced and unspaced FreeBSD `ldconfig -r` output --- .../libexec/pyenv-binary-generate-installer | 23 +++++++++++++++---- .../pyenv-binary/test/generate-installer.bats | 13 +++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer index 3a3e8445bf..b0282a5640 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer +++ b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer @@ -155,10 +155,23 @@ case "$EXPECT_LIBC" in ;; esac -# Required system libraries must already be present on the target. ldconfig -p -# lists each library as " (...) => "; match the soname column -# exactly so a longer name like libc.so.6.1 does not satisfy libc.so.6. -if command -v ldconfig &>/dev/null && cache="$(ldconfig -p)"; then +# Required system libraries must already be present on the target. Linux lists +# the soname first; FreeBSD lists it in the resolved path, so normalize that +# path before matching exact names. +cache="" +if command -v ldconfig &>/dev/null; then + case "$os" in + FreeBSD ) + cache="$(ldconfig -r 2>/dev/null)" && + cache="$(printf '%s\n' "$cache" | awk -F ' *=> *' '{ sub(/^.*\//, "", $2); print $2 }')" \ + || cache="" + ;; + * ) + cache="$(ldconfig -p 2>/dev/null)" || cache="" + ;; + esac +fi +if [ -n "$cache" ]; then missing="" for dep in $DEPS; do printf '%s\n' "$cache" | awk -v d="$dep" '$1 == d { found = 1 } END { exit !found }' \ @@ -169,7 +182,7 @@ if command -v ldconfig &>/dev/null && cache="$(ldconfig -p)"; then exit 1 fi elif [ -n "$DEPS" ]; then - echo "pyenv-binary: cannot check required system libraries (ldconfig with -p not found)" >&2 + echo "pyenv-binary: cannot check required system libraries (ldconfig cache unavailable)" >&2 fi build_package_relocate() { diff --git a/plugins/pyenv-binary/test/generate-installer.bats b/plugins/pyenv-binary/test/generate-installer.bats index e7e36c514b..8f098c516d 100644 --- a/plugins/pyenv-binary/test/generate-installer.bats +++ b/plugins/pyenv-binary/test/generate-installer.bats @@ -93,6 +93,19 @@ create_meta() { assert_failure "pyenv-binary: archive needs glibc 99.0 or newer, but this system has 2.31" } +@test "checks required libraries in the FreeBSD ldconfig cache" { + local out="${BATS_TEST_TMPDIR}/definition" + local meta="$(create_meta FreeBSD amd64 '')" + printf 'dep=libc.so.7\ndep=libmissing.so.1\n' >> "$meta" + pyenv-binary-generate-installer "$meta" \ + --archive-url http://example.com/a.tar.gz -o "$out" + create_stub uname 'case "$1" in -s) echo FreeBSD;; -m) echo amd64;; esac' + create_stub ldconfig '[ "$1" = "-r" ] && echo "0:-lc.7=>/lib/libc.so.7"' + + run bash "$out" + assert_failure "pyenv-binary: missing required system libraries: libmissing.so.1" +} + @test "fails when the archive is not beside the metadata" { local meta="$(create_meta)" rm "${BATS_TEST_TMPDIR}/3.12.7.tar.gz" From a6ef1e70baa7b4b9a6a04fb7eab41007fdf769ef Mon Sep 17 00:00:00 2001 From: macayu17 Date: Sat, 8 Aug 2026 22:41:11 +0530 Subject: [PATCH 1223/1324] Resolve version prefixes in package names --- .../pyenv-binary/libexec/pyenv-binary-package-name | 2 ++ plugins/pyenv-binary/test/package-name.bats | 11 ++++++++--- plugins/pyenv-binary/test/package.bats | 1 + 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package-name b/plugins/pyenv-binary/libexec/pyenv-binary-package-name index 7fbd9bf315..649c992524 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package-name +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package-name @@ -28,6 +28,8 @@ case "$version" in ;; esac +version="$(pyenv-latest -f -k "$version")" + os="$(uname -s)" arch="$(uname -m)" distro="" diff --git a/plugins/pyenv-binary/test/package-name.bats b/plugins/pyenv-binary/test/package-name.bats index dadb4cafc0..dcd66089e3 100644 --- a/plugins/pyenv-binary/test/package-name.bats +++ b/plugins/pyenv-binary/test/package-name.bats @@ -2,6 +2,10 @@ load test_helper +_setup() { + create_stub pyenv-latest '[ "$1" = "-f" ] && [ "$2" = "-k" ] && shift 2 && echo "$*"' +} + @test "completion lists installable versions" { create_stub pyenv-install \ '[ "$*" = "--list --bare" ] && echo 3.13.14' @@ -40,12 +44,13 @@ load test_helper assert_success "3.13.14-macos-15.5-arm64" } -@test "generates a package name for FreeBSD" { +@test "resolves a version prefix when generating a package name" { + create_stub pyenv-latest '[ "$*" = "-f -k 3" ] && echo 3.14.7' create_stub uname \ 'case "$1" in -s) echo FreeBSD;; -m) echo amd64;; -r) echo 14.2-RELEASE-p3;; esac' - run pyenv-binary-package-name 3.13.14 - assert_success "3.13.14-freebsd-14.2-release-p3-amd64" + run pyenv-binary-package-name 3 + assert_success "3.14.7-freebsd-14.2-release-p3-amd64" } @test "rejects an invalid version name" { diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index a3d7ceb1d1..6262a8c3e1 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -7,6 +7,7 @@ load test_helper # `generate-installer' behave the same on any test host. stub_build_environment() { create_stub pyenv-install 'mkdir -p "${PYENV_ROOT}/versions/${1##*:}/bin"' + create_stub pyenv-latest '[ "$1" = "-f" ] && [ "$2" = "-k" ] && shift 2 && echo "$*"' create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' create_stub getconf 'echo "glibc 2.17"' } From 195b9fe940cf787c80215d5fb14dbad6127b1ef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=98=E5=85=B8?= Date: Sat, 8 Aug 2026 20:35:35 +0300 Subject: [PATCH 1224/1324] version-file: Fix infinite loop for relative paths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit find_local_version_file reduces its target with ${root%/*}, but that leaves a slash-less relative argument such as "." unchanged, leading to an infinite loop Signed-off-by: 付典 --- libexec/pyenv-version-file | 3 +++ test/version-file.bats | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index 91d8b0d393..8b1fe30b6e 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -8,6 +8,9 @@ target_dir="$1" find_local_version_file() { local root="$1" + # Nonexistent paths are UB as of this writing. + # Relative ones cause a failure but absolute ones don't + [[ $root != /* ]] && root=$(CDPATH= cd -- "$root" && pwd) while ! [[ "$root" =~ ^//[^/]*$ ]]; do if [ -f "${root}/.python-version" ]; then echo "${root}/.python-version" diff --git a/test/version-file.bats b/test/version-file.bats index e2fb941cb4..3c0d40a222 100644 --- a/test/version-file.bats +++ b/test/version-file.bats @@ -73,3 +73,15 @@ create_file() { run pyenv-version-file "$PWD" assert_failure "" } + +@test "walks up beyond cwd for a relative path" { + create_file ".python-version" + mkdir -p project/subdir + cd project + # Run with CPU-time limit because this used to loop forever + run bash -c 'ulimit -t 5; pyenv-version-file .' + assert_success "${PYENV_TEST_DIR}/.python-version" + + run pyenv-version-file ./subdir + assert_success "${PYENV_TEST_DIR}/.python-version" +} From 48e70e1fe9b00c6d6b4e00997cc1422494c35442 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 10 Aug 2026 12:55:19 +0300 Subject: [PATCH 1225/1324] Only test for UNC paths every iteration if they are special --- libexec/pyenv-version-file | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index 8b1fe30b6e..a0309a65d3 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -11,12 +11,24 @@ find_local_version_file() { # Nonexistent paths are UB as of this writing. # Relative ones cause a failure but absolute ones don't [[ $root != /* ]] && root=$(CDPATH= cd -- "$root" && pwd) - while ! [[ "$root" =~ ^//[^/]*$ ]]; do - if [ -f "${root}/.python-version" ]; then - echo "${root}/.python-version" + # Original Rbenv code supports UNC notaion for Cygwin/MinGW + # (https://github.com/rbenv/rbenv/pull/529) + # POSIX.1-2024 still allows to treat // in implementation-specific manner + # (https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16) + # even though few UNIX variants do that + local unc; [[ $root =~ ^//[^/] && ! / -ef // ]] && unc=1 + # when testing root, $root is "" + while true; do + # don't test //.python-version if // is special + # as it's pointless and possibly very slow + # if it e.g. leads to a network search + [[ $unc && $root == / ]] && break + + if [[ -f $root/.python-version ]]; then + echo "$root/.python-version" return 0 fi - [ -n "$root" ] || break + [[ -n $root ]] || break root="${root%/*}" done return 1 From 1a591b3963a02ba7e3f9966b111578e61662ef21 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 10 Aug 2026 12:56:57 +0300 Subject: [PATCH 1226/1324] Avoid extra iteration for argument with a trailing slash --- libexec/pyenv-version-file | 1 + 1 file changed, 1 insertion(+) diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index a0309a65d3..e9fba30bde 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -17,6 +17,7 @@ find_local_version_file() { # (https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16) # even though few UNIX variants do that local unc; [[ $root =~ ^//[^/] && ! / -ef // ]] && unc=1 + root="${root%/}" # when testing root, $root is "" while true; do # don't test //.python-version if // is special From 2c1f405180f31e54d8c1fc0d11614e3de3189ae1 Mon Sep 17 00:00:00 2001 From: macayu17 Date: Mon, 10 Aug 2026 06:52:54 +0300 Subject: [PATCH 1227/1324] pyenv-binary: check patchelf before installing archive --- .../libexec/pyenv-binary-generate-installer | 5 +++++ plugins/pyenv-binary/test/generate-installer.bats | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer index b0282a5640..4e943ba820 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer +++ b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer @@ -185,6 +185,11 @@ elif [ -n "$DEPS" ]; then echo "pyenv-binary: cannot check required system libraries (ldconfig cache unavailable)" >&2 fi +if ! command -v patchelf >/dev/null 2>&1; then + echo "pyenv-binary: need patchelf to relocate the binary" >&2 + exit 1 +fi + build_package_relocate() { pyenv binary relocate "$PREFIX_PATH" } diff --git a/plugins/pyenv-binary/test/generate-installer.bats b/plugins/pyenv-binary/test/generate-installer.bats index 8f098c516d..02f63faca7 100644 --- a/plugins/pyenv-binary/test/generate-installer.bats +++ b/plugins/pyenv-binary/test/generate-installer.bats @@ -106,6 +106,17 @@ create_meta() { assert_failure "pyenv-binary: missing required system libraries: libmissing.so.1" } +@test "checks for patchelf before installing the archive" { + local out="${BATS_TEST_TMPDIR}/definition" + pyenv-binary-generate-installer "$(create_meta)" \ + --archive-url http://example.com/a.tar.gz -o "$out" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub getconf 'echo "glibc 2.31"' + + PATH="$(path_without patchelf)" run bash "$out" + assert_failure "pyenv-binary: need patchelf to relocate the binary" +} + @test "fails when the archive is not beside the metadata" { local meta="$(create_meta)" rm "${BATS_TEST_TMPDIR}/3.12.7.tar.gz" @@ -125,6 +136,7 @@ create_meta() { mkdir -p "$cache" cp "$archive" "${cache}/Python-3.12.7-binary.tar.gz" create_stub pyenv 'echo "pyenv $*"' + create_path_executable patchelf "exit 0" create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' PYTHON_BUILD_CACHE_PATH="$cache" run \ From 4a73bd17e2291e12fbc6cb8959f466a05c9853d1 Mon Sep 17 00:00:00 2001 From: macayu17 Date: Mon, 10 Aug 2026 06:52:55 +0300 Subject: [PATCH 1228/1324] pyenv-binary-package: add --verbose Co-authored-by: Ivan Pozdeev --- plugins/pyenv-binary/README.md | 4 +++- .../pyenv-binary/libexec/pyenv-binary-package | 17 ++++++++++++----- plugins/pyenv-binary/test/package.bats | 18 +++++++++++++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index 5e3ba20a02..817e9a6f44 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -16,7 +16,7 @@ and dependency metadata exist to catch that. ## Commands -### `pyenv binary package [:] --archive-base-url ` +### `pyenv binary package [-v|--verbose] [:] --archive-base-url ` Installs `` from source under a separate name, packages that install with `save`, then emits a python-build definition for it with @@ -24,6 +24,8 @@ with `save`, then emits a python-build definition for it with current platform, platform version and architecture. An explicit entry keeps the existing custom-build workflow. +Pass `-v` to show build progress from `pyenv install`. + ```sh pyenv binary package 3.12.7 \ --archive-base-url https://example.com/binaries diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package index 88a0283f92..4c6592bca5 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -2,7 +2,7 @@ # # Summary: Create an installable binary package from a Python version # -# Usage: pyenv binary package [:] --archive-base-url +# Usage: pyenv binary package [-v|--verbose] [:] --archive-base-url # # Installs from source under a separate entry name, saves it as a # binary package, then emits a python-build definition for that package. @@ -13,6 +13,7 @@ # The optional name to build under and install the # binary as. If omitted, a name is generated from the # current platform, platform version and architecture. +# -v,--verbose Show build progress from `pyenv install'. # --archive-base-url # Where the archive will be hosted; the definition # downloads it from /.tar.gz. @@ -23,23 +24,29 @@ set -e # Provide pyenv completions if [ "$1" = "--complete" ]; then echo --archive-base-url + echo --verbose exec pyenv-install --list --bare fi spec="" archive_base_url="" +verbose="" while [ $# -gt 0 ]; do case "$1" in --archive-base-url ) - [ $# -ge 2 ] || { echo "pyenv-binary: --archive-base-url needs a value" >&2; exit 1; } - archive_base_url="$2"; shift 2 ;; + [ $# -lt 2 ] && { echo "pyenv-binary: --archive-base-url needs a value" >&2; exit 1; } + archive_base_url="$2"; shift ;; + -v|--verbose) + verbose=1 ;; -* ) echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;; * ) [ -z "$spec" ] || { echo "pyenv-binary: unexpected argument \`$1'" >&2; exit 1; } - spec="$1"; shift ;; + spec="$1" + ;; esac + shift done if [ -z "$spec" ] || [ -z "$archive_base_url" ]; then @@ -78,7 +85,7 @@ if [ "$os" = "Darwin" ]; then fi # `pyenv install' puts a `:' build under versions/. -pyenv-install "$spec" +pyenv-install ${verbose:+--verbose} "$spec" pyenv-binary-save "$entry" "$PWD" --name "$entry" pyenv-binary-generate-installer "${entry}.meta" \ diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index 6262a8c3e1..b3f2f6dc80 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -6,12 +6,24 @@ load test_helper # the platform tools report a fixed Linux target so the real `save' and # `generate-installer' behave the same on any test host. stub_build_environment() { - create_stub pyenv-install 'mkdir -p "${PYENV_ROOT}/versions/${1##*:}/bin"' - create_stub pyenv-latest '[ "$1" = "-f" ] && [ "$2" = "-k" ] && shift 2 && echo "$*"' + create_stub pyenv-install 'echo "${0##*/} $*"; mkdir -p "${PYENV_ROOT}/versions/${1##*:}/bin"' + create_stub pyenv-latest 'while (($#)); do case "$1" in -f|-k);; *)break;; esac; shift; done; echo "$*"' create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' create_stub getconf 'echo "glibc 2.17"' } +@test "-v|--verbose runs pyenv install verbosely" { + stub_build_environment + create_stub pyenv-binary-save true + create_stub pyenv-binary-generate-installer true + + for opt in "" -v --verbose; do + run pyenv-binary-package $opt 3.12.7:3.12.7-test \ + --archive-base-url http://example.com/binaries + assert_success "pyenv-install ${opt:+--verbose }3.12.7:3.12.7-test" + done +} + @test "completion lists the option and definitions provided by another plugin" { mkdir -p "${PYENV_ROOT}/plugins/example/share/python-build" touch "${PYENV_ROOT}/plugins/example/share/python-build/3.12.7-example" @@ -20,6 +32,7 @@ stub_build_environment() { run pyenv-binary-package --complete assert_success assert_line "--archive-base-url" + assert_line "--verbose" assert_line "3.12.7-example" refute_line "Available versions:" } @@ -92,7 +105,6 @@ stub_build_environment() { @test "strips a trailing slash from the archive base url" { stub_build_environment - cd "${BATS_TEST_TMPDIR}" run pyenv-binary-package 3.12.7:3.12.7-test \ --archive-base-url http://example.com/binaries/ From bd7c969e7f50b6128023b186c99203dfead6deb4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 11 Aug 2026 01:51:12 +0300 Subject: [PATCH 1229/1324] test_helper: show diff with whitespace highlights to be able to see tiny and whitespace differences --- test/test_helper.bash | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/test_helper.bash b/test/test_helper.bash index 30c046293a..8dd403fae5 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -74,8 +74,7 @@ assert_failure() { assert_equal() { if [ "$1" != "$2" ]; then - { echo "expected: \`$1'" - echo "actual: \`$2'" + { diff -u --label expected --label actual <(echo "$1") <(echo "$2") | cat -te } | flunk fi } From f9ffb73a7ed4ea0b6d4f99dbd5b43e294d1a5f2e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 10 Aug 2026 21:19:47 +0300 Subject: [PATCH 1230/1324] test_helper: support here-document to `assert_success/failure`; + assert_output_glob --- test/rehash.bats | 3 ++- test/test_helper.bash | 49 ++++++++++++++++++++++++++++++------- test/version-file-read.bats | 6 ++--- test/versions.bats | 10 +++----- test/which.bats | 4 +-- 5 files changed, 51 insertions(+), 21 deletions(-) diff --git a/test/rehash.bats b/test/rehash.bats index c1476e6c33..342d7e0ca8 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -23,7 +23,8 @@ load test_helper touch "${PYENV_ROOT}/shims/.pyenv-shim" #avoid failure due to a localized error message LANG=C run pyenv-rehash - assert_failure <&2; return 1;; + esac + then + { diff -u --label expected --label actual <(echo "$2") <(echo "$3") | cat -te } | flunk fi } +_assert_output_if_provided() { + if [ "$#" -gt 0 ]; then + assert_output "$1" + elif [ ! -t 0 ]; then + local expected=$(cat -) + if [[ -n $expected ]]; then + assert_output "$expected" + fi + fi +} + assert_output() { + _assert_output_as text "$@" +} + +assert_output_glob() { + _assert_output_as glob "$@" +} + +_assert_output_as() { + local kind="${1:?}"; shift local expected - if [ $# -eq 0 ]; then expected="$(cat -)" - else expected="$1" + if [ $# -eq 0 ] + then expected="$(cat -)" + else expected="$1" fi - assert_equal "$expected" "$output" + _assert_equal_as "$kind" "$expected" "$output" } assert_line() { diff --git a/test/version-file-read.bats b/test/version-file-read.bats index 6563eb6f8d..d20dfd2cf9 100644 --- a/test/version-file-read.bats +++ b/test/version-file-read.bats @@ -90,13 +90,13 @@ IN } @test "skips glob path traversal" { - cat > my-version < my-version <<'IN' ../* 3.9.3 IN run pyenv-version-file-read my-version - assert_success < Date: Mon, 10 Aug 2026 20:31:00 +0300 Subject: [PATCH 1231/1324] pyenv-binary-package: refactor tests * make them more human-readable * don't double-test external code outside of integration tests --- plugins/pyenv-binary/test/package.bats | 36 ++++++++++++++++---------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index b3f2f6dc80..b954fa6d1e 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -24,17 +24,15 @@ stub_build_environment() { done } -@test "completion lists the option and definitions provided by another plugin" { - mkdir -p "${PYENV_ROOT}/plugins/example/share/python-build" - touch "${PYENV_ROOT}/plugins/example/share/python-build/3.12.7-example" - PATH="${BATS_TEST_DIRNAME}/../../python-build/bin:${PATH}" +@test "completions" { + create_stub pyenv-install 'echo "${0##*/} $*"' run pyenv-binary-package --complete - assert_success - assert_line "--archive-base-url" - assert_line "--verbose" - assert_line "3.12.7-example" - refute_line "Available versions:" + assert_success < Date: Wed, 12 Aug 2026 06:45:44 +0300 Subject: [PATCH 1232/1324] Add past CVE-2026-68939 fix to CHANGELOG Now that Github has issued a CVE number 3 weeks late --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e83daa6c03..4e315f8f11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,7 @@ * Add CPython 3.15.0b4 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3495 ## Release v2.8.0 +* CVE-2026-68939: Fix handling of glob characters in .python-version * CI: add_version enhancements by @native-api in https://github.com/pyenv/pyenv/pull/3480 * Add miniforge3-26.3.2-2, 26.3.2-3 by @native-api in https://github.com/pyenv/pyenv/pull/3481 * rehash: fix race condition in landlock writability check by @Sheile in https://github.com/pyenv/pyenv/pull/3483 From 2bd4f6c4daacd3c2390eb2b126e143381582e475 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 Aug 2026 15:26:35 +0300 Subject: [PATCH 1233/1324] - rbenv compatibility note We've not been syncing with Rbenv for years --- .github/PULL_REQUEST_TEMPLATE.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 820ee62e89..85d2001de3 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,9 +3,6 @@ Make sure you have checked all steps below. ### Prerequisite * [ ] Please consider implementing the feature as a hook script or plugin as a first step. * pyenv has some powerful support for plugins and hook scripts. Please refer to [Authoring plugins](https://github.com/pyenv/pyenv/wiki/Authoring-plugins) for details and try to implement it as a plugin if possible. -* [ ] Please consider contributing the patch upstream to [rbenv](https://github.com/rbenv/rbenv), since we have borrowed most of the code from that project. - * We occasionally import the changes from rbenv. In general, you can expect changes made in rbenv will be imported to pyenv too, eventually. - * Generally speaking, we prefer not to make changes in the core in order to keep compatibility with rbenv. * [ ] My PR addresses the following pyenv issue (if any) - Closes https://github.com/pyenv/pyenv/issues/XXXX From 2bcc7d8fc4fab60e9fd482184163bb75a31125c1 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 Aug 2026 15:14:46 +0300 Subject: [PATCH 1234/1324] Add ubuntu ARM images --- .github/workflows/modified_scripts_build.yml | 2 ++ .github/workflows/pyenv_tests.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 900f927f85..13eb99e905 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -207,7 +207,9 @@ jobs: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions)}} os: - ubuntu-22.04 + - ubuntu-22.04-arm - ubuntu-24.04 + - ubuntu-24.04-arm runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index ece8d2cccc..5b1e324cee 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -14,7 +14,9 @@ jobs: matrix: os: - ubuntu-22.04 + - ubuntu-22.04-arm - ubuntu-24.04 + - ubuntu-24.04-arm - macos-14 - macos-15 - macos-15-intel From 0fc5dfe630ba53a8d3a1e24ac30a91225ec17fc7 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 Aug 2026 15:17:07 +0300 Subject: [PATCH 1235/1324] refactor --- .github/workflows/modified_scripts_build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 13eb99e905..a35359305d 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -272,8 +272,7 @@ jobs: fail-fast: false matrix: python-version: ${{fromJson(needs.discover_modified_scripts.outputs.versions_cpython_only)}} - os: ["ubuntu-latest"] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v7 - run: | From f11926a27496071001e34a342a647a6422ab8d70 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 12 Aug 2026 17:40:53 +0300 Subject: [PATCH 1236/1324] Run Docker tests separately --- .github/workflows/pyenv_tests.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/pyenv_tests.yml b/.github/workflows/pyenv_tests.yml index 5b1e324cee..d4043ced77 100644 --- a/.github/workflows/pyenv_tests.yml +++ b/.github/workflows/pyenv_tests.yml @@ -24,25 +24,22 @@ jobs: runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 - - run: | + - name: Install prerequisites + run: | if test "$RUNNER_OS" == "macOS"; then brew install coreutils fish fi - - run: pwd - - env: - PYENV_ROOT: /home/runner/work/pyenv/pyenv - run: | - echo $PYENV_ROOT - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - name: Run test on the host + - name: Run tests run: | make test - - name: Run test with docker - if: ${{ ! contains(matrix.os, 'macos') }} - run: | - make test-docker - env: PYENV_NATIVE_EXT: 1 run: | (cd src; ./configure; make) bats/bin/bats test/{pyenv,hooks,versions}.bats + pyenv_tests_docker: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - run: | + make test-docker From 920052eb0b988601e6cfc0ed5b845ba859da055c Mon Sep 17 00:00:00 2001 From: native-api <2670332+native-api@users.noreply.github.com> Date: Thu, 13 Aug 2026 08:53:14 +0000 Subject: [PATCH 1237/1324] Add CPython 3.10.21, 3.11.16, 3.12.14 --- .../python-build/share/python-build/3.10.21 | 9 +++ .../python-build/share/python-build/3.11.16 | 11 ++++ .../python-build/share/python-build/3.12.14 | 11 ++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 ++++++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 +++++++++++++++++++ 5 files changed, 122 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.21 create mode 100644 plugins/python-build/share/python-build/3.11.16 create mode 100644 plugins/python-build/share/python-build/3.12.14 create mode 100644 plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch diff --git a/plugins/python-build/share/python-build/3.10.21 b/plugins/python-build/share/python-build/3.10.21 new file mode 100644 index 0000000000..199e42cf53 --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.21 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.6.3" "https://github.com/openssl/openssl/releases/download/openssl-3.6.3/openssl-3.6.3.tar.gz#243a86649cf6f23eeb6a2ff2456e09e5d77dd9018a54d3d96b0c6bdd6ba6c7f1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.21" "https://www.python.org/ftp/python/3.10.21/Python-3.10.21.tar.xz#a0da1e72132e950154eca0f6f47d5db828454700de20e5113667940d81e0db04" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.21" "https://www.python.org/ftp/python/3.10.21/Python-3.10.21.tgz#f276987f06270ae6c1fb4da620bd105edf78c31368c2f7e85e6c1d51c560b04b" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.16 b/plugins/python-build/share/python-build/3.11.16 new file mode 100644 index 0000000000..4196a7bca9 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.16 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.3" "https://github.com/openssl/openssl/releases/download/openssl-3.6.3/openssl-3.6.3.tar.gz#243a86649cf6f23eeb6a2ff2456e09e5d77dd9018a54d3d96b0c6bdd6ba6c7f1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.11.16" "https://www.python.org/ftp/python/3.11.16/Python-3.11.16.tar.xz#91bcdebfdde239a003ae93738a7fce0f9230fee5c4bc2b86f6e6e8c6f98aabe8" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.16" "https://www.python.org/ftp/python/3.11.16/Python-3.11.16.tgz#6c0bd76ab0ec7d94ed400b1497f01ac6c7751c8822615ee0855a3eb2d893ea76" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.12.14 b/plugins/python-build/share/python-build/3.12.14 new file mode 100644 index 0000000000..bbab3f3b68 --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.14 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.3" "https://github.com/openssl/openssl/releases/download/openssl-3.6.3/openssl-3.6.3.tar.gz#243a86649cf6f23eeb6a2ff2456e09e5d77dd9018a54d3d96b0c6bdd6ba6c7f1" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.12.14" "https://www.python.org/ftp/python/3.12.14/Python-3.12.14.tar.xz#5c8462af5790baf43a321a1559dbe0db06d1be4300fb85fb53c40060668e548a" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.14" "https://www.python.org/ftp/python/3.12.14/Python-3.12.14.tgz#6c6df908d2c3fd24e6d76869e92542abd0f33aec9dfc18df8875f89660286d43" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + From 3b9604c093b24c4c297ac322e41da57dca012279 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 13 Aug 2026 13:10:43 +0300 Subject: [PATCH 1238/1324] Add missing 3.10.x patches --- ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++++++++++++++++ 2 files changed, 54 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch diff --git a/plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + From 3a98f8c1c3eb83ab95f0cb9567d28da4cfb52274 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 13 Aug 2026 14:16:14 +0300 Subject: [PATCH 1239/1324] add_miniforge: better logging, skip 2 faulty releases --- plugins/python-build/scripts/add_miniforge.py | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index 41ecfce25c..ffaddb6bda 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -1,6 +1,7 @@ #!/usr/bin/env python3 'Adds the latest miniforge and mambaforge releases.' from pathlib import Path +import argparse import logging import os import string @@ -8,7 +9,7 @@ import requests logger = logging.getLogger(__name__) -logging.basicConfig(level=os.environ.get('LOGLEVEL', 'INFO')) +logging.basicConfig(level=logging.INFO) MINIFORGE_REPO = 'conda-forge/miniforge' DISTRIBUTIONS = ['miniforge'] @@ -21,6 +22,8 @@ '22.11.1-2', #MacOS packages are broken (have broken dep tarballs, downloading them fails with 403) '25.3.0-0', #marked as prerelease, no Linux version '25.11.0-0', #regression reported in constructor, re-released as 25.11.0-1 with hotfix bumping to constructor>=3.14 (was >=3.12, 3.13 implicit) + '26.1.1-0', #prerelease, no binary assets + '26.1.1-1', #prerelease, no binary assets ] install_script_fmt = """ @@ -136,7 +139,7 @@ def main(): if version in SKIPPED_RELEASES: continue - logger.info(f'Looking for {version} in {out_dir}') + logger.debug(f'Looking for {version} in {out_dir}') # mambaforge is retired https://github.com/conda-forge/miniforge/releases/tag/24.11.2-0 if version_tuple(version) >= (24, 11, 2): @@ -149,4 +152,17 @@ def main(): add_version(release, distributions) if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-d", "--dry-run", action="store_true", + help="Do not write scripts, just report them to stdout", + ) + parser.add_argument( + "-v", "--verbose", action="store_true", default=0, + help="Increase verbosity of logging", + ) + parsed = parser.parse_args() + + if parsed.verbose: logging.getLogger.setLevel(logging.DEBUG) + main() From 7c2226386bd4316d441924cf5c8065b2cc7f6249 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 13 Aug 2026 14:59:25 +0300 Subject: [PATCH 1240/1324] Add anaconda3-2026.07-1, miniconda3 26.5.3-2 --- plugins/python-build/scripts/add_miniconda.py | 5 ++++- .../share/python-build/anaconda3-2026.07-1 | 19 ++++++++++++++++++ .../python-build/miniconda3-3.10-26.5.3-2 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.11-26.5.3-2 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.12-26.5.3-2 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.13-26.5.3-2 | 20 +++++++++++++++++++ .../python-build/miniconda3-3.14-26.5.3-2 | 20 +++++++++++++++++++ 7 files changed, 123 insertions(+), 1 deletion(-) create mode 100644 plugins/python-build/share/python-build/anaconda3-2026.07-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-2 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-2 diff --git a/plugins/python-build/scripts/add_miniconda.py b/plugins/python-build/scripts/add_miniconda.py index ddea065d15..adad3eea9d 100755 --- a/plugins/python-build/scripts/add_miniconda.py +++ b/plugins/python-build/scripts/add_miniconda.py @@ -219,7 +219,10 @@ def default_py_version(self): # since 4.8, Miniconda specifies versions explicitly in the file name raise ValueError("Miniconda 4.8+ is supposed to specify a Python version explicitly") if self.flavor == "anaconda": - # https://www.anaconda.com/docs/tools/anaconda-org/release-notes + # Info about the bundled Python version + # https://www.anaconda.com/docs/getting-started/anaconda/release-notes + if v >= (2026,7): + return PyVersion.PY314 if v >= (2025,6): return PyVersion.PY313 if v >= (2024,6): diff --git a/plugins/python-build/share/python-build/anaconda3-2026.07-1 b/plugins/python-build/share/python-build/anaconda3-2026.07-1 new file mode 100644 index 0000000000..9b96a06ccc --- /dev/null +++ b/plugins/python-build/share/python-build/anaconda3-2026.07-1 @@ -0,0 +1,19 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Anaconda3-2026.07-1-Linux-aarch64" "https://repo.anaconda.com/archive/Anaconda3-2026.07-1-Linux-aarch64.sh#af2fd0025728a04408e0481d5668b92c53589cbfc66525a15119e6503742a04d" "anaconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Anaconda3-2026.07-1-Linux-x86_64" "https://repo.anaconda.com/archive/Anaconda3-2026.07-1-Linux-x86_64.sh#9f49042048e9a8220c1cddf9192054290724052d3b2a86f938f9f5edd911db8f" "anaconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Anaconda3-2026.07-1-MacOSX-arm64" "https://repo.anaconda.com/archive/Anaconda3-2026.07-1-MacOSX-arm64.sh#6a9b63c645db4dbe293ffe9f168f7e380fe7a041fc863e67ee84db027425bce2" "anaconda" verify_py314 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-2 b/plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-2 new file mode 100644 index 0000000000..9522c307c9 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.5.3-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_26.5.3-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.5.3-2-Linux-aarch64.sh#69b30d25b1308596e39819d2eeb8d669fec8b35205254d4d38975e9a6eb525e5" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_26.5.3-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.5.3-2-Linux-x86_64.sh#83e53ab0246ca320db28734bfd16f9bba895d96ae3e0ccf6f9b65e1383ab6a26" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_26.5.3-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.5.3-2-MacOSX-arm64.sh#fc25d37469e162e3073093c1e02a0a21a59681af10a097f73df3f303b89b050a" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-2 b/plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-2 new file mode 100644 index 0000000000..e01ba4ef37 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.5.3-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_26.5.3-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.5.3-2-Linux-aarch64.sh#e50d1c902e94b6f64a19e0a3fbc35f8cadc09c5a1cf5b0fe10da14e4ce7ff24d" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_26.5.3-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.5.3-2-Linux-x86_64.sh#cdca3dd8440759bb87c60b227e26946263fe2856b30b2bcfdd964c38254fb8eb" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_26.5.3-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.5.3-2-MacOSX-arm64.sh#129bee9cb8e23d0eed175439a8b41c9844bac5c75f3f2aefa0be7104b403706f" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-2 b/plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-2 new file mode 100644 index 0000000000..0e38177de1 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.5.3-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_26.5.3-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.5.3-2-Linux-aarch64.sh#822923b30d789477964ef5589f86de5a72ac4c584bad3b9f72d97190e13d776f" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_26.5.3-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.5.3-2-Linux-x86_64.sh#37606f9f03ced8ef60f4ffc76b21dda01728eac8a632dcab316c891cea4fe2f5" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_26.5.3-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.5.3-2-MacOSX-arm64.sh#ba7e4dede827e98c468c2dfa3b9a859728844ee8bde72a28eb216869af2d6ce1" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-2 b/plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-2 new file mode 100644 index 0000000000..794e004f9c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.5.3-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_26.5.3-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.5.3-2-Linux-aarch64.sh#549176858e194a15df5c8326b9f4e1b7ddf1464df47aec4115d0e6d14204e8bb" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_26.5.3-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.5.3-2-Linux-x86_64.sh#66f7c434bbdc7a4c5687b7e56cde724f73954d1322ffb273c6e387f12fbcdc03" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_26.5.3-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.5.3-2-MacOSX-arm64.sh#0d4d44f5d0740dddc68d381bbc8eb8c056d4792c832a9f0e3b5c663f7dda9d67" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-2 b/plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-2 new file mode 100644 index 0000000000..19436c4b5f --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.14-26.5.3-2 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py314_26.5.3-2-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.5.3-2-Linux-aarch64.sh#999e8761f4dc74fb8d0dc9f74d5374f6708ff81eebbb0af677a4d5307d38b2e5" "miniconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py314_26.5.3-2-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.5.3-2-Linux-x86_64.sh#80bc27f13c4de90f10e387aa45e864de4f0860692c1221aef5900009a2b55302" "miniconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py314_26.5.3-2-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.5.3-2-MacOSX-arm64.sh#e830bee5b9c6ebfb67e9df924b259a0d43c451bd17b965f7aa84523b69f7c3eb" "miniconda" verify_py314 + ;; +* ) + { 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 From 0f16606e4f906bac76a409bcab40974d579067bf Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 13 Aug 2026 15:08:51 +0300 Subject: [PATCH 1241/1324] 2.8.4 --- CHANGELOG.md | 9 +++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e315f8f11..5e813920aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +## Release v2.8.4 +* CI: Add macos_26_intel by @native-api in https://github.com/pyenv/pyenv/pull/3514 +* pyenv-binary: check FreeBSD system libraries by @macayu17 in https://github.com/pyenv/pyenv/pull/3511 +* version-file: Fix infinite loop for a relative path argument by @fudianchn in https://github.com/pyenv/pyenv/pull/3515 +* pyenv-binary: check patchelf early and add --verbose by @macayu17 in https://github.com/pyenv/pyenv/pull/3516 +* CI: add ubuntu ARM images by @native-api in https://github.com/pyenv/pyenv/pull/3517 +* Add CPython 3.10.21, 3.11.16, 3.12.14 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3518 +* Add anaconda3-2026.07-1, miniconda3 26.5.3-2 by @native-api in https://github.com/pyenv/pyenv/pull/3519 + ## Release v2.8.3 * Add CPython 3.13.15, 3.14.7 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3512 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f3c3c4aef6..e33dabae66 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.3" +version="2.8.4" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a7f29fca60..b925139406 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.3" +PYTHON_BUILD_VERSION="2.8.4" OLDIFS="$IFS" From 50fbc8c6cc8c94860566f677bfd8d2cb745d0452 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Sun, 16 Aug 2026 01:17:27 +0530 Subject: [PATCH 1242/1324] pyenv-binary: record direct system dependencies in Linux/FreeBSD (#3520) --- .../pyenv-binary/libexec/pyenv-binary-save | 21 ++++++++++++++++--- plugins/pyenv-binary/test/package.bats | 1 + plugins/pyenv-binary/test/save.bats | 20 +++++++++++++++--- test/Dockerfile | 2 +- test/test_helper.bash | 2 +- 5 files changed, 38 insertions(+), 8 deletions(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index 4b1047a3a0..8e2405b267 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -92,12 +92,16 @@ fi if [ "$os" = "Linux" ]; then libc="$(getconf GNU_LIBC_VERSION 2>/dev/null || true)" fi +if [ "$os" != "Darwin" ] && ! LC_ALL=C readelf --version &>/dev/null; then + echo "pyenv-binary: need readelf to inspect shared libraries" >&2 + exit 1 +fi # List the external shared libraries the install links against: those that # resolve outside its own prefix, so they must already exist on the target. # The interpreter plus every bundled shared object are inspected. system_deps() { - local f + local f needed { for f in "${prefix}"/bin/python*; do [ -e "$f" ] && printf '%s\n' "$f" @@ -111,8 +115,19 @@ system_deps() { otool -L "$f" 2>/dev/null | tail -n +2 | awk -v pfx="${prefix}/" \ '$1 !~ /^@/ && substr($1, 1, length(pfx)) != pfx { print $1 }' else - ldd "$f" 2>/dev/null | awk -v pfx="${prefix}/" \ - '$2 == "=>" && $3 ~ /^\// && substr($3, 1, length(pfx)) != pfx { print $1 }' + # GNU binutils 2.44 writes "(NEEDED) ... [name]"; FreeBSD 15.1 writes + # "NEEDED ... [name]". readelf(1) documents -d, not its text format. + needed="$(LC_ALL=C readelf -dW "$f" 2>/dev/null | awk \ + '$2 == "(NEEDED)" || $2 == "NEEDED" { sub(/^.*\[/, ""); sub(/\].*$/, ""); print }' | tr '\n' ' ')" + # Linux and FreeBSD ldd write resolved libraries as + # "name => /absolute/path (address)"; entries without "=>" are ignored. + LC_ALL=C ldd "$f" 2>/dev/null | awk -v needed="$needed" -v pfx="${prefix}/" ' + BEGIN { + split(needed, deps, " ") + for (i in deps) direct[deps[i]] = 1 + } + $1 in direct && $2 == "=>" && $3 ~ /^\// && substr($3, 1, length(pfx)) != pfx { print $1 } + ' fi done | sort -u } diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index b954fa6d1e..51da03a230 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -10,6 +10,7 @@ stub_build_environment() { create_stub pyenv-latest 'while (($#)); do case "$1" in -f|-k);; *)break;; esac; shift; done; echo "$*"' create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' create_stub getconf 'echo "glibc 2.17"' + create_stub readelf true } @test "-v|--verbose runs pyenv install verbosely" { diff --git a/plugins/pyenv-binary/test/save.bats b/plugins/pyenv-binary/test/save.bats index 03616856b3..9c2d745a29 100644 --- a/plugins/pyenv-binary/test/save.bats +++ b/plugins/pyenv-binary/test/save.bats @@ -79,7 +79,16 @@ platform() { assert_line "archive=3.12.7-$(platform).tar.gz" } -@test "records only the libraries ldd resolves outside the prefix" { +@test "fails when readelf is not available" { + create_version "3.12.7" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + + PATH="$(path_without readelf)" run pyenv-binary-save "3.12.7" "${BATS_TEST_TMPDIR}/dist" + assert_failure "pyenv-binary: need readelf to inspect shared libraries" + assert [ ! -e "${BATS_TEST_TMPDIR}/dist/3.12.7-$(platform).tar.gz" ] +} + +@test "records only direct libraries resolved outside the prefix" { create_version "3.12.7" touch "${PYENV_ROOT}/versions/3.12.7/bin/python3.12" create_path_executable uname <<'STUB' @@ -97,13 +106,18 @@ cat < /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4a3b800000) /lib64/ld-linux-x86-64.so.2 (0x00007f4a3c200000) EOF +STUB + create_path_executable readelf <<'STUB' +cat < Date: Sun, 16 Aug 2026 18:51:28 -0400 Subject: [PATCH 1243/1324] Fix typo --- libexec/pyenv-version-file | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index e9fba30bde..2e8a23baf8 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -11,7 +11,7 @@ find_local_version_file() { # Nonexistent paths are UB as of this writing. # Relative ones cause a failure but absolute ones don't [[ $root != /* ]] && root=$(CDPATH= cd -- "$root" && pwd) - # Original Rbenv code supports UNC notaion for Cygwin/MinGW + # Original Rbenv code supports UNC notation for Cygwin/MinGW # (https://github.com/rbenv/rbenv/pull/529) # POSIX.1-2024 still allows to treat // in implementation-specific manner # (https://pubs.opengroup.org/onlinepubs/9799919799/basedefs/V1_chap04.html#tag_04_16) From b0cff001ffa831e19da613b8e7fea4f48968d078 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 25 Aug 2026 22:43:59 +0300 Subject: [PATCH 1244/1324] tests: Fix "cd: null directory" in OpenSUSE (#3524) A workaround because tests don't use the Pyenv launcher and setting PYENV_DIR to $PWD at every run invocation is too cumbersome. --- libexec/pyenv-version-file | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index 2e8a23baf8..33548571b0 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -38,7 +38,9 @@ find_local_version_file() { if [ -n "$target_dir" ]; then find_local_version_file "$target_dir" else - find_local_version_file "$PYENV_DIR" || { + # In tests, PYENV_DIR is not set, ultimately leading to "cd: null directory" in OpenSUSE + # While most `cd` implemntations treat an empty argument the same as missing, that's still wrong + find_local_version_file "${PYENV_DIR:=$PWD}" || { [ "$PYENV_DIR" != "$PWD" ] && find_local_version_file "$PWD" } || echo "${PYENV_ROOT}/version" fi From 032e7af407f4e7402797f7ad5455b7c2fbba53e3 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 25 Aug 2026 22:29:03 +0300 Subject: [PATCH 1245/1324] tests: consolidate shims tests --- test/shims-linked-from-elsewhere.bats | 39 --------------------------- test/shims.bats | 36 +++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 39 deletions(-) delete mode 100644 test/shims-linked-from-elsewhere.bats diff --git a/test/shims-linked-from-elsewhere.bats b/test/shims-linked-from-elsewhere.bats deleted file mode 100644 index b3e67b0611..0000000000 --- a/test/shims-linked-from-elsewhere.bats +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bats - -load test_helper - -@test "shims linked from elsewhere are chained, other programs at the same paths are unaffected (integration)" { - bats_require_minimum_version 1.5.0 - progname=shimmed_program - called_progname=another_program - create_alt_executable_in_version "custom" "$progname" < Date: Tue, 25 Aug 2026 22:04:59 +0300 Subject: [PATCH 1246/1324] tests: skip permission tests if permission bits are being overridden e.g. if running as root in a docker container --- plugins/python-build/test/build.bats | 3 +++ plugins/python-build/test/test_helper.bash | 4 ++++ test/rehash.bats | 2 ++ test/test_helper.bash | 5 +++++ 4 files changed, 14 insertions(+) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 7d787eab22..fe6e1abbed 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -1276,6 +1276,7 @@ OUT mkdir -p "$INSTALL_ROOT/bin" touch "$INSTALL_ROOT/bin/package" chmod -w "$INSTALL_ROOT/bin/package" + skip_if_nonposix_security -w "$INSTALL_ROOT/bin/package" install_fixture definitions/without-checksum assert_success @@ -1288,6 +1289,7 @@ OUT export TMPDIR="${BATS_TEST_TMPDIR}/build" mkdir -p "$TMPDIR" chmod -w "$TMPDIR" + skip_if_nonposix_security -w "$TMPDIR" touch "${BATS_TEST_TMPDIR}/build-definition" run python-build "${BATS_TEST_TMPDIR}/build-definition" "$INSTALL_ROOT" @@ -1298,6 +1300,7 @@ OUT export TMPDIR="${BATS_TEST_TMPDIR}/build" mkdir -p "$TMPDIR" chmod -x "$TMPDIR" + skip_if_nonposix_security -x "$TMPDIR" touch "${BATS_TEST_TMPDIR}/build-definition" run python-build "${BATS_TEST_TMPDIR}/build-definition" "$INSTALL_ROOT" diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index 82321e5818..a72806abc3 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -162,3 +162,7 @@ path_without() { echo "$path" } +skip_if_nonposix_security() { + true "${1:?}" "${2:?}" + test "$@" && skip "UNIX permission bits are being overridden" || true +} diff --git a/test/rehash.bats b/test/rehash.bats index 342d7e0ca8..3d31d5ebce 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -13,6 +13,8 @@ load test_helper @test "non-writable shims directory" { mkdir -p "${PYENV_ROOT}/shims" chmod -w "${PYENV_ROOT}/shims" + skip_if_nonposix_security -w "${PYENV_ROOT}/shims" + run pyenv-rehash assert_failure "pyenv: cannot rehash: ${PYENV_ROOT}/shims isn't writable" } diff --git a/test/test_helper.bash b/test/test_helper.bash index 2d3d1c114a..ee0a698eed 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -223,3 +223,8 @@ create_hook() { cat > "${PYENV_HOOK_PATH}/$1/$2" fi } + +skip_if_nonposix_security() { + true "${1:?}" "${2:?}" + test "$@" && skip "UNIX permission bits are being overridden" || true +} From 57f1df294b36f92533a000d4bfcb140fa483ad81 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 25 Aug 2026 22:04:08 +0300 Subject: [PATCH 1247/1324] tests: add file names to TAP output by using a customized formatter --- Makefile | 12 +++++--- test/libexec/bats-format-tap-suite | 45 ++++++++++++++++++++++++++++++ test/run | 2 +- 3 files changed, 54 insertions(+), 5 deletions(-) create mode 100755 test/libexec/bats-format-tap-suite diff --git a/Makefile b/Makefile index 1717558817..6a8ae7e900 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,8 @@ $(TEST_PYTHON_BUILD_DOCKER_TARGETS): $(TEST_PYTHON_BUILD_DOCKER_PREFIX)-% : $(TE $${CI+-e CI="$${CI}"} \ $(INTERACTIVE) \ $(DOCKER_IMAGE):$(DOCKER_TAG) \ - bats $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/python-build/test/$${BATS_FILE_FILTER} + bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \ + $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/python-build/test/$${BATS_FILE_FILTER} .PHONY: $(TEST_BINARY_DOCKER_PREFIX) $(TEST_BINARY_DOCKER_PREFIX): $(TEST_BINARY_DOCKER_TARGETS) @@ -84,7 +85,8 @@ $(TEST_BINARY_DOCKER_TARGETS): $(TEST_BINARY_DOCKER_PREFIX)-% : $(TEST_BATS_IMAG $${CI+-e CI="$${CI}"} \ $(INTERACTIVE) \ $(DOCKER_IMAGE):$(DOCKER_TAG) \ - bats $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/pyenv-binary/test/$${BATS_FILE_FILTER} + bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \ + $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/pyenv-binary/test/$${BATS_FILE_FILTER} # Build all images needed for bats under docker .PHONY: $(TEST_BATS_IMAGE_PREFIX) @@ -120,10 +122,12 @@ test-unit: bats PATH="./bats/bin:$$PATH" test/run test-python-build: bats - cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+--tap} $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} + cd plugins/python-build && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \ + $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} test-binary: bats - cd plugins/pyenv-binary && $(PWD)/bats/bin/bats $${CI:+--tap} $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} + cd plugins/pyenv-binary && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \ + $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} .SECONDARY: bats-$(TEST_BATS_VERSION) bats-$(TEST_BATS_VERSION): diff --git a/test/libexec/bats-format-tap-suite b/test/libexec/bats-format-tap-suite new file mode 100755 index 0000000000..59284775d0 --- /dev/null +++ b/test/libexec/bats-format-tap-suite @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -e + +# Wraps Bats TAP formatter, adding file names to the output + +_BATS_FORMATTER_LIB_RELPATH="lib/bats-core/formatter.bash" +source "$BATS_ROOT/$_BATS_FORMATTER_LIB_RELPATH" + + +# `bats-format-tap` calls this fn at the end +# We must stub it to be able to source and alter it +# https://stackoverflow.com/questions/1203583/how-do-i-rename-a-bash-function +eval orig_"$(declare -f bats_parse_internal_extended_tap)" +bats_parse_internal_extended_tap() { true; } + + +# stub sourcing lib from `bats-format-tap` +# as that would've reset the stubbed fn +FAKE_BATS_ROOT= +_trap_rm_fakeroot() { rm -rf "$FAKE_BATS_ROOT"; } +REAL_BATS_ROOT="$BATS_ROOT" +FAKE_BATS_ROOT=$(mktemp -d) +trap _trap_rm_fakeroot ERR EXIT +mkdir -p "$(dirname "$FAKE_BATS_ROOT/$_BATS_FORMATTER_LIB_RELPATH")" +touch "$FAKE_BATS_ROOT/$_BATS_FORMATTER_LIB_RELPATH" +BATS_ROOT="$FAKE_BATS_ROOT" + +source "$REAL_BATS_ROOT/libexec/bats-core/bats-format-tap" + +_trap_rm_fakeroot +trap - ERR EXIT +BATS_ROOT="$REAL_BATS_ROOT" +unset FAKE_BATS_ROOT REAL_BATS_ROOT _trap_rm_fakeroot + + +# Finally, alter `bats-format-tap`'s logic and invoke it + +# print as "Anything" line +bats_tap_stream_suite() { # + # bats only passes --base-name to specific built-in formatters + # so we don't have info where the test root is + printf '%s\n' "${1##*/}" +} + +orig_bats_parse_internal_extended_tap \ No newline at end of file diff --git a/test/run b/test/run index 45eb16edaa..49aac72da4 100755 --- a/test/run +++ b/test/run @@ -6,4 +6,4 @@ if [ -n "$PYENV_NATIVE_EXT" ]; then make -C src fi -exec bats ${CI:+--tap} ${BATS_TEST_FILTER:+--filter "${BATS_TEST_FILTER}"} test/${BATS_FILE_FILTER} +exec bats ${CI:+-F "$PWD/test/libexec/bats-format-tap-suite"} ${BATS_TEST_FILTER:+--filter "${BATS_TEST_FILTER}"} test/${BATS_FILE_FILTER} From ecf9a7f9e697e5146297cabcf7bfd6946a1dd9ce Mon Sep 17 00:00:00 2001 From: sujeito-operator Date: Mon, 24 Aug 2026 01:56:52 +0300 Subject: [PATCH 1248/1324] CI: collapse macos_build and ubuntu_build into a single job Co-Authored-By: Ivan Pozdeev --- .github/actions/build-python/action.yml | 47 +++++++++++++++++++++++++ .github/workflows/build.yml | 37 +++++++++++++++++++ .github/workflows/macos_build.yml | 43 ---------------------- .github/workflows/ubuntu_build.yml | 43 ---------------------- 4 files changed, 84 insertions(+), 86 deletions(-) create mode 100644 .github/actions/build-python/action.yml create mode 100644 .github/workflows/build.yml delete mode 100644 .github/workflows/macos_build.yml delete mode 100644 .github/workflows/ubuntu_build.yml diff --git a/.github/actions/build-python/action.yml b/.github/actions/build-python/action.yml new file mode 100644 index 0000000000..253d99bd73 --- /dev/null +++ b/.github/actions/build-python/action.yml @@ -0,0 +1,47 @@ +name: Build a Python version +description: > + Install python-build's system dependencies for the current runner's OS, build + the requested version from source with `pyenv install`, and check that the + interpreter that comes out is the one that was asked for. +inputs: + python-version: + description: A version as accepted by `pyenv install`. + required: true +runs: + using: composite + steps: + # The two OSes differ only in this step. + - if: runner.os == 'macOS' + shell: bash + run: | + #prerequisites + brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd + - if: runner.os == 'Linux' + shell: bash + run: | + #prerequisites + sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ + libbz2-dev libreadline-dev libsqlite3-dev curl \ + libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev + - shell: bash + run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + - shell: bash + run: | + #build + pyenv --debug install ${{ inputs.python-version }} && rc=$? || rc=$? + if [[ $rc -ne 0 ]]; then echo config.log:; cat "${TMPDIR:-/tmp}"/python-build*/*/config.log; false; fi + pyenv global ${{ inputs.python-version }} + pyenv rehash + - shell: bash + run: | + #print version + python --version + python -m pip --version + - shell: python # Prove that actual Python == expected Python + env: + EXPECTED_PYTHON: ${{ inputs.python-version }} + run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..ad0f4ee1db --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +name: build +on: + push: + branches: [master] + pull_request: {} + +permissions: + contents: read + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: + - macos-14 + - macos-15 + - macos-15-intel + - macos-26 + - macos-26-intel + - ubuntu-22.04 + - ubuntu-22.04-arm + - ubuntu-24.04 + - ubuntu-24.04-arm + python-version: + - "3.10" + - "3.11" + - "3.12" + - "3.13" + - "3.14" + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v7 + - uses: ./.github/actions/build-python + with: + python-version: ${{ matrix.python-version }} + diff --git a/.github/workflows/macos_build.yml b/.github/workflows/macos_build.yml deleted file mode 100644 index b30511ac32..0000000000 --- a/.github/workflows/macos_build.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: macos_build -on: - push: - branches: [master] - pull_request: {} - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - macos_build: - strategy: - fail-fast: false - matrix: - python-version: - - "3.10" - - "3.11" - - "3.12" - - "3.13" - - "3.14" - runs-on: macos-latest - steps: - - uses: actions/checkout@v7 - - run: | - brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd - - run: | - #envvars - export PYENV_ROOT="$GITHUB_WORKSPACE" - echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - - run: | - #build - pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? - if [[ $rc -ne 0 ]]; then echo config.log:; cat $TMPDIR/python-build*/*/config.log; false; fi - pyenv global ${{ matrix.python-version }} - - run: | - #print version - python --version - python -m pip --version - - shell: python # Prove that actual Python == expected Python - env: - EXPECTED_PYTHON: ${{ matrix.python-version }} - run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) diff --git a/.github/workflows/ubuntu_build.yml b/.github/workflows/ubuntu_build.yml deleted file mode 100644 index 697f4bd7c4..0000000000 --- a/.github/workflows/ubuntu_build.yml +++ /dev/null @@ -1,43 +0,0 @@ -name: ubuntu_build -on: - push: - branches: [master] - pull_request: {} - -permissions: - contents: read # to fetch code (actions/checkout) - -jobs: - ubuntu_build: - strategy: - fail-fast: false - matrix: - python-version: - - "3.10" - - "3.11" - - "3.12" - - "3.13" - - "3.14" - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v7 - - run: | - sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ - libbz2-dev libreadline-dev libsqlite3-dev curl \ - libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev - # https://github.com/pyenv/pyenv#installation - - run: pwd - - env: - PYENV_ROOT: /home/runner/work/pyenv/pyenv - run: | - echo $PYENV_ROOT - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - bin/pyenv --debug install ${{ matrix.python-version }} - bin/pyenv global ${{ matrix.python-version }} - bin/pyenv rehash - - run: python --version - - run: python -m pip --version - - shell: python # Prove that actual Python == expected Python - env: - EXPECTED_PYTHON: ${{ matrix.python-version }} - run: import os, sys ; assert sys.version.startswith(os.getenv("EXPECTED_PYTHON")) From 97900a4aa4b1d8a9bd0188e014d557bc13aaecd4 Mon Sep 17 00:00:00 2001 From: sujeito-operator Date: Sun, 23 Aug 2026 21:19:29 +0300 Subject: [PATCH 1249/1324] CI: test on all runners when the build logic changes Co-Authored-By: Ivan Pozdeev --- .github/actions/build-python/action.yml | 3 +- .github/workflows/build.yml | 45 +++++++++++++++++++------ 2 files changed, 36 insertions(+), 12 deletions(-) diff --git a/.github/actions/build-python/action.yml b/.github/actions/build-python/action.yml index 253d99bd73..fa310e81ad 100644 --- a/.github/actions/build-python/action.yml +++ b/.github/actions/build-python/action.yml @@ -1,8 +1,7 @@ name: Build a Python version description: > Install python-build's system dependencies for the current runner's OS, build - the requested version from source with `pyenv install`, and check that the - interpreter that comes out is the one that was asked for. + and check the requested version. inputs: python-version: description: A version as accepted by `pyenv install`. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ad0f4ee1db..3fc2e67453 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,20 +8,45 @@ permissions: contents: read jobs: + discover_build_logic_change: + if: github.event_name == 'pull_request' + runs-on: ubuntu-slim + env: + FULL_OS_MATRIX: '[ + "macos-14", + "macos-15", + "macos-15-intel", + "macos-26", + "macos-26-intel", + "ubuntu-22.04", + "ubuntu-22.04-arm", + "ubuntu-24.04", + "ubuntu-24.04-arm" + ]' + outputs: + os: ${{ steps.detect.outputs.os }} + steps: + - uses: actions/checkout@v7 + - run: git fetch origin "$GITHUB_BASE_REF" + - id: detect + shell: bash + run: | + if [[ -n $(git diff --name-only "origin/$GITHUB_BASE_REF" -- \ + plugins/python-build/bin/python-build \ + .github/actions/build-python/action.yml \ + .github/workflows/build.yml) ]] + then + printf "%s\n" "os<> "$GITHUB_OUTPUT" + fi + build: + needs: discover_build_logic_change + # Run when the detection job succeeded *or was skipped* -- but not failed + if: ${{ !cancelled() && !failure() }} strategy: fail-fast: false matrix: - os: - - macos-14 - - macos-15 - - macos-15-intel - - macos-26 - - macos-26-intel - - ubuntu-22.04 - - ubuntu-22.04-arm - - ubuntu-24.04 - - ubuntu-24.04-arm + os: ${{ fromJson(needs.discover_build_logic_change.outputs.os || '["macos-latest","ubuntu-latest"]') }} python-version: - "3.10" - "3.11" From 4733cca31b0f63eab95937f179584ba0d47d44d5 Mon Sep 17 00:00:00 2001 From: Michael Newman Date: Fri, 28 Aug 2026 08:36:28 -0400 Subject: [PATCH 1250/1324] Fix typo --- plugins/pyenv-binary/libexec/pyenv-binary-generate-installer | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer index 4e943ba820..39ca705223 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer +++ b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer @@ -14,7 +14,7 @@ # into the definition; `pyenv binary save' writes the two together. # # A .meta file written by `pyenv binary save'. -# The corresponsing binary package written by `pyenv binary save' +# The corresponding binary package written by `pyenv binary save' # needs to be present alongside it. # --archive-url The URL for the resulting installation script to download # the package from. From 981559003f9c301c71aa1a61bc7e969c904bfc40 Mon Sep 17 00:00:00 2001 From: Michael Newman Date: Sat, 29 Aug 2026 08:01:30 -0400 Subject: [PATCH 1251/1324] Fix typo --- libexec/pyenv-version-file | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index 33548571b0..eadb0c1ca8 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -39,7 +39,7 @@ if [ -n "$target_dir" ]; then find_local_version_file "$target_dir" else # In tests, PYENV_DIR is not set, ultimately leading to "cd: null directory" in OpenSUSE - # While most `cd` implemntations treat an empty argument the same as missing, that's still wrong + # While most `cd` implementations treat an empty argument the same as missing, that's still wrong find_local_version_file "${PYENV_DIR:=$PWD}" || { [ "$PYENV_DIR" != "$PWD" ] && find_local_version_file "$PWD" } || echo "${PYENV_ROOT}/version" From a00e0bc475b4fa144d98135b30f35d9c34afe123 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Mon, 31 Aug 2026 22:28:40 +0200 Subject: [PATCH 1252/1324] Add GraalPy 25.3.4.1 (#3529) --- .../share/python-build/graalpy3.13-25.3.4.1 | 49 +++++++++++++++++++ .../graalpy3.13-community-25.3.4.1 | 44 +++++++++++++++++ 2 files changed, 93 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 create mode 100644 plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 diff --git a/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 b/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 new file mode 100644 index 0000000000..5311caae92 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 @@ -0,0 +1,49 @@ +# Copyright (c) 2026, 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='25.3.4.1' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy3.13-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="23515b4e659d645960517b0ceedb90faa84fcb01f0f4497beca5868a1b1ae3ea" + ;; +"linux-aarch64" ) + checksum="53b80e284e444540ae7cb67349af3dd8f6c1848fbf6abb5051742ac745f1f33d" + ;; +"macos-aarch64" ) + checksum="8ac33b5a5d0ee872751595211508fd826f47051ff6e6614032aed1de071eebab" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +install_package "graalpy3.13-${VERSION}" "https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.13-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 b/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 new file mode 100644 index 0000000000..f5c4bbbbca --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 @@ -0,0 +1,44 @@ +# Copyright (c) 2026, 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='25.3.4.1' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="5e239616c8352488585f58d33991d262e8c627483741778ad43d39a4830176ad" + ;; +"linux-aarch64" ) + checksum="13007ecfe8180e91f1060de60a2ba6ce88f38faa4a36574b34143a492e8c660e" + ;; +"macos-aarch64" ) + checksum="e2cf7ae230478ad8d100ad868f75e3addb174d81e7f550322ea5e74cab066644" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +install_package "graalpy3.13-community-${VERSION}" "https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.13-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip From 8c46508bd0db4b557063a6a3632a6f4fae19178d Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Tue, 1 Sep 2026 17:53:59 +0300 Subject: [PATCH 1253/1324] Add CPython 3.15.0rc2 (#3530) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.15.0rc1 | 11 ----------- plugins/python-build/share/python-build/3.15.0rc2 | 11 +++++++++++ .../share/python-build/{3.15.0rc1t => 3.15.0rc2t} | 0 3 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.15.0rc1 create mode 100644 plugins/python-build/share/python-build/3.15.0rc2 rename plugins/python-build/share/python-build/{3.15.0rc1t => 3.15.0rc2t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0rc1 b/plugins/python-build/share/python-build/3.15.0rc1 deleted file mode 100644 index d372b37e5f..0000000000 --- a/plugins/python-build/share/python-build/3.15.0rc1 +++ /dev/null @@ -1,11 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-4.0.1" "https://github.com/openssl/openssl/releases/download/openssl-4.0.1/openssl-4.0.1.tar.gz#2db3f3a0d6ea4b59e1f094ace2c8cd536dffb87cdc39084c5afa1e6f7f37dd09" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.15.0rc1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc1.tar.xz#f84dad680ab2147417d2739355c2678f0f9acffe4ae8ef77895de1454b384b07" standard verify_py315 copy_python_gdb ensurepip -else - install_package "Python-3.15.0rc1" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc1.tgz#32c2b9878bbd6ac3ceb138c5b6c880345ce9d33388b399378c0da6fc7cb3bfbc" standard verify_py315 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0rc2 b/plugins/python-build/share/python-build/3.15.0rc2 new file mode 100644 index 0000000000..7e588bd1c4 --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0rc2 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.2" "https://github.com/openssl/openssl/releases/download/openssl-4.0.2/openssl-4.0.2.tar.gz#736b467530f916737b7031310ccb21d8218c6229e61e8e160cd1d3458cd543a8" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0rc2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc2.tar.xz#8d93af5eaaaea5adfd41bd786a7ba3f03f2ad1ab57c6a65e0b963deab91d5ad7" standard verify_py315 copy_python_gdb ensurepip +else + install_package "Python-3.15.0rc2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc2.tgz#164dbb80f5e1fdd8768387724bfa014da1000401b2015d872a2396c8b858b829" standard verify_py315 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0rc1t b/plugins/python-build/share/python-build/3.15.0rc2t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0rc1t rename to plugins/python-build/share/python-build/3.15.0rc2t From bdfc6b03f39c38b31fa865a8d30e37318b66e9e0 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Tue, 1 Sep 2026 20:31:23 +0530 Subject: [PATCH 1254/1324] pyenv-binary: support relocating macOS archives (#3528) --- .../libexec/pyenv-binary-generate-installer | 37 +++-- .../pyenv-binary/libexec/pyenv-binary-package | 9 -- .../libexec/pyenv-binary-relocate | 89 ++++++++++- .../pyenv-binary/libexec/pyenv-binary-save | 1 + .../pyenv-binary/test/generate-installer.bats | 68 +++++++- plugins/pyenv-binary/test/package.bats | 10 +- plugins/pyenv-binary/test/relocate.bats | 149 ++++++++++++++++++ plugins/pyenv-binary/test/save.bats | 9 ++ 8 files changed, 344 insertions(+), 28 deletions(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer index 39ca705223..58e5d461b7 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer +++ b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer @@ -55,7 +55,7 @@ if [ -z "$metadata" ] || [ -z "$archive_url" ]; then exit 1 fi -version="" os="" arch="" distro="" libc="" archive="" +version="" os="" arch="" distro="" libc="" build_prefix="" archive="" deps="" while IFS='=' read -r key value; do case "$key" in @@ -64,6 +64,7 @@ while IFS='=' read -r key value; do arch ) arch="$value" ;; distro ) distro="$value" ;; libc ) libc="$value" ;; + build_prefix ) build_prefix="$value" ;; archive ) archive="$value" ;; dep ) deps="${deps:+$deps }$value" ;; esac @@ -78,10 +79,9 @@ for field in version os arch archive; do fi done -# macOS relocation needs install_name_tool and a different rpath scheme, so it is -# not supported yet. Other systems relocate with patchelf. -if [ "$os" = "Darwin" ]; then - echo "pyenv-binary: macOS archives are not supported yet" >&2 +# Mach-O load commands contain the prefix where Python was built. +if [ "$os" = "Darwin" ] && [ -z "$build_prefix" ]; then + echo "pyenv-binary: metadata is missing \`build_prefix'" >&2 exit 1 fi @@ -122,6 +122,7 @@ emit() { printf 'EXPECT_OS=%q\n' "$os" printf 'EXPECT_ARCH=%q\n' "$arch" printf 'EXPECT_LIBC=%q\n' "$libc" + printf 'BUILD_PREFIX=%q\n' "$build_prefix" printf 'VERSION=%q\n' "$version" printf 'ARCHIVE_URL=%q\n' "$archive_url" printf 'SHA256=%q\n' "$sha256" @@ -185,13 +186,29 @@ elif [ -n "$DEPS" ]; then echo "pyenv-binary: cannot check required system libraries (ldconfig cache unavailable)" >&2 fi -if ! command -v patchelf >/dev/null 2>&1; then - echo "pyenv-binary: need patchelf to relocate the binary" >&2 - exit 1 -fi +case "$os" in +Darwin ) + for tool in otool install_name_tool; do + if ! command -v "$tool" >/dev/null 2>&1; then + echo "pyenv-binary: need ${tool} to relocate the binary" >&2 + exit 1 + fi + done + ;; +* ) + if ! command -v patchelf >/dev/null 2>&1; then + echo "pyenv-binary: need patchelf to relocate the binary" >&2 + exit 1 + fi + ;; +esac build_package_relocate() { - pyenv binary relocate "$PREFIX_PATH" + if [ "$os" = "Darwin" ]; then + pyenv binary relocate "$PREFIX_PATH" "$BUILD_PREFIX" + else + pyenv binary relocate "$PREFIX_PATH" + fi } install_package "Python-${VERSION}-binary" "${ARCHIVE_URL}#${SHA256}" copy relocate diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package index 4c6592bca5..f86666e26d 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -75,15 +75,6 @@ latest ) ;; esac -os="$(uname -s)" - -# `generate-installer' refuses a macOS archive, so the last step here cannot -# succeed on one. Give up before compiling rather than after it. -if [ "$os" = "Darwin" ]; then - echo "pyenv-binary: macOS archives are not supported yet" >&2 - exit 1 -fi - # `pyenv install' puts a `:' build under versions/. pyenv-install ${verbose:+--verbose} "$spec" pyenv-binary-save "$entry" "$PWD" --name "$entry" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-relocate b/plugins/pyenv-binary/libexec/pyenv-binary-relocate index 6b9778930c..d73f682dbf 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-relocate +++ b/plugins/pyenv-binary/libexec/pyenv-binary-relocate @@ -1,12 +1,13 @@ #!/usr/bin/env bash # -# Summary: Rewrite an unpacked Python's rpaths so it runs from its prefix +# Summary: Rewrite an unpacked Python's library paths so it runs from its prefix # -# Usage: pyenv binary relocate +# Usage: pyenv binary relocate [] # -# Rewrites the rpaths of a Python tree that was unpacked into so the -# interpreter and its extension modules load the bundled libraries from their -# new location rather than the path it was built at. Requires patchelf. +# Rewrites the library paths of a Python tree that was unpacked into +# so the interpreter and its extension modules load the bundled libraries from +# their new location rather than the path it was built at. Requires patchelf on +# Linux and FreeBSD, or otool and install_name_tool on macOS. # # The definition that `pyenv binary generate-installer' produces calls this # after `install_package ... copy' has laid the tree down. @@ -24,6 +25,84 @@ if [ -z "$prefix" ]; then exit 1 fi +if [ "$(uname -s)" = "Darwin" ]; then + build_prefix="${2%/}" + if [ -z "$build_prefix" ]; then + echo "pyenv-binary: need the original build prefix to relocate a macOS binary" >&2 + exit 1 + fi + for tool in otool install_name_tool; do + if ! command -v "$tool" >/dev/null 2>&1; then + echo "pyenv-binary: need ${tool} to relocate the binary" >&2 + exit 1 + fi + done + + relocate_macho() { + local file="$1" new_rpath="$2" + local load_commands install_ids rpaths dependency install_id rpath replacement + + load_commands="$(otool -L "$file")" + install_ids="$(otool -D "$file" 2>/dev/null || true)" + rpaths="$(otool -l "$file")" + install_id="$(printf '%s\n' "$install_ids" | sed -n '2s/^[[:space:]]*//p')" + + while IFS= read -r dependency; do + case "$dependency" in + "$build_prefix"/lib/* ) + if [ "$dependency" != "$install_id" ]; then + replacement="@rpath/${dependency#"$build_prefix"/lib/}" + install_name_tool -change "$dependency" "$replacement" "$file" + fi + ;; + esac + done < <(printf '%s\n' "$load_commands" | tail -n +2 | sed -E \ + 's/^[[:space:]]*//; s/[[:space:]]+\(compatibility version.*$//') + + case "$install_id" in + "$build_prefix"/lib/* ) + replacement="@rpath/${install_id#"$build_prefix"/lib/}" + install_name_tool -id "$replacement" "$file" + ;; + esac + + while IFS= read -r rpath; do + if [ "$rpath" = "$build_prefix/lib" ]; then + install_name_tool -rpath "$rpath" "$new_rpath" "$file" + fi + done < <(printf '%s\n' "$rpaths" | awk ' + /cmd LC_RPATH/ { found = 1; next } + found && /^[[:space:]]*path / { + sub(/^[[:space:]]*path /, "") + sub(/ \(offset [0-9]+\)$/, "") + print + found = 0 + } + ') + } + + found=0 + for file in "$prefix"/bin/*; do + [[ -f $file && -x $file && ! -L $file ]] || continue + otool -L "$file" >/dev/null 2>&1 || continue + relocate_macho "$file" '@executable_path/../lib' + found=1 + done + if [ "$found" -eq 0 ]; then + echo "pyenv-binary: found no interpreter to relocate under \`${prefix}/bin'" >&2 + exit 1 + fi + + for file in "$prefix"/lib/*.dylib; do + [[ -f $file && ! -L $file ]] || continue + relocate_macho "$file" '@loader_path' + done + while IFS= read -r so; do + relocate_macho "$so" '@loader_path/../..' + done < <(find "$prefix" -type f -path '*/lib/python*/lib-dynload/*.so') + exit +fi + # patchelf can add an rpath and write one of any length; chrpath can only shorten # an existing one, which is not enough to relocate every build, so require it. if ! command -v patchelf >/dev/null 2>&1; then diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index 8e2405b267..b940123a62 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -147,6 +147,7 @@ tar -C "$(dirname "$prefix")" -czf "${output_dir}/${archive}" "$(basename "$pref echo "platform=${platform}" [ -n "$distro" ] && echo "distro=${distro}" [ -n "$libc" ] && echo "libc=${libc}" + echo "build_prefix=${prefix}" echo "archive=${archive}" system_deps | while IFS= read -r dep; do [ -n "$dep" ] && echo "dep=${dep}" diff --git a/plugins/pyenv-binary/test/generate-installer.bats b/plugins/pyenv-binary/test/generate-installer.bats index 02f63faca7..8c61edb3fc 100644 --- a/plugins/pyenv-binary/test/generate-installer.bats +++ b/plugins/pyenv-binary/test/generate-installer.bats @@ -6,6 +6,7 @@ create_meta() { local os="${1-Linux}" local arch="${2-x86_64}" local libc="${3-glibc 2.17}" + local build_prefix="${4-}" local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz" local meta="${BATS_TEST_TMPDIR}/sample.meta" @@ -20,6 +21,7 @@ create_meta() { echo "os=${os}" echo "arch=${arch}" [ -z "$libc" ] || echo "libc=${libc}" + [ -z "$build_prefix" ] || echo "build_prefix=${build_prefix}" echo "archive=${archive##*/}" } > "$meta" echo "$meta" @@ -58,10 +60,20 @@ create_meta() { assert_failure } -@test "refuses macOS metadata" { +@test "fails when macOS metadata is missing the build prefix" { run pyenv-binary-generate-installer "$(create_meta Darwin arm64 '')" \ --archive-url http://x/a.tar.gz - assert_failure "pyenv-binary: macOS archives are not supported yet" + assert_failure "pyenv-binary: metadata is missing \`build_prefix'" +} + +@test "quotes the macOS build prefix in the generated definition" { + local out="${BATS_TEST_TMPDIR}/definition" + pyenv-binary-generate-installer \ + "$(create_meta Darwin arm64 '' '/build prefix/$name')" \ + --archive-url http://example.com/a.tar.gz -o "$out" + + run grep '^BUILD_PREFIX=' "$out" + assert_success 'BUILD_PREFIX=/build\ prefix/\$name' } @test "fails when required metadata is missing" { @@ -117,6 +129,58 @@ create_meta() { assert_failure "pyenv-binary: need patchelf to relocate the binary" } +@test "checks for otool before installing a macOS archive" { + local out="${BATS_TEST_TMPDIR}/definition" + pyenv-binary-generate-installer \ + "$(create_meta Darwin arm64 '' /build/3.12.7)" \ + --archive-url http://example.com/a.tar.gz -o "$out" + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_path_executable install_name_tool true + + PATH="$(path_without otool)" run bash "$out" + assert_failure "pyenv-binary: need otool to relocate the binary" +} + +@test "checks for install_name_tool before installing a macOS archive" { + local out="${BATS_TEST_TMPDIR}/definition" + pyenv-binary-generate-installer \ + "$(create_meta Darwin arm64 '' /build/3.12.7)" \ + --archive-url http://example.com/a.tar.gz -o "$out" + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_path_executable otool true + + PATH="$(path_without install_name_tool)" run bash "$out" + assert_failure "pyenv-binary: need install_name_tool to relocate the binary" +} + +@test "the generated macOS definition preserves both relocation arguments" { + local archive="${BATS_TEST_TMPDIR}/3.12.7.tar.gz" + local cache="${BATS_TEST_TMPDIR}/cache" + local definition="${BATS_TEST_TMPDIR}/definition" + local prefix="${BATS_TEST_TMPDIR}/install" + pyenv-binary-generate-installer \ + "$(create_meta Darwin arm64 '' '/build prefix/$name')" \ + --archive-url http://example.com/3.12.7.tar.gz -o "$definition" + mkdir -p "$cache" + cp "$archive" "${cache}/Python-3.12.7-binary.tar.gz" + create_stub pyenv 'printf "argc=%s\narg1=%s\narg2=%s\narg3=%s\narg4=%s\n" "$#" "$1" "$2" "$3" "$4"' + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_stub sw_vers 'echo 15.5' + create_stub ldconfig true + create_path_executable otool true + create_path_executable install_name_tool true + + PYTHON_BUILD_CACHE_PATH="$cache" run \ + "${BATS_TEST_DIRNAME}/../../python-build/bin/python-build" "$definition" "$prefix" + assert_success + assert_line "argc=4" + assert_line "arg1=binary" + assert_line "arg2=relocate" + assert_line "arg3=${prefix}" + assert_line 'arg4=/build prefix/$name' + assert_line "Installed Python-3.12.7-binary to ${prefix}" +} + @test "fails when the archive is not beside the metadata" { local meta="$(create_meta)" rm "${BATS_TEST_TMPDIR}/3.12.7.tar.gz" diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index 51da03a230..4186a1c86d 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -82,10 +82,16 @@ pyenv-install --list --bare assert_failure "pyenv-binary: \`latest' cannot be used as an entry name" } -@test "refuses to package on macOS before compiling anything" { +@test "packages on macOS" { create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_stub pyenv-install 'echo install' + create_stub pyenv-binary-save 'echo save' + create_stub pyenv-binary-generate-installer 'echo generate-installer' + run pyenv-binary-package 3.12.7:3.12.7-test --archive-base-url http://x/b - assert_failure "pyenv-binary: macOS archives are not supported yet" + assert_success "install +save +generate-installer" } @test "writes the archive, metadata and definition under the entry name (integration)" { diff --git a/plugins/pyenv-binary/test/relocate.bats b/plugins/pyenv-binary/test/relocate.bats index 0051a42c76..e14700b745 100644 --- a/plugins/pyenv-binary/test/relocate.bats +++ b/plugins/pyenv-binary/test/relocate.bats @@ -4,6 +4,7 @@ load test_helper _setup() { create_stub pyenv-help "echo usage" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' } stub_patchelf() { @@ -21,6 +22,87 @@ create_interpreter() { chmod +x "${BATS_TEST_TMPDIR}/prefix/bin/python2.7" } +create_macos_tree() { + local prefix="${BATS_TEST_TMPDIR}/prefix" + local lib="${prefix}/lib/python3.12" + mkdir -p "${prefix}/bin" "${lib}/lib-dynload" "${lib}/site-packages/numpy" + printf '#!/bin/sh\n' > "${prefix}/bin/python3.12" + chmod +x "${prefix}/bin/python3.12" + touch "${prefix}/lib/libpython3.12.dylib" + touch "${lib}/lib-dynload/_ssl.cpython-312-darwin.so" + touch "${lib}/site-packages/numpy/_multiarray.so" +} + +stub_macos_tools() { + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_path_executable install_name_tool \ + 'echo "$*" >> "${BATS_TEST_TMPDIR}/install-name-tool.log"' + create_path_executable otool <<'STUB' +file="${!#}" +echo "$*" >> "${BATS_TEST_TMPDIR}/otool.log" +old="/build prefix/3.12.7" +case "$1" in +-L ) + echo "${file}:" + case "$file" in + */bin/python3.12 ) + if [ -n "$OTOOL_RELOCATED" ]; then + echo " @rpath/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)" + else + echo " ${old}/lib/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)" + fi + echo " ${old}-other/lib/libother.dylib (compatibility version 1.0.0, current version 1.0.0)" + echo " /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1.0.0)" + echo " /opt/homebrew/lib/libintl.8.dylib (compatibility version 1.0.0, current version 1.0.0)" + echo " @loader_path/liblocal.dylib (compatibility version 1.0.0, current version 1.0.0)" + ;; + */lib/libpython3.12.dylib ) + if [ -n "$OTOOL_RELOCATED" ]; then + echo " @rpath/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)" + else + echo " ${old}/lib/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)" + fi + ;; + esac + ;; +-D ) + case "$file" in + */lib/libpython3.12.dylib ) + echo "${file}:" + if [ -n "$OTOOL_RELOCATED" ]; then + echo '@rpath/libpython3.12.dylib' + else + echo "${old}/lib/libpython3.12.dylib" + fi + ;; + * ) + exit 1 + ;; + esac + ;; +-l ) + if [ -n "$OTOOL_RELOCATED" ]; then + case "$file" in + */bin/* ) rpath='@executable_path/../lib' ;; + */lib/*.dylib ) rpath='@loader_path' ;; + * ) rpath='@loader_path/../..' ;; + esac + else + rpath="${old}/lib" + fi + cat </dev/null + + run grep '^build_prefix=' "${out}/3.12.7-$(platform).meta" + assert_success "build_prefix=${PYENV_ROOT}/versions/3.12.7" +} + @test "fails when readelf is not available" { create_version "3.12.7" create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' From c293de3650a2d08ea36c5f6f0d55c5a3841b0c72 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 1 Sep 2026 18:05:40 +0300 Subject: [PATCH 1255/1324] 2.8.5 --- CHANGELOG.md | 9 +++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e813920aa..2e7b884865 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +## Release v2.8.5 +* pyenv-binary: record direct system dependencies in Linux/FreeBSD by @macayu17 in https://github.com/pyenv/pyenv/pull/3520 +* tests: Fix "cd: null directory" in OpenSUSE by @native-api in https://github.com/pyenv/pyenv/pull/3524 +* Test improvements by @native-api in https://github.com/pyenv/pyenv/pull/3525 +* CI: test on all runners when the build logic changes by @sujeito-operator in https://github.com/pyenv/pyenv/pull/3522 +* Add GraalPy 25.3.4.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3529 +* Add CPython 3.15.0rc2 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3530 +* pyenv-binary: support relocating macOS archives by @macayu17 in https://github.com/pyenv/pyenv/pull/3528 + ## Release v2.8.4 * CI: Add macos_26_intel by @native-api in https://github.com/pyenv/pyenv/pull/3514 * pyenv-binary: check FreeBSD system libraries by @macayu17 in https://github.com/pyenv/pyenv/pull/3511 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index e33dabae66..1798a05c28 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.4" +version="2.8.5" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b925139406..ed07ff4cb9 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.4" +PYTHON_BUILD_VERSION="2.8.5" OLDIFS="$IFS" From 2548d5370639f7be0c014919d0f561195822d44f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20=C5=A0im=C3=A1=C4=8Dek?= Date: Wed, 2 Sep 2026 13:47:33 +0200 Subject: [PATCH 1256/1324] Update graalpy URLs for 25.3.4.1 (#3533) --- plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 | 3 ++- .../share/python-build/graalpy3.13-community-25.3.4.1 | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 b/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 index 5311caae92..8bd20274ef 100644 --- a/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 +++ b/plugins/python-build/share/python-build/graalpy3.13-25.3.4.1 @@ -18,6 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. VERSION='25.3.4.1' +RELEASE_TAG='graal-25.3.4' colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo @@ -46,4 +47,4 @@ case "$graalpy_arch" in ;; esac -install_package "graalpy3.13-${VERSION}" "https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.13-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip +install_package "graalpy3.13-${VERSION}" "https://github.com/oracle/graalpython/releases/download/${RELEASE_TAG}/graalpy3.13-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 b/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 index f5c4bbbbca..a88daf371c 100644 --- a/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 +++ b/plugins/python-build/share/python-build/graalpy3.13-community-25.3.4.1 @@ -18,6 +18,7 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. VERSION='25.3.4.1' +RELEASE_TAG='graal-25.3.4' graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" @@ -41,4 +42,4 @@ case "$graalpy_arch" in ;; esac -install_package "graalpy3.13-community-${VERSION}" "https://github.com/oracle/graalpython/releases/download/graal-${VERSION}/graalpy3.13-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip +install_package "graalpy3.13-community-${VERSION}" "https://github.com/oracle/graalpython/releases/download/${RELEASE_TAG}/graalpy3.13-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip From 265b0dcefa0e71d7d89f1596309ecb677816750f Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Wed, 2 Sep 2026 20:26:35 +0530 Subject: [PATCH 1257/1324] python-build: add build prerequisite installer (#3532) --- .github/actions/build-python/action.yml | 16 ++-- .github/workflows/modified_scripts_build.yml | 10 +-- plugins/python-build/README.md | 8 +- .../bin/pyenv-install-prerequisites | 47 +++++++++++ .../test/install-prerequisites.bats | 83 +++++++++++++++++++ plugins/python-build/test/test_helper.bash | 3 +- 6 files changed, 146 insertions(+), 21 deletions(-) create mode 100755 plugins/python-build/bin/pyenv-install-prerequisites create mode 100644 plugins/python-build/test/install-prerequisites.bats diff --git a/.github/actions/build-python/action.yml b/.github/actions/build-python/action.yml index fa310e81ad..194c49941e 100644 --- a/.github/actions/build-python/action.yml +++ b/.github/actions/build-python/action.yml @@ -9,6 +9,12 @@ inputs: runs: using: composite steps: + - shell: bash + run: | + #envvars + export PYENV_ROOT="$GITHUB_WORKSPACE" + echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV + echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH # The two OSes differ only in this step. - if: runner.os == 'macOS' shell: bash @@ -19,15 +25,7 @@ runs: shell: bash run: | #prerequisites - sudo apt-get update -q; sudo apt install -yq make build-essential libssl-dev zlib1g-dev \ - libbz2-dev libreadline-dev libsqlite3-dev curl \ - libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev - - shell: bash - run: | - #envvars - export PYENV_ROOT="$GITHUB_WORKSPACE" - echo "PYENV_ROOT=$PYENV_ROOT" >> $GITHUB_ENV - echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH + pyenv install-prerequisites - shell: bash run: | #build diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index a35359305d..cae758a8a0 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -220,10 +220,7 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | #prerequisites - sudo apt-get update -q; sudo apt-get install -yq make build-essential \ - libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - curl llvm libncurses5-dev libncursesw5-dev \ - xz-utils tk-dev libffi-dev liblzma-dev + pyenv install-prerequisites if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV @@ -283,10 +280,7 @@ jobs: echo "_PYTHON_BUILD_FORCE_SKIP_XZ=1" >> $GITHUB_ENV - run: | #prerequisites - sudo apt-get update -q; sudo apt-get install -yq make build-essential \ - libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev \ - curl libncursesw5-dev \ - xz-utils tk-dev libffi-dev liblzma-dev + pyenv install-prerequisites - run: | #build pyenv --debug install ${{ matrix.python-version }} && rc=$? || rc=$? diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index 3c95d7939e..e0a333b35e 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -54,8 +54,11 @@ Or, if you would like to install the latest development release: ## Usage -Before you begin, you should ensure that your build environment has the proper -system dependencies for compiling the wanted Python Version (see our [recommendations](https://github.com/pyenv/pyenv/wiki#suggested-build-environment)). +On Ubuntu, Debian, and Mint, install the recommended build dependencies with: + + pyenv install-prerequisites + +For other environments, see our [build environment recommendations](https://github.com/pyenv/pyenv/wiki#suggested-build-environment). ### Using `pyenv install` with pyenv @@ -361,4 +364,3 @@ git diff --name-only master \ - Filter out any which don't live where python-build keeps its build scripts - Look only at the file name (i.e. the python version name) - Run a new docker container for each, building that version - diff --git a/plugins/python-build/bin/pyenv-install-prerequisites b/plugins/python-build/bin/pyenv-install-prerequisites new file mode 100755 index 0000000000..c56bbd98fa --- /dev/null +++ b/plugins/python-build/bin/pyenv-install-prerequisites @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +# +# Summary: Install Python build prerequisites on Debian-based systems +# +# Usage: pyenv install-prerequisites +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +# Provide pyenv completions +if [ "$1" = "--complete" ]; then + exit +fi + +usage() { + pyenv-help install-prerequisites 2>/dev/null + [ -z "$1" ] || exit "$1" +} + +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then + usage 0 +fi + +[ "$#" -eq 0 ] || usage 1 >&2 + +if ! command -v apt-get >/dev/null; then + echo "pyenv: installing build prerequisites is not supported on this system" >&2 + exit 1 +fi + +prerequisites=( + make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev + libsqlite3-dev curl git llvm libncurses5-dev libncursesw5-dev xz-utils + tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libzstd-dev +) + +if [ "$(id -u)" -eq 0 ]; then + apt_get=(apt-get) +elif command -v sudo >/dev/null; then + apt_get=(sudo apt-get) +else + echo "pyenv: sudo is required to install build prerequisites" >&2 + exit 1 +fi + +"${apt_get[@]}" update -q +"${apt_get[@]}" install -yq "${prerequisites[@]}" diff --git a/plugins/python-build/test/install-prerequisites.bats b/plugins/python-build/test/install-prerequisites.bats new file mode 100644 index 0000000000..2630c238e8 --- /dev/null +++ b/plugins/python-build/test/install-prerequisites.bats @@ -0,0 +1,83 @@ +#!/usr/bin/env bats + +load test_helper + +_setup() { + prerequisites="make build-essential libssl-dev zlib1g-dev libbz2-dev \ +libreadline-dev libsqlite3-dev curl git llvm libncurses5-dev \ +libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev \ +liblzma-dev libzstd-dev" +} + +@test "completion does not install packages" { + stub apt-get + + PATH="${BATS_TEST_DIRNAME}/../../../libexec:$PATH" \ + run pyenv completions install-prerequisites + + assert_success "--help" + unstub apt-get +} + +@test "supports help" { + stub pyenv-help 'install-prerequisites : echo "Usage: pyenv install-prerequisites"' + + run pyenv-install-prerequisites --help + + assert_success "Usage: pyenv install-prerequisites" + unstub pyenv-help +} + +@test "rejects arguments" { + stub pyenv-help 'install-prerequisites : echo "Usage: pyenv install-prerequisites"' + + run pyenv-install-prerequisites unexpected + + assert_failure "Usage: pyenv install-prerequisites" + unstub pyenv-help +} + +@test "installs build prerequisites with apt-get as root" { + stub id '-u : echo 0' + stub apt-get \ + 'update -q : true' \ + "install -yq ${prerequisites} : true" + + run pyenv-install-prerequisites + + assert_success + unstub apt-get + unstub id +} + +@test "uses sudo when not running as root" { + stub id '-u : echo 1000' + stub apt-get + stub sudo \ + 'apt-get update -q : true' \ + "apt-get install -yq ${prerequisites} : true" + + run pyenv-install-prerequisites + + assert_success + unstub sudo + unstub apt-get + unstub id +} + +@test "fails when apt-get is unavailable" { + PATH="$(path_without apt-get)" run pyenv-install-prerequisites + + assert_failure "pyenv: installing build prerequisites is not supported on this system" +} + +@test "fails when sudo is unavailable for an unprivileged user" { + stub id '-u : echo 1000' + stub apt-get + + PATH="$(path_without sudo)" run pyenv-install-prerequisites + + assert_failure "pyenv: sudo is required to install build prerequisites" + unstub apt-get + unstub id +} diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index a72806abc3..5b36e7e92b 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -2,6 +2,7 @@ setup() { export PYTHON_BUILD_CURL_OPTS= export PYTHON_BUILD_HTTP_CLIENT="curl" + export PYENV_TEST_DIR="${BATS_TEST_TMPDIR}/pyenv" export FIXTURE_ROOT="${BATS_TEST_DIRNAME}/fixtures" export INSTALL_ROOT="${BATS_TEST_TMPDIR}/install" PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" @@ -148,7 +149,7 @@ path_without() { if [ "$found" != "${PYENV_ROOT}/shims" ]; then alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" mkdir -p "$alt" - for util in bash head cut readlink greadlink; do + for util in bash head cut readlink greadlink tr; do if [ -x "${found}/$util" ]; then ln -s "${found}/$util" "${alt}/$util" fi From ef7a9f5d1417c4ef09d206298f8ec7a284994072 Mon Sep 17 00:00:00 2001 From: Michael Newman Date: Sun, 6 Sep 2026 15:14:47 -0400 Subject: [PATCH 1258/1324] docs: Add link to list of available Python distributions (#3535) Add a link to the python-build share directory in the intro section so users can see which Python distributions are supported before installing pyenv. --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 03dfbbd36e..df75c01a1a 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ This project was forked from [rbenv](https://github.com/rbenv/rbenv) and * Lets you **change the global Python version** on a per-user basis. * Provides support for **per-project Python versions**. +* Supports **multiple Python distributions**: CPython, PyPy, Stackless Python, Jython, and more. + See the [full list of available versions](https://github.com/pyenv/pyenv/tree/master/plugins/python-build/share/python-build). * Allows you to **override the Python version** with an environment variable. * Searches for commands from **multiple versions of Python at a time**. From 798a1ad60398a38c28afc94bab7ab55982bdbf69 Mon Sep 17 00:00:00 2001 From: macayu17 Date: Tue, 8 Sep 2026 09:42:50 +0300 Subject: [PATCH 1259/1324] Incorporate the `pyenv-link` plugin * Adapt test_helper for use in plugins * Add pyenv-link tests * Add pyenv-link tests to CI --- Makefile | 36 +++++++++++- plugins/.gitignore | 1 + plugins/pyenv-link/README.md | 47 +++------------ plugins/pyenv-link/bin/pyenv-link | 6 +- plugins/pyenv-link/bin/pyenv-link-version | 71 ++++++++++++----------- plugins/pyenv-link/test/link.bats | 61 +++++++++++++++++++ plugins/pyenv-link/test/test_helper.bash | 1 + test/test_helper.bash | 12 +++- 8 files changed, 157 insertions(+), 78 deletions(-) create mode 100644 plugins/pyenv-link/test/link.bats create mode 120000 plugins/pyenv-link/test/test_helper.bash diff --git a/Makefile b/Makefile index 6a8ae7e900..cfbc0ec78d 100644 --- a/Makefile +++ b/Makefile @@ -10,11 +10,14 @@ TEST_PYTHON_BUILD_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuf TEST_BINARY_DOCKER_PREFIX = test-binary-docker TEST_BINARY_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_BINARY_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_BINARY_DOCKER_PREFIX))) +TEST_LINK_DOCKER_PREFIX = test-link-docker +TEST_LINK_DOCKER_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_LINK_DOCKER_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_LINK_DOCKER_PREFIX))) + TEST_BATS_IMAGE_PREFIX = test-pyenv-docker-image TEST_BATS_IMAGE_TARGETS = $(foreach bash,$(TEST_BASH_VERSIONS),$(addsuffix -$(bash),$(TEST_BATS_IMAGE_PREFIX)) $(addsuffix -gnu-$(bash),$(TEST_BATS_IMAGE_PREFIX))) .PHONY: test-docker -test-docker: $(TEST_UNIT_DOCKER_PREFIX) $(TEST_PYTHON_BUILD_DOCKER_PREFIX) $(TEST_BINARY_DOCKER_PREFIX) +test-docker: $(TEST_UNIT_DOCKER_PREFIX) $(TEST_PYTHON_BUILD_DOCKER_PREFIX) $(TEST_BINARY_DOCKER_PREFIX) $(TEST_LINK_DOCKER_PREFIX) .PHONY: $(TEST_UNIT_DOCKER_PREFIX) $(TEST_UNIT_DOCKER_PREFIX): $(TEST_UNIT_DOCKER_TARGETS) @@ -88,6 +91,29 @@ $(TEST_BINARY_DOCKER_TARGETS): $(TEST_BINARY_DOCKER_PREFIX)-% : $(TEST_BATS_IMAG bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \ $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/pyenv-binary/test/$${BATS_FILE_FILTER} +.PHONY: $(TEST_LINK_DOCKER_PREFIX) +$(TEST_LINK_DOCKER_PREFIX): $(TEST_LINK_DOCKER_TARGETS) + +.PHONY: $(TEST_LINK_DOCKER_TARGETS) +$(TEST_LINK_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) +$(TEST_LINK_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) +$(TEST_LINK_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) +$(TEST_LINK_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) +$(TEST_LINK_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_LINK_DOCKER_TARGETS): $(TEST_LINK_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% + $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') + docker run \ + --init \ + -v $(PWD):/code:ro \ + -v /etc/passwd:/etc/passwd:ro \ + -v /etc/group:/etc/group:ro \ + -u "$$(id -u $$(whoami)):$$(id -g $$(whoami))" \ + $${CI+-e CI="$${CI}"} \ + $(INTERACTIVE) \ + $(DOCKER_IMAGE):$(DOCKER_TAG) \ + bats $${CI:+-F "/code/test/libexec/bats-format-tap-suite"} \ + $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} plugins/pyenv-link/test/$${BATS_FILE_FILTER} + # Build all images needed for bats under docker .PHONY: $(TEST_BATS_IMAGE_PREFIX) $(TEST_BATS_IMAGE_PREFIX): $(TEST_BATS_IMAGE_TARGETS) @@ -110,13 +136,13 @@ $(TEST_BATS_IMAGE_TARGETS): ./ ; \ fi -.PHONY: test test-unit test-python-build test-binary +.PHONY: test test-unit test-python-build test-binary test-link # Do not pass in user flags to build tests. unexport PYTHON_CFLAGS unexport PYTHON_CONFIGURE_OPTS -test: test-unit test-python-build test-binary +test: test-unit test-python-build test-binary test-link test-unit: bats PATH="./bats/bin:$$PATH" test/run @@ -129,6 +155,10 @@ test-binary: bats cd plugins/pyenv-binary && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \ $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} +test-link: bats + cd plugins/pyenv-link && $(PWD)/bats/bin/bats $${CI:+-F "$(PWD)/test/libexec/bats-format-tap-suite"} \ + $${BATS_TEST_FILTER:+--filter "$${BATS_TEST_FILTER}"} test/$${BATS_FILE_FILTER} + .SECONDARY: bats-$(TEST_BATS_VERSION) bats-$(TEST_BATS_VERSION): git clone --depth 1 --branch $(TEST_BATS_VERSION) https://github.com/bats-core/bats-core.git bats-$(TEST_BATS_VERSION) diff --git a/plugins/.gitignore b/plugins/.gitignore index 2a5caf55db..40bac1a756 100644 --- a/plugins/.gitignore +++ b/plugins/.gitignore @@ -3,4 +3,5 @@ !/version-ext-compat !/python-build !/pyenv-binary +!/pyenv-link /python-build/test/build diff --git a/plugins/pyenv-link/README.md b/plugins/pyenv-link/README.md index 67fa6379dd..9e4cd2944f 100644 --- a/plugins/pyenv-link/README.md +++ b/plugins/pyenv-link/README.md @@ -1,40 +1,15 @@ # pyenv-link -A [pyenv](https://github.com/pyenv/pyenv) plugin for linking python versions and virtual envs into your pyenv root. +A [pyenv](https://github.com/pyenv/pyenv) plugin for linking Python installations and virtual environments into your pyenv root. This plugin recommends the [pyenv-virtualenv](https://github.com/pyenv/pyenv-virtualenv/) plugin. -## Installation - -This will install the latest development version of *pyenv-link* into -the `$(pyenv root)/plugins/pyenv-link` directory. - -**Important note:** If you installed pyenv into a non-standard directory, make -sure that you clone this repo into the 'plugins' directory of wherever you -installed into. - -From inside that directory you can: - - Check out a specific release tag. - - Get the latest development release by running `git pull` to download the - latest changes. - - -```bash -git clone https://github.com/real-yfprojects/pyenv-link.git $(pyenv root)/plugins/pyenv-link -``` - -For the Fish shell: - -```fish -git clone https://github.com/real-yfprojects/pyenv-link.git (pyenv root)/plugins/pyenv-link -``` - ## Usage Make an arbitrary virtualenv available through pyenv. This automatically guesses a fitting name from the prompt, the directory name or the location of the venv. ```console $ pyenv link version .venv -Linked new version named myproject-py3.10 +Linked new version named myproject ``` You can also specify a name to use for the venv. @@ -44,19 +19,15 @@ $ pyenv link version .venv myname Linked new version named myname ``` -Now you can make pyenv activate/use the venv automatically: +The same command can give a platform-specific binary installation a shorter name: ```console -$ pyenv local myproject-py3.10 +$ pyenv link version "$(pyenv root)/versions/3.13.14-linux-x86_64" 3.13.14 +Linked new version named 3.13.14 ``` -## Contributing -This project is developed in an open-source, community-driven way, as a voluntary effort in the authors’ free time. - -All kinds of contributions are greatly appreciated. This not only includes implementing new features but also refactoring work or improvements to the documentation. -Bug reports, feature requests and other suggestions are welcome too. - -### TODO +Now you can make pyenv activate/use the venv automatically: -- [ ] Tests -- [ ] CI \ No newline at end of file +```console +$ pyenv local myproject +``` diff --git a/plugins/pyenv-link/bin/pyenv-link b/plugins/pyenv-link/bin/pyenv-link index 1992e2298d..85b008e346 100755 --- a/plugins/pyenv-link/bin/pyenv-link +++ b/plugins/pyenv-link/bin/pyenv-link @@ -1,13 +1,13 @@ #!/usr/bin/env bash # -# Summary: Activate virtual environment +# Summary: Link a Python environment as a pyenv version # -# Usage: pyenv link version +# Usage: pyenv link version [--dry] [--quiet] [] # # Link a virtual python environment to pyenvs version directory # so that the venv can be used like one created with *pyenv-virtualenv*. # -# should be a path to a virtual python environments location. +# should be a path to a Python installation or virtual environment. set -e [ -n "$PYENV_DEBUG" ] && set -x diff --git a/plugins/pyenv-link/bin/pyenv-link-version b/plugins/pyenv-link/bin/pyenv-link-version index 45fd4f67c3..7df1d16eab 100755 --- a/plugins/pyenv-link/bin/pyenv-link-version +++ b/plugins/pyenv-link/bin/pyenv-link-version @@ -1,13 +1,13 @@ #!/usr/bin/env bash # -# Summary: Activate virtual environment +# Summary: Link a Python environment as a pyenv version # -# Usage: pyenv link-venv [--dry] [--quiet] [] +# Usage: pyenv link version [--dry] [--quiet] [] # # Link a virtual python environment to pyenvs version directory # so that the venv can be used like one created with *pyenv-virtualenv*. # -# should be a path to a virtual python environments location. +# should be a path to a Python installation or virtual environment. # should be string used as a version name it may not be present # in the pyenv version directory yet. # If not specified a matching name is guessed from pyvenv.cfg @@ -26,24 +26,10 @@ if ! { # work-around when realpath is unavailable realpath() { - echo "$(cd "$1" && pwd)" + (cd "$1" && pwd) } fi -array_doesnt_contain() { - local array="$1[@]" - local seeking=$2 - local in=0 - for element in "${!array}"; do - if [[ $element == "$seeking" ]]; then - in=1 - break - fi - done - return $in -} - -COMMON_VENV_NAMES=('venv' 'env' '.venv' '.env' 'ENV' 'VENV') guess_name() { local venv_dir=$1 local name @@ -53,12 +39,20 @@ guess_name() { if [ -f "$pyvenv_cfg_path" ]; then # if `prompt` key wasn't found the var remains empty name=$(cut -b 1-1024 "$pyvenv_cfg_path" | sed -n '/^ *prompt *= */s///p') + case "$name" in + \"*\" | \'*\') + name=${name:1:${#name}-2} + ;; + esac fi # guess venv name from name of venv directory local venv_dir_name=${venv_dir##*/} - if [ -z "$name" ] && array_doesnt_contain COMMON_VENV_NAMES "$venv_dir_name"; then - name=$venv_dir_name + if [ -z "$name" ]; then + case "$venv_dir_name" in + venv | env | .venv | .env | ENV | VENV) ;; + *) name=$venv_dir_name ;; + esac fi # guess venv name from name of the parent directory of the venv directory @@ -120,26 +114,37 @@ if [ -z "$venv_name" ]; then venv_name=$(guess_name "$venv_dir") fi -# check whether version exists already -if pyenv-prefix "$venv_name" >/dev/null 2>&1; then +case "$venv_name" in +"" | */* | . | .. | *:* | system | *[[:cntrl:]]* ) + echo "pyenv-link: invalid version name \`${venv_name}'" >&2 + exit 1 + ;; +esac + +versions_dir="$PYENV_ROOT/versions" +pyenv_prefix_path="$versions_dir/$venv_name" + +if [ -e "$pyenv_prefix_path" ] || [ -L "$pyenv_prefix_path" ]; then echo Version "$venv_name" already exists >&2 exit 3 fi -# construct location to link to -pyenv_prefix_path="$PYENV_ROOT/versions/$venv_name" +case "$venv_dir" in +"$versions_dir"/*) + link_target=${venv_dir#"$versions_dir"/} + ;; +*) + link_target=$venv_dir + ;; +esac # link to pyenv version directory if [ -z "$dry" ]; then - # Handle OS types - case "$(uname -s)" in - Darwin*) - # long form flags aren't supported - ln -s "$venv_dir" "$pyenv_prefix_path";; - *) - ln --symbolic "$venv_dir" "$pyenv_prefix_path";; - esac + mkdir -p "$versions_dir" + ln -s "$link_target" "$pyenv_prefix_path" fi # output -[ -z "$quiet" ] && echo Linked new version named "$venv_name" || true +if [ -z "$quiet" ]; then + echo "Linked new version named $venv_name" +fi diff --git a/plugins/pyenv-link/test/link.bats b/plugins/pyenv-link/test/link.bats new file mode 100644 index 0000000000..0612943d64 --- /dev/null +++ b/plugins/pyenv-link/test/link.bats @@ -0,0 +1,61 @@ +#!/usr/bin/env bats + +load test_helper + +@test "link completions use the dispatcher" { + run pyenv completions link + assert_success + assert_output < []" +} + +@test "links an installed binary under its plain version name" { + create_alt_executable_in_version "3.13.14-linux-x86_64" python 'echo linked-python' + run pyenv-link version "$PYENV_ROOT/versions/3.13.14-linux-x86_64" 3.13.14 + assert_success "Linked new version named 3.13.14" + assert_equal "3.13.14-linux-x86_64" "$(readlink "$PYENV_ROOT/versions/3.13.14")" + PYENV_VERSION=3.13.14 run pyenv exec python + assert_success "linked-python" +} + +@test "links external paths containing spaces into a fresh root" { + mkdir -p "$PYENV_TEST_DIR/external env/bin" + run pyenv-link version "$PYENV_TEST_DIR/external env" custom + assert_success "Linked new version named custom" + assert_equal "$PYENV_TEST_DIR/external env" "$(readlink "$PYENV_ROOT/versions/custom")" +} + +@test "refuses a dangling destination link" { + mkdir -p "$PYENV_ROOT/versions" "$PYENV_TEST_DIR/source" + ln -s missing "$PYENV_ROOT/versions/dangling" + run pyenv-link version "$PYENV_TEST_DIR/source" dangling + assert_failure "Version dangling already exists" + assert_equal missing "$(readlink "$PYENV_ROOT/versions/dangling")" +} + +@test "rejects invalid version names" { + mkdir -p "$PYENV_TEST_DIR/source" + for name in ../outside . .. 'foo/bar' 'foo:bar' system; do + run pyenv-link version "$PYENV_TEST_DIR/source" "$name" + assert_failure "pyenv-link: invalid version name \`$name'" + assert [ ! -e "$PYENV_ROOT/outside" ] + done + echo "prompt = '../outside'" > "$PYENV_TEST_DIR/source/pyvenv.cfg" + run pyenv-link version "$PYENV_TEST_DIR/source" + assert_failure "pyenv-link: invalid version name \`../outside'" + assert [ ! -e "$PYENV_ROOT/outside" ] +} diff --git a/plugins/pyenv-link/test/test_helper.bash b/plugins/pyenv-link/test/test_helper.bash new file mode 120000 index 0000000000..f6bb7c4664 --- /dev/null +++ b/plugins/pyenv-link/test/test_helper.bash @@ -0,0 +1 @@ +../../../test/test_helper.bash \ No newline at end of file diff --git a/test/test_helper.bash b/test/test_helper.bash index ee0a698eed..2015907f9b 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -2,8 +2,14 @@ unset PYENV_VERSION unset PYENV_DIR setup() { - export _PYENV_INSTALL_PREFIX="${BATS_TEST_DIRNAME%/*}" export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' + + export _PYENV_INSTALL_PREFIX="${BATS_TEST_DIRNAME%/*}" + local PLUGIN_PREFIX + if [[ $_PYENV_INSTALL_PREFIX =~ /plugins/[^/]+$ ]]; then + PLUGIN_PREFIX="$_PYENV_INSTALL_PREFIX" + _PYENV_INSTALL_PREFIX="${_PYENV_INSTALL_PREFIX::${#_PYENV_INSTALL_PREFIX}-${#BASH_REMATCH[0]}}" + fi if ! enable -f "${_PYENV_INSTALL_PREFIX}"/libexec/pyenv-realpath.dylib realpath 2>/dev/null; then if [ -n "$PYENV_NATIVE_EXT" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 @@ -27,6 +33,9 @@ setup() { PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin PATH="${PYENV_TEST_DIR}/bin:$PATH" PATH="${_PYENV_INSTALL_PREFIX}/libexec:$PATH" + if [[ -n $PLUGIN_PREFIX ]]; then + PATH="${PLUGIN_PREFIX}/libexec:${PLUGIN_PREFIX}/bin:$PATH" + fi PATH="${BATS_TEST_DIRNAME}/libexec:$PATH" PATH="${PYENV_ROOT}/shims:$PATH" PATH="${BATS_TEST_TMPDIR}/stubs:$PATH" @@ -40,6 +49,7 @@ setup() { # even if its output is redirected, breaking the comparison logic export NO_COLOR=1 + # If test specific setup exist, run it if [[ $(type -t _setup) == function ]];then _setup From 88e9ab13e8fd603c732a4f43f1ff3d1c2d264b6a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 9 Sep 2026 02:17:04 +0300 Subject: [PATCH 1260/1324] pwsh: Fix error in shell integration if pyenv is on PATH multiple times Fixes "The term 'pyenv pyenv' is not recognized..." --- libexec/pyenv-init | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index b45181fab8..34f1173e95 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -473,12 +473,12 @@ function pyenv { } if ( ("${commands[*]}" -split ' ') -contains \$command ) { - \$shell_cmds = (& (get-command -commandtype application pyenv) sh-\$command \$args) + \$shell_cmds = (& (get-command -commandtype application pyenv -totalcount 1) sh-\$command \$args) if ( \$shell_cmds.Count -gt 0 ) { iex (\$shell_cmds -join "\`n") } } else { - & (get-command -commandtype application pyenv) \$command \$args + & (get-command -commandtype application pyenv -totalcount 1) \$command \$args } } EOS From eb36c1b1e8509861ca4689865d65cc2740404525 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Fri, 11 Sep 2026 17:51:26 +0530 Subject: [PATCH 1261/1324] CI: publish Ubuntu binary packages (#3539) * CI: Add Ubuntu binary publishing workflow --- .github/workflows/publish_binary.yml | 70 ++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 .github/workflows/publish_binary.yml diff --git a/.github/workflows/publish_binary.yml b/.github/workflows/publish_binary.yml new file mode 100644 index 0000000000..30f801cee1 --- /dev/null +++ b/.github/workflows/publish_binary.yml @@ -0,0 +1,70 @@ +name: Publish a binary package + +on: + workflow_dispatch: + inputs: + version: + description: A CPython version accepted by `pyenv install` + required: true + type: string + +permissions: + contents: read + +jobs: + publish_ubuntu: + runs-on: ubuntu-24.04 + env: + PYENV_ROOT: ${{ github.workspace }} + VERSION: ${{ inputs.version }} + steps: + - uses: actions/checkout@v7 + - name: Install build prerequisites + run: ./bin/pyenv install-prerequisites + - name: Build package + env: + PYTHON_CONFIGURE_OPTS: --enable-optimizations + run: | + VERSION="${VERSION%%:*}" + entry="$(./bin/pyenv binary package-name "$VERSION")" + echo "entry=$entry" >> "$GITHUB_ENV" + mkdir dist + cd dist + "$GITHUB_WORKSPACE/bin/pyenv" binary package --verbose \ + "$VERSION:$entry" \ + --archive-base-url https://pyenv.github.io/pythons/binaries + + - name: Generate GitHub token + uses: actions/create-github-app-token@v3 + id: generate-token + with: + app-id: ${{ vars.PYENV_BOT_APP_ID }} + private-key: ${{ secrets.PYENV_BOT_PRIVATE_KEY }} + owner: ${{ github.repository_owner }} + repositories: pyenv.github.io + permission-contents: write + permission-pull-requests: write + - uses: actions/checkout@v7 + with: + repository: pyenv/pyenv.github.io + token: ${{ steps.generate-token.outputs.token }} + path: site + - name: Update downloads + run: | + mkdir -p site/pythons/binaries + cp "dist/$entry.tar.gz" "dist/$entry.meta" "dist/$entry" \ + site/pythons/binaries/ + cd site/pythons + ./update.sh + - name: Create Pull Request + uses: peter-evans/create-pull-request@v8 + with: + path: site + branch: auto_add_binary/${{ env.entry }} + title: Add CPython ${{ env.entry }} + commit-message: Add CPython ${{ env.entry }} + body: | + Built from pyenv/pyenv@${{ github.sha }} with profile-guided optimization enabled. + + Part of pyenv/pyenv#2334. + token: ${{ steps.generate-token.outputs.token }} From 5d43b9a39df408d51a929c3694fb4fa12aab56a9 Mon Sep 17 00:00:00 2001 From: Mingyang Wu Date: Tue, 15 Sep 2026 07:20:52 +0800 Subject: [PATCH 1262/1324] python-build: honor explicitly configured OpenSSL on macOS (#3541) * python-build: probe OpenSSL from standard dependency discovery Assisted-by: OpenAI Codex Signed-off-by: Mingyang Wu <129849514+aprylewu@users.noreply.github.com> --- plugins/python-build/bin/python-build | 11 ++ plugins/python-build/test/build.bats | 236 ++++++++++++++++++++++++++ 2 files changed, 247 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index ed07ff4cb9..0a802722b2 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -873,6 +873,7 @@ build_package_standard_build() { if [ "$package_var_name" = "PYTHON" ]; then if can_use_homebrew; then + configured_with_openssl || use_homebrew_openssl || true use_custom_tcltk || use_homebrew_tcltk || true use_homebrew_readline || true use_homebrew_ncurses || true @@ -885,6 +886,7 @@ build_package_standard_build() { fi fi if can_use_macports; then + configured_with_openssl || use_macports_openssl || true use_custom_tcltk || true use_macports_readline || true use_macports_ncurses || true @@ -1705,8 +1707,17 @@ build_package_mac_readline() { build_package_standard "$@" } +configured_with_openssl() { + local arg + for arg in ${CONFIGURE_OPTS} ${PYTHON_CONFIGURE_OPTS} "${PYTHON_CONFIGURE_OPTS_ARRAY[@]}"; do + [[ "$arg" =~ ^--with-openssl(=|$) ]] && return 0 + done + return 1 +} + has_broken_mac_openssl() { is_mac || return 1 + configured_with_openssl && return 1 local openssl_version="$(/usr/bin/openssl version 2>/dev/null || true)" if [[ $openssl_version = "OpenSSL 0.9.8"?* || $openssl_version = "LibreSSL"* ]]; then if can_use_homebrew; then diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index fe6e1abbed..9003f78ff1 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -219,8 +219,10 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub brew '--prefix openssl : false' for i in {1..5}; do stub brew false; done stub brew "--prefix : echo '$BREW_PREFIX'" + stub port '-q installed openssl3 : false' '-q installed openssl : false' for i in {1..3}; do stub port false; done stub_make_install @@ -253,6 +255,7 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub brew '--prefix openssl : false' for i in {1..5}; do stub brew false; done stub brew "--prefix : echo '$BREW_PREFIX'" stub_make_install @@ -282,6 +285,7 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub port '-q installed openssl3 : false' '-q installed openssl : false' for i in {1..3}; do stub port false; done stub_make_install export PYTHON_BUILD_SKIP_HOMEBREW=1 @@ -315,6 +319,7 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' stub brew "--prefix libyaml : echo '$brew_libdir'" + stub brew '--prefix openssl : false' for i in {1..6}; do stub brew false; done stub_make_install @@ -341,6 +346,7 @@ OUT mkdir -p "$readline_libdir" stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub brew '--prefix openssl : false' for i in {1..2}; do stub brew false; done stub brew "--prefix readline : echo '$readline_libdir'" for i in {1..3}; do stub brew false; done @@ -371,6 +377,7 @@ OUT mkdir -p "$ncurses_libdir" stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub brew '--prefix openssl : false' for i in {1..3}; do stub brew false; done stub brew "--prefix ncurses : echo '$ncurses_libdir'" for i in {1..2}; do stub brew false; done @@ -400,6 +407,7 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' stub port "-q installed libyaml : echo ' libyaml @0.2.5_0 (active)'" + stub port '-q installed openssl3 : false' '-q installed openssl : false' for i in {1..3}; do stub port false; done stub_make_install export PYTHON_BUILD_SKIP_HOMEBREW=1 @@ -427,6 +435,7 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub port '-q installed openssl3 : false' '-q installed openssl : false' stub port "-q installed readline : echo ' readline @8.2.013_0 (active)'" for i in {1..2}; do stub port false; done stub_make_install @@ -457,6 +466,7 @@ OUT stub uname '-s : echo Darwin' stub sw_vers '-productVersion : echo 1010' + stub port '-q installed openssl3 : false' '-q installed openssl : false' stub port false stub port "-q installed ncurses : echo '$ncurses_libdir'" stub port false @@ -634,6 +644,7 @@ OUT stub uname '-s : echo Linux' stub brew false + stub port '-q installed openssl3 : false' '-q installed openssl : false' for i in {1..3}; do stub port false; done PORT_PREFIX="$(which port)" PORT_PREFIX="${PORT_PREFIX%/bin/port}" @@ -664,6 +675,7 @@ OUT mkdir -p "$BREW_PREFIX" stub uname '-s : echo Linux' + stub brew '--prefix openssl : false' for i in {1..5}; do stub brew false; done stub brew "--prefix : echo '$BREW_PREFIX'" stub_make_install @@ -695,6 +707,7 @@ OUT stub uname '-s : echo Linux' stub brew "--prefix : echo '$BREW_PREFIX'" + stub brew '--prefix openssl : false' for i in {1..5}; do stub brew false; done stub brew "--prefix : echo '$BREW_PREFIX'" stub_make_install @@ -743,6 +756,218 @@ make install OUT } +assert_explicit_openssl() { + local configure_opts="$1" + local definition_opts="$2" + cached_tarball "Python-3.6.2" + + local openssl_libdir="$BATS_TEST_TMPDIR/homebrew-openssl" + mkdir -p "$openssl_libdir" + executable "$BATS_TEST_TMPDIR/bin/brew" <> '$BATS_TEST_TMPDIR/openssl-search' + echo '$openssl_libdir' +else + exit 1 +fi +OUT + executable "$BATS_TEST_TMPDIR/bin/port" <> '$BATS_TEST_TMPDIR/openssl-search' + echo 'openssl3 @3.0.0 (active)' +else + exit 1 +fi +OUT + if [ "$manager" = homebrew ]; then + export PYTHON_BUILD_USE_HOMEBREW=1 + export PYTHON_BUILD_SKIP_MACPORTS=1 + else + export PYTHON_BUILD_SKIP_HOMEBREW=1 + export PYTHON_BUILD_USE_MACPORTS=1 + fi + stub uname '-s : echo Darwin' + stub sw_vers '-productVersion : echo 1010' + stub_make_install + + run_inline_definition < Date: Tue, 15 Sep 2026 04:54:23 +0530 Subject: [PATCH 1263/1324] pyenv-binary: use xz compression for archives (#3543) --- .github/workflows/publish_binary.yml | 2 +- plugins/pyenv-binary/README.md | 9 ++++++--- .../pyenv-binary/libexec/pyenv-binary-package | 6 +++--- plugins/pyenv-binary/libexec/pyenv-binary-save | 6 +++--- plugins/pyenv-binary/test/package.bats | 10 +++++----- plugins/pyenv-binary/test/save.bats | 16 ++++++++-------- test/Dockerfile | 2 +- 7 files changed, 27 insertions(+), 24 deletions(-) diff --git a/.github/workflows/publish_binary.yml b/.github/workflows/publish_binary.yml index 30f801cee1..c3ce5fbbde 100644 --- a/.github/workflows/publish_binary.yml +++ b/.github/workflows/publish_binary.yml @@ -52,7 +52,7 @@ jobs: - name: Update downloads run: | mkdir -p site/pythons/binaries - cp "dist/$entry.tar.gz" "dist/$entry.meta" "dist/$entry" \ + cp "dist/$entry.tar.xz" "dist/$entry.meta" "dist/$entry" \ site/pythons/binaries/ cd site/pythons ./update.sh diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index 817e9a6f44..e88537f471 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -14,6 +14,9 @@ architecture and a compatible libc) and have the recorded system libraries. It is not portable across, say, glibc and musl, or to an older glibc; the platform and dependency metadata exist to catch that. +Installing a binary package requires `tar` with xz support (typically provided +by the `xz` package). + ## Commands ### `pyenv binary package [-v|--verbose] [:] --archive-base-url ` @@ -29,7 +32,7 @@ Pass `-v` to show build progress from `pyenv install`. ```sh pyenv binary package 3.12.7 \ --archive-base-url https://example.com/binaries -# On Debian 12 x86_64, writes 3.12.7-debian-12-x86_64.tar.gz, +# On Debian 12 x86_64, writes 3.12.7-debian-12-x86_64.tar.xz, # its .meta file and a `3.12.7-debian-12-x86_64' definition. pyenv binary package 3.12.7:company-python \ @@ -54,7 +57,7 @@ pyenv binary package-name 3.12.7 ### `pyenv binary save [] [--name ]` -Packs an installed version into `-.tar.gz` (relative paths) +Packs an installed version into `-.tar.xz` (relative paths) and writes `-.meta` describing the build platform (OS, arch, distro and libc version) and the system libraries the build links against. Use `--name` to set a different base name for both files. @@ -78,7 +81,7 @@ needs are present. ```sh pyenv binary generate-installer ./dist/3.12.7-linux-x86_64.meta \ - --archive-url https://example.com/3.12.7-linux-x86_64.tar.gz \ + --archive-url https://example.com/3.12.7-linux-x86_64.tar.xz \ -o "$(pyenv root)/plugins/python-build/share/python-build/3.12.7-linux-x86_64" pyenv install 3.12.7-linux-x86_64 diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package index f86666e26d..77479f2a38 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -7,7 +7,7 @@ # Installs from source under a separate entry name, saves it as a # binary package, then emits a python-build definition for that package. # The archive, metadata and definition are written to the current directory -# as .tar.gz, .meta and . +# as .tar.xz, .meta and . # # A version `pyenv install' knows how to build. # The optional name to build under and install the @@ -16,7 +16,7 @@ # -v,--verbose Show build progress from `pyenv install'. # --archive-base-url # Where the archive will be hosted; the definition -# downloads it from /.tar.gz. +# downloads it from /.tar.xz. # set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -80,4 +80,4 @@ pyenv-install ${verbose:+--verbose} "$spec" pyenv-binary-save "$entry" "$PWD" --name "$entry" pyenv-binary-generate-installer "${entry}.meta" \ - --archive-url "${archive_base_url%/}/${entry}.tar.gz" -o "$entry" + --archive-url "${archive_base_url%/}/${entry}.tar.xz" -o "$entry" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index b940123a62..444c02cc72 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -4,7 +4,7 @@ # # Usage: pyenv binary save [] [--name ] # -# Packs an installed version into a relocatable .tar.gz (relative paths) and +# Packs an installed version into a relocatable .tar.xz (relative paths) and # writes a metadata file listing the build platform and the system libraries # it links against, so an installer can check compatibility before unpacking. # @@ -134,10 +134,10 @@ system_deps() { mkdir -p "$output_dir" package_name="${package_name:-${version}-${platform}}" -archive="${package_name}.tar.gz" +archive="${package_name}.tar.xz" metadata="${package_name}.meta" -tar -C "$(dirname "$prefix")" -czf "${output_dir}/${archive}" "$(basename "$prefix")" +tar -C "$(dirname "$prefix")" -cJf "${output_dir}/${archive}" "$(basename "$prefix")" { echo "# pyenv-binary metadata" diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index 4186a1c86d..40e875a98e 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -66,10 +66,10 @@ pyenv-install --list --bare run pyenv-binary-package 3.12.7 --archive-base-url http://example.com/binaries assert_success assert [ -d "${PYENV_ROOT}/versions/3.12.7-debian-12-x86_64" ] - assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.tar.gz" ] + assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.tar.xz" ] assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.meta" ] run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64" - assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-debian-12-x86_64.tar.gz" + assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-debian-12-x86_64.tar.xz" } @test "rejects an entry name containing a slash" { @@ -102,10 +102,10 @@ generate-installer" --archive-base-url http://example.com/binaries assert_success assert [ -d "${PYENV_ROOT}/versions/3.12.7-test" ] - assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.tar.gz" ] + assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.tar.xz" ] assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-test.meta" ] run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-test" - assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-test.tar.gz" + assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-test.tar.xz" } @test "correctly joins archive base url with a trailing slash" { @@ -127,5 +127,5 @@ done run pyenv-binary-package 3.12.7:3.12.7-test \ --archive-base-url http://example.com/binaries/ assert_success - assert_line "pyenv-binary-generate-installer --archive-url http://example.com/binaries/3.12.7-test.tar.gz" + assert_line "pyenv-binary-generate-installer --archive-url http://example.com/binaries/3.12.7-test.tar.xz" } diff --git a/plugins/pyenv-binary/test/save.bats b/plugins/pyenv-binary/test/save.bats index 11afe55e38..62e0fe837a 100644 --- a/plugins/pyenv-binary/test/save.bats +++ b/plugins/pyenv-binary/test/save.bats @@ -33,13 +33,13 @@ platform() { @test "packages an installed version" { create_version "3.12.7" local out="${BATS_TEST_TMPDIR}/dist" - local archive="${out}/3.12.7-$(platform).tar.gz" + local archive="${out}/3.12.7-$(platform).tar.xz" run pyenv-binary-save "3.12.7" "$out" - assert_success "Saved 3.12.7-$(platform).tar.gz and 3.12.7-$(platform).meta to $out" + assert_success "Saved 3.12.7-$(platform).tar.xz and 3.12.7-$(platform).meta to $out" assert [ -f "$archive" ] assert [ -f "${out}/3.12.7-$(platform).meta" ] - run tar -tzf "$archive" + run tar -tJf "$archive" assert_success assert_line 0 "3.12.7/" } @@ -49,10 +49,10 @@ platform() { local out="${BATS_TEST_TMPDIR}/dist" run pyenv-binary-save "3.12.7" "$out" --name "custom" - assert_success "Saved custom.tar.gz and custom.meta to $out" - assert [ -f "${out}/custom.tar.gz" ] + assert_success "Saved custom.tar.xz and custom.meta to $out" + assert [ -f "${out}/custom.tar.xz" ] run grep '^archive=' "${out}/custom.meta" - assert_success "archive=custom.tar.gz" + assert_success "archive=custom.tar.xz" } @test "fails when --name has no value" { @@ -76,7 +76,7 @@ platform() { assert_success assert_line "version=3.12.7" assert_line "platform=$(platform)" - assert_line "archive=3.12.7-$(platform).tar.gz" + assert_line "archive=3.12.7-$(platform).tar.xz" } @test "records the original installation prefix" { @@ -94,7 +94,7 @@ platform() { PATH="$(path_without readelf)" run pyenv-binary-save "3.12.7" "${BATS_TEST_TMPDIR}/dist" assert_failure "pyenv-binary: need readelf to inspect shared libraries" - assert [ ! -e "${BATS_TEST_TMPDIR}/dist/3.12.7-$(platform).tar.gz" ] + assert [ ! -e "${BATS_TEST_TMPDIR}/dist/3.12.7-$(platform).tar.xz" ] } @test "records only direct libraries resolved outside the prefix" { diff --git a/test/Dockerfile b/test/Dockerfile index 58fd3f2163..732e643894 100644 --- a/test/Dockerfile +++ b/test/Dockerfile @@ -12,7 +12,7 @@ FROM bash:$BASH apk add sed coreutils findutils \ ;fi # Bats - RUN apk add --update parallel ncurses git binutils \ + RUN apk add --update parallel ncurses git binutils xz \ && mkdir -p ~/.parallel \ && touch ~/.parallel/will-cite COPY --from=bats /root/bats-core /root/bats-core From 8bd6b024447cf3f547b1894f369a83d357fc6aa3 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 16 Sep 2026 20:39:57 +0300 Subject: [PATCH 1264/1324] Backport XCode 27 support to 3.14 (#3545) * Upstream fix (3.14.7): https://github.com/python/cpython/commit/51f6e019416bb45664218dd03ae1a6bc931f2458 * Dependency patch (3.14.6): https://github.com/python/cpython/commit/e29411d405c2dec2cacc36bfbcc3bd7139eaa2f7 * Test on XCode 27 --- .github/workflows/modified_scripts_build.yml | 2 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 101 +++++++++++++++++ 14 files changed, 1339 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0003-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0004-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0002-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index cae758a8a0..29b30c944a 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -96,6 +96,7 @@ jobs: - macos-15-intel - macos-26 - macos-26-intel + - xcode-27 exclude: ${{fromJson(needs.discover_modified_scripts.outputs.versions_macos_build_exclude)}} runs-on: ${{ matrix.os }} steps: @@ -164,6 +165,7 @@ jobs: - macos-15-intel - macos-26 - macos-26-intel + - xcode-27 runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 diff --git a/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0003-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0003-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..2873fd3f54 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0003-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From bf2d8d5a2c8fd2e0c5b4368ea7180c57971bc156 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:16 +0800 +Subject: [PATCH] [3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150447) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index d31c24dffa2..29190f296af 100755 +--- a/configure ++++ b/configure +@@ -19250,12 +19250,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -19730,12 +19724,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -20381,7 +20369,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20392,6 +20386,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index af7a9623d7b..4c5bf12cc50 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5214,7 +5214,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dladdr dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dladdr dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5224,7 +5224,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv \ + pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0004-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0004-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..36edad491e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.0/Python-3.14.0/0004-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From b871bbe60698c7a6bb6409cf4c091088e119eeb3 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 29190f296af..2217e59d15f 100755 +--- a/configure ++++ b/configure +@@ -20369,13 +20369,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20386,12 +20380,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20400,6 +20388,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 4c5bf12cc50..4ad84af4d17 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..6d2fbfe6cb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From bc2b13dee7629b9c86dc53106311fe26de1a98a5 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:16 +0800 +Subject: [PATCH] [3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150447) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 46eb0665bf4..3f138a8ff11 100755 +--- a/configure ++++ b/configure +@@ -19281,12 +19281,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -19761,12 +19755,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -20412,7 +20400,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20423,6 +20417,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index bd4446e9488..9fdb671d44d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5239,7 +5239,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dladdr dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dladdr dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5249,7 +5249,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv \ + pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ +@@ -5280,7 +5280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..4f1a47dd4a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.1/Python-3.14.1/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From 2d7a52cf26a57b14fde53897d782db55e63fb356 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 3f138a8ff11..e38f8d8ab32 100755 +--- a/configure ++++ b/configure +@@ -20400,13 +20400,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20417,12 +20411,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20431,6 +20419,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 9fdb671d44d..9e301b6ce6e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5280,7 +5280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..136e1787cc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 5c927bf09aae2221636300e45187c27b8018766d Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:16 +0800 +Subject: [PATCH] [3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150447) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 46eb0665bf4..3f138a8ff11 100755 +--- a/configure ++++ b/configure +@@ -19281,12 +19281,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -19761,12 +19755,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -20412,7 +20400,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20423,6 +20417,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index bd4446e9488..9fdb671d44d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5239,7 +5239,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dladdr dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dladdr dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5249,7 +5249,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv \ + pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ +@@ -5280,7 +5280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..4fc9dc9b34 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.2/Python-3.14.2/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From cb9757118e29df43276f01701e73fe50c57b1b25 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 3f138a8ff11..e38f8d8ab32 100755 +--- a/configure ++++ b/configure +@@ -20400,13 +20400,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20417,12 +20411,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20431,6 +20419,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 9fdb671d44d..9e301b6ce6e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5280,7 +5280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..b151126519 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 14dbab4f78b96ddc611b50558c50b548ae744032 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:16 +0800 +Subject: [PATCH] [3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150447) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 645628fecf2..2dae6dd38dc 100755 +--- a/configure ++++ b/configure +@@ -19281,12 +19281,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -19761,12 +19755,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -20412,7 +20400,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20423,6 +20417,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index d81c76fc122..20411ee381c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5239,7 +5239,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dladdr dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dladdr dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5249,7 +5249,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv \ + pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ +@@ -5280,7 +5280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..080ec90443 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.3/Python-3.14.3/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From 78204cc8e5beb318cee9bf831146bd339602c4c3 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 2dae6dd38dc..74c9f7e0a3c 100755 +--- a/configure ++++ b/configure +@@ -20400,13 +20400,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20417,12 +20411,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20431,6 +20419,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 20411ee381c..9c4fef6971e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5280,7 +5280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..bcbfdf902f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 3ccb6c32cce56e55823dc406e2cdd8f33d588bba Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:16 +0800 +Subject: [PATCH] [3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150447) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 8cfdda5a29b..c3e9474bbec 100755 +--- a/configure ++++ b/configure +@@ -19321,12 +19321,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -19801,12 +19795,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -20452,7 +20440,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20463,6 +20457,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 1acb91fd27b..67128cc4ad0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5242,7 +5242,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dladdr dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dladdr dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5252,7 +5252,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv \ + pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ +@@ -5283,7 +5283,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..1fda7402b6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.4/Python-3.14.4/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From 0883623df9ba2ea83d2f9dc3031ac9d975824d98 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index c3e9474bbec..89233599659 100755 +--- a/configure ++++ b/configure +@@ -20440,13 +20440,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20457,12 +20451,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20471,6 +20459,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 67128cc4ad0..c004fce7770 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5283,7 +5283,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..eb4fb73efe --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0002-3.14-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 972bdb3578e667c1fad1b09f3ec6355229c069cd Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:16 +0800 +Subject: [PATCH] [3.14] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150447) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 30590a397f8..a5308e561aa 100755 +--- a/configure ++++ b/configure +@@ -19375,12 +19375,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -19855,12 +19849,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -20506,7 +20494,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20517,6 +20511,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 87c0ead45a6..4ff68cd36a5 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5264,7 +5264,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dladdr dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dladdr dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5274,7 +5274,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv \ + pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ +@@ -5305,7 +5305,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..1b028a5492 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.5/Python-3.14.5/0003-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From d9fe3c8f79460f2ed5309b9fd667cfdc2a3a0462 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a5308e561aa..76ca500c68b 100755 +--- a/configure ++++ b/configure +@@ -20494,13 +20494,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20511,12 +20505,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20525,6 +20513,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 4ff68cd36a5..b9f5217704f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5305,7 +5305,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0002-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0002-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..e5e2b2c80b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.6/Python-3.14.6/0002-3.14-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,101 @@ +From 39bab3a49d6f952c55c036aef1872c7d6f701039 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:27:28 -0700 +Subject: [PATCH] [3.14] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155206) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 2088290f0ee..6d669963272 100755 +--- a/configure ++++ b/configure +@@ -20494,13 +20494,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -20511,12 +20505,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -20525,6 +20513,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index aed14946731..900bf6215e0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5305,7 +5305,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + From 6c97017989ad85d12e91e1eb65ee08fcccb3d886 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 17 Sep 2026 02:31:45 +0300 Subject: [PATCH 1265/1324] Backport XCode 27 support to 3.13 (#3546) * Upstream fix (3.13.15): https://github.com/python/cpython/commit/e86913423b4e1aa7b7ff8de3b0df9055d5117159 * Dependency patch (3.13.14): https://github.com/python/cpython/commit/7d265b60133b323232d2811c53f6d10a41a14435 --- .../python-build/share/python-build/3.13.11t | 2 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.0t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.10t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.11t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.12t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.13t | 1 + ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.14t | 1 + .../share/python-build/patches/3.13.1t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.2t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.3t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.4t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.5t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.6t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.7t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.8t | 1 + ...xclude-explicit-dup3-and-pipe2-check.patch | 105 ++++++++++++++++++ ...void-use-of-dup3-and-pipe2-calls-int.patch | 103 +++++++++++++++++ .../share/python-build/patches/3.13.9t | 1 + 45 files changed, 3032 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.13.11t create mode 100644 plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.0t create mode 100644 plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.10t create mode 100644 plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.11t create mode 100644 plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.12t create mode 100644 plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.13t create mode 100644 plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.14t create mode 120000 plugins/python-build/share/python-build/patches/3.13.1t create mode 100644 plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.2t create mode 100644 plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.3t create mode 100644 plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.4t create mode 100644 plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.5t create mode 100644 plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.6t create mode 100644 plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.7t create mode 100644 plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.8t create mode 100644 plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch create mode 100644 plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch create mode 120000 plugins/python-build/share/python-build/patches/3.13.9t diff --git a/plugins/python-build/share/python-build/3.13.11t b/plugins/python-build/share/python-build/3.13.11t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.11t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..8450b2a14d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 8d6715d85ad670ddfc69dbfffc8c03ac2ce166eb Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 7cdd386c387..e85f3f0ea3d 100755 +--- a/configure ++++ b/configure +@@ -17953,12 +17953,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18427,12 +18421,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19048,7 +19036,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19059,6 +19053,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 24e28a1e2de..25b0587ec12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5088,7 +5088,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5098,7 +5098,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5126,7 +5126,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..5547ab1e88 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.0/Python-3.13.0/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 0a97b1ca8dc1e5d689edbd87591962ba93c21db6 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index e85f3f0ea3d..3b63517ddfb 100755 +--- a/configure ++++ b/configure +@@ -19036,13 +19036,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19053,12 +19047,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19067,6 +19055,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 25b0587ec12..d4e233e24a6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5126,7 +5126,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.0t b/plugins/python-build/share/python-build/patches/3.13.0t new file mode 120000 index 0000000000..77fdc6bb0a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.0t @@ -0,0 +1 @@ +3.13.0 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..57aa95dbe9 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 389f221839f2b21fb8ce5faa50f97d7d6592394c Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index ae70f02f70e..4c3965e3a62 100755 +--- a/configure ++++ b/configure +@@ -17956,12 +17956,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18430,12 +18424,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19051,7 +19039,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19062,6 +19056,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index a764028e49f..1035134c48e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5091,7 +5091,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5101,7 +5101,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5129,7 +5129,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..8dec9ec5bc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.1/Python-3.13.1/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 262ca735e924a4dfc93573c72a723c221a540aba Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4c3965e3a62..b8ba6a16c81 100755 +--- a/configure ++++ b/configure +@@ -19039,13 +19039,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19056,12 +19050,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19070,6 +19058,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 1035134c48e..2b6f37482d3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5129,7 +5129,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..d4f7b51db4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From ab182dfdeff041b61fbd36c3c11433bfdfbcaa1e Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..437f1a0ab2 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.10/Python-3.13.10/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 1f505104c4c968b8f4478cf97c50ea2129e12a66 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.10t b/plugins/python-build/share/python-build/patches/3.13.10t new file mode 120000 index 0000000000..99345fd86c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.10t @@ -0,0 +1 @@ +3.13.10 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..88f681bcc5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From dafe995d585cebef41da426be559e595134c5da9 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..b62413743f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.11/Python-3.13.11/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From c76e73a290159e530499f89addff8e0befc8230d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.11t b/plugins/python-build/share/python-build/patches/3.13.11t new file mode 120000 index 0000000000..05879da03a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.11t @@ -0,0 +1 @@ +3.13.11 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..25919c6127 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 91483b88e099ef9d4c2f3e1db1a370491120c93d Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 49b6795703a..95c9f306baa 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 94776540d1b..747c630c329 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..344ccc4756 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.12/Python-3.13.12/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 53b2f0d288f7f5b91c45da11aa9246ecab6b8f95 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 95c9f306baa..317191ae0f8 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 747c630c329..d3173900340 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.12t b/plugins/python-build/share/python-build/patches/3.13.12t new file mode 120000 index 0000000000..177facf669 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.12t @@ -0,0 +1 @@ +3.13.12 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..e2e87d1623 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 211716524135a5c5b322540ec19ca4f5ae6abdbc Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 9ddb712b534..ff4eedd4df9 100755 +--- a/configure ++++ b/configure +@@ -18228,12 +18228,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18708,12 +18702,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19329,7 +19317,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19340,6 +19334,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index d9acfce793e..0c20b4f2dc0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5220,7 +5220,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5230,7 +5230,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5258,7 +5258,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..b305886439 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.13/Python-3.13.13/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 2ffa77601e05d7c515edfb16ba6c2277675cb684 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index ff4eedd4df9..099b552e763 100755 +--- a/configure ++++ b/configure +@@ -19317,13 +19317,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19334,12 +19328,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19348,6 +19336,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 0c20b4f2dc0..3e792193278 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5258,7 +5258,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.13t b/plugins/python-build/share/python-build/patches/3.13.13t new file mode 120000 index 0000000000..fb3c678365 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.13t @@ -0,0 +1 @@ +3.13.13 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..c6eb2bbbc6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.14/Python-3.13.14/0001-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 690e11097e2d313513a354ffbb0517866e201831 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 0df47513085..59d67626ad6 100755 +--- a/configure ++++ b/configure +@@ -19368,13 +19368,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19385,12 +19379,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19399,6 +19387,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index a016a439c6c..c4d1e59a5e3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5280,7 +5280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.14t b/plugins/python-build/share/python-build/patches/3.13.14t new file mode 120000 index 0000000000..39e159e321 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.14t @@ -0,0 +1 @@ +3.13.14 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.1t b/plugins/python-build/share/python-build/patches/3.13.1t new file mode 120000 index 0000000000..7918c7abbb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.1t @@ -0,0 +1 @@ +3.13.1 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..c5fe3d6487 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 72c96d07c449da15ef88369a1b4ea9ac3a76b5b5 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 1cd1f690f7b..8c6a9648485 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18450,12 +18444,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19071,7 +19059,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,6 +19076,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 3fcb18922c5..09223e4d2f0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..66b11dffe7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.2/Python-3.13.2/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 42d1ab9db0112d76647402436bfc69251b844536 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 8c6a9648485..3c4c3584a4a 100755 +--- a/configure ++++ b/configure +@@ -19059,13 +19059,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19076,12 +19070,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19090,6 +19078,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 09223e4d2f0..c48de4ecc12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.2t b/plugins/python-build/share/python-build/patches/3.13.2t new file mode 120000 index 0000000000..97c684195c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.2t @@ -0,0 +1 @@ +3.13.2 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..0bfd7f8618 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From dbadbc64aefb216fb54c5a751c6870976ad473d9 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 1cd1f690f7b..8c6a9648485 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18450,12 +18444,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19071,7 +19059,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,6 +19076,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 3fcb18922c5..09223e4d2f0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..27e2de4917 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.3/Python-3.13.3/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From da3966ecc33d03d3cabacaa5af11fbf933c9d135 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 8c6a9648485..3c4c3584a4a 100755 +--- a/configure ++++ b/configure +@@ -19059,13 +19059,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19076,12 +19070,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19090,6 +19078,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 09223e4d2f0..c48de4ecc12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.3t b/plugins/python-build/share/python-build/patches/3.13.3t new file mode 120000 index 0000000000..faedad4177 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.3t @@ -0,0 +1 @@ +3.13.3 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..3b4f995528 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 7707acff006c594de6216d9c911017e7ca44a4c1 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 1cd1f690f7b..8c6a9648485 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18450,12 +18444,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19071,7 +19059,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,6 +19076,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 3fcb18922c5..09223e4d2f0 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..d9fe0a3ca5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.4/Python-3.13.4/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From eb84f748e1b9f2953d534a4eaaa562ed80968d2d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 8c6a9648485..3c4c3584a4a 100755 +--- a/configure ++++ b/configure +@@ -19059,13 +19059,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19076,12 +19070,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19090,6 +19078,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 09223e4d2f0..c48de4ecc12 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.4t b/plugins/python-build/share/python-build/patches/3.13.4t new file mode 120000 index 0000000000..82dc52c3c0 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.4t @@ -0,0 +1 @@ +3.13.4 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..0aeb6fc7d7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From edfd8c357cabbb59e3d2db9ab7b6eb1f2eff80fe Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 519caa8ca74..f19e43c8573 100755 +--- a/configure ++++ b/configure +@@ -17976,12 +17976,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18456,12 +18450,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19077,7 +19065,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19088,6 +19082,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 2a037569e49..ce6625a752c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5112,7 +5112,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5122,7 +5122,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5150,7 +5150,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..498a3fe97c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.5/Python-3.13.5/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 972a7e832fa8941b6ed92d366175748fd2172639 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index f19e43c8573..89f394a998b 100755 +--- a/configure ++++ b/configure +@@ -19065,13 +19065,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19082,12 +19076,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19096,6 +19084,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index ce6625a752c..3abe99594c8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5150,7 +5150,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.5t b/plugins/python-build/share/python-build/patches/3.13.5t new file mode 120000 index 0000000000..3523e81f27 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.5t @@ -0,0 +1 @@ +3.13.5 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..51e28e4a88 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 583757a560f95d29d4a8078dd1bcbdf3c3de1678 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..f67c1b9f2f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.6/Python-3.13.6/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 8d221378537d08de2a43e1cbfcfbdf7a5613292b Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.6t b/plugins/python-build/share/python-build/patches/3.13.6t new file mode 120000 index 0000000000..78472f9975 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.6t @@ -0,0 +1 @@ +3.13.6 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..7de70b0ab4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From fd99fe3b35195f34b00d0ba0ca8c26958e28fed4 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..f4fa8d3b7d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.7/Python-3.13.7/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From f8dd6d4a22e74635cb2e1e7e8ad47033f06a4946 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.7t b/plugins/python-build/share/python-build/patches/3.13.7t new file mode 120000 index 0000000000..7acdc739e4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.7t @@ -0,0 +1 @@ +3.13.7 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..a0b890fa52 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From 8f7c908415d76ab2e71f6bc6479c912c1ba99bd2 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..a53dc267b4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.8/Python-3.13.8/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From c706d5d58dc4f620b665258946f86d0f48ad39f8 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.8t b/plugins/python-build/share/python-build/patches/3.13.8t new file mode 120000 index 0000000000..0b9554bc1a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.8t @@ -0,0 +1 @@ +3.13.8 \ No newline at end of file diff --git a/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch new file mode 100644 index 0000000000..badca20d67 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0001-3.13-gh-150443-Exclude-explicit-dup3-and-pipe2-check.patch @@ -0,0 +1,105 @@ +From b0c32c8d11e63c3cc6f8741e3362e67965b5e446 Mon Sep 17 00:00:00 2001 +From: Russell Keith-Magee +Date: Tue, 26 May 2026 13:07:20 +0800 +Subject: [PATCH] [3.13] gh-150443: Exclude explicit dup3 and pipe2 checks on + iOS builds. (GH-150444) (#150448) + +Exclude explicit dup3 and pipe2 checks on iOS builds. +(cherry picked from commit 629da5c914b4407e01c1dc06cbcbd8dce825fef3) +--- + configure | 26 +++++++++++++------------- + configure.ac | 6 +++--- + 2 files changed, 16 insertions(+), 16 deletions(-) + +diff --git a/configure b/configure +index 901a26c9602..4ade7c21754 100755 +--- a/configure ++++ b/configure +@@ -18191,12 +18191,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -18671,12 +18665,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -19292,7 +19280,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19303,6 +19297,12 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +diff --git a/configure.ac b/configure.ac +index 597a44b331a..6ffcb8694d4 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5217,7 +5217,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock closefrom close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid geteuid getgid getgrent getgrgid getgrgid_r \ +@@ -5227,7 +5227,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd grantpt if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_openpt posix_spawn posix_spawnp \ + posix_spawn_file_actions_addclosefrom_np \ + pread preadv preadv2 process_vm_readv pthread_cond_timedwait_relative_np pthread_condattr_setclock pthread_init \ + pthread_kill ptsname ptsname_r pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ +@@ -5255,7 +5255,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([getentropy getgroups system]) ++ AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch new file mode 100644 index 0000000000..c00b2521bf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.9/Python-3.13.9/0002-3.13-gh-153711-Avoid-use-of-dup3-and-pipe2-calls-int.patch @@ -0,0 +1,103 @@ +From 3fc7c23cce6b846952067df633f113510a83e2c3 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 00:30:17 -0700 +Subject: [PATCH] [3.13] gh-153711: Avoid use of dup3 and pipe2 calls + introduced in macOS 27 (#155211) + +This prevents potential segfaults when builds are used on older +systems and avoids adding new code for supporting weaklinking. +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 32 +++++++++++-------- + configure.ac | 8 ++++- + 3 files changed, 29 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4ade7c21754..6fd245e4c3b 100755 +--- a/configure ++++ b/configure +@@ -19280,13 +19280,7 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" ++ ac_fn_c_check_func "$LINENO" "getentropy" "ac_cv_func_getentropy" + if test "x$ac_cv_func_getentropy" = xyes + then : + printf "%s\n" "#define HAVE_GETENTROPY 1" >>confdefs.h +@@ -19297,12 +19291,6 @@ if test "x$ac_cv_func_getgroups" = xyes + then : + printf "%s\n" "#define HAVE_GETGROUPS 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "system" "ac_cv_func_system" + if test "x$ac_cv_func_system" = xyes +@@ -19311,6 +19299,24 @@ then : + + fi + ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +diff --git a/configure.ac b/configure.ac +index 6ffcb8694d4..f75d0ff02ba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -5255,7 +5255,13 @@ fi + # header definition prevents usage - autoconf doesn't use the headers), or + # raise an error if used at runtime. Force these symbols off. + if test "$ac_sys_system" != "iOS" ; then +- AC_CHECK_FUNCS([dup3 getentropy getgroups pipe2 system]) ++ AC_CHECK_FUNCS([getentropy getgroups system]) ++fi ++# In addition, macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "iOS" -a "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) + fi + + AC_CHECK_DECL([dirfd], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.13.9t b/plugins/python-build/share/python-build/patches/3.13.9t new file mode 120000 index 0000000000..4fd0f831b5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.13.9t @@ -0,0 +1 @@ +3.13.9 \ No newline at end of file From 3d66ee1fdb4629e05739447be48546519efa4372 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 17 Sep 2026 02:33:37 +0300 Subject: [PATCH 1266/1324] Backport XCode 27 support to 3.12 (#3547) * Adapted upstream fix (3.13.15): https://github.com/python/cpython/commit/e86913423b4e1aa7b7ff8de3b0df9055d5117159 and dependency patch (3.13.14): https://github.com/python/cpython/commit/7d265b60133b323232d2811c53f6d10a41a14435 --- ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ 15 files changed, 1785 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.10/Python-3.12.10/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.11/Python-3.12.11/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.12/Python-3.12.12/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.13/Python-3.12.13/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.14/Python-3.12.14/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.2/Python-3.12.2/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.3/Python-3.12.3/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.4/Python-3.12.4/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.5/Python-3.12.5/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.6/Python-3.12.6/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.7/Python-3.12.7/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.8/Python-3.12.8/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.12.9/Python-3.12.9/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch diff --git a/plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..da0fc05edf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.0/Python-3.12.0/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From ac12d63bf188f9497f8453c0447b9bc599acbf22 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index b6f90bcd8c7..b93aab935ce 100755 +--- a/configure ++++ b/configure +@@ -17552,13 +17552,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18028,12 +18022,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18608,6 +18596,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index ba768aea930..92049fb2889 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4860,7 +4860,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4870,7 +4870,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4892,6 +4892,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..f79533a079 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.1/Python-3.12.1/0002-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From a4b6c2946c6be5b732a3a3d30b8ac75673bc71e6 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 99dd1fe5958..52c4790ac74 100755 +--- a/configure ++++ b/configure +@@ -17566,13 +17566,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18042,12 +18036,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18622,6 +18610,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index bd2be94b47c..45212bd6040 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4870,7 +4870,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4880,7 +4880,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4902,6 +4902,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.10/Python-3.12.10/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.10/Python-3.12.10/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..8501837436 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.10/Python-3.12.10/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 0e76b1b0219d61d389ddc4516fceb339608c6bf5 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 89edc42f45c..e099c5ad55a 100755 +--- a/configure ++++ b/configure +@@ -17614,13 +17614,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18090,12 +18084,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18670,6 +18658,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 1a02d19f1b2..f2b58421d74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4920,7 +4920,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4930,7 +4930,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4952,6 +4952,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.11/Python-3.12.11/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.11/Python-3.12.11/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..d4303100eb --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.11/Python-3.12.11/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From a4720333372f8d13138101cf9d51033eacf1d422 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 89edc42f45c..e099c5ad55a 100755 +--- a/configure ++++ b/configure +@@ -17614,13 +17614,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18090,12 +18084,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18670,6 +18658,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 1a02d19f1b2..f2b58421d74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4920,7 +4920,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4930,7 +4930,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4952,6 +4952,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.12/Python-3.12.12/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.12/Python-3.12.12/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..8ed420ca75 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.12/Python-3.12.12/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 9bd15ba319eb324b12a6ecf43a4b30c5fcdcdc83 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 89edc42f45c..e099c5ad55a 100755 +--- a/configure ++++ b/configure +@@ -17614,13 +17614,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18090,12 +18084,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18670,6 +18658,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 1a02d19f1b2..f2b58421d74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4920,7 +4920,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4930,7 +4930,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4952,6 +4952,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.13/Python-3.12.13/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.13/Python-3.12.13/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..5736977f42 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.13/Python-3.12.13/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 4cfd78f7b5128da5ca9628de77feec4b768c2531 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 89edc42f45c..e099c5ad55a 100755 +--- a/configure ++++ b/configure +@@ -17614,13 +17614,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18090,12 +18084,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18670,6 +18658,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 1a02d19f1b2..f2b58421d74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4920,7 +4920,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4930,7 +4930,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4952,6 +4952,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.14/Python-3.12.14/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.14/Python-3.12.14/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..da0fc05edf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.14/Python-3.12.14/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From ac12d63bf188f9497f8453c0447b9bc599acbf22 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index b6f90bcd8c7..b93aab935ce 100755 +--- a/configure ++++ b/configure +@@ -17552,13 +17552,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18028,12 +18022,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18608,6 +18596,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index ba768aea930..92049fb2889 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4860,7 +4860,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4870,7 +4870,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4892,6 +4892,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.2/Python-3.12.2/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.2/Python-3.12.2/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..3788d406e6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.2/Python-3.12.2/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 2b0563ccd3da13eba12ceb53cfca3792df7bec44 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index e962a6aed12..7a7e3204ea9 100755 +--- a/configure ++++ b/configure +@@ -17566,13 +17566,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18042,12 +18036,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18622,6 +18610,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 384718db1f0..7f117003df7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4870,7 +4870,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4880,7 +4880,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4902,6 +4902,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.3/Python-3.12.3/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.3/Python-3.12.3/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..99f8bdb29d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.3/Python-3.12.3/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From c167d889c264347c658365acbb70bdd71c81550d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index be783faa248..87fca7d195f 100755 +--- a/configure ++++ b/configure +@@ -17591,13 +17591,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18067,12 +18061,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18647,6 +18635,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 8be26cc0ab7..313b5bd62ce 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4888,7 +4888,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4898,7 +4898,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4920,6 +4920,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.4/Python-3.12.4/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.4/Python-3.12.4/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..0d729ef519 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.4/Python-3.12.4/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 9e0a06e1ad5baa743064a4ef3b9b0faf83e3d061 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 6dc8a66e487..b2ce2542b9d 100755 +--- a/configure ++++ b/configure +@@ -17591,13 +17591,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18067,12 +18061,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18647,6 +18635,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 8a32cb58f4e..0cec0c7aeea 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4896,7 +4896,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4906,7 +4906,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4928,6 +4928,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.5/Python-3.12.5/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.5/Python-3.12.5/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..7210088dea --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.5/Python-3.12.5/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 16d9ac47e5e6b6e8020049622c697e8118999480 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4dfaeecfc0b..bec4c9ac763 100755 +--- a/configure ++++ b/configure +@@ -17591,13 +17591,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18067,12 +18061,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18647,6 +18635,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 0d6df8e24e4..cbf749da60b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4896,7 +4896,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4906,7 +4906,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4928,6 +4928,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.6/Python-3.12.6/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.6/Python-3.12.6/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..6795f4c231 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.6/Python-3.12.6/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 33d7809038f73f689c4a7d622dbf49e90774f1ff Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4dfaeecfc0b..bec4c9ac763 100755 +--- a/configure ++++ b/configure +@@ -17591,13 +17591,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18067,12 +18061,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18647,6 +18635,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 0d6df8e24e4..cbf749da60b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4896,7 +4896,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4906,7 +4906,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4928,6 +4928,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.7/Python-3.12.7/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.7/Python-3.12.7/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..1621ee1df5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.7/Python-3.12.7/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 2b8183e6b45ec2b5d591c034687e7f0ba5eb1bbc Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 1c75810d9e8..439464c2d98 100755 +--- a/configure ++++ b/configure +@@ -17591,13 +17591,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18067,12 +18061,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18647,6 +18635,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index d0d54050286..94b624b3e0c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4896,7 +4896,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4906,7 +4906,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4928,6 +4928,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.8/Python-3.12.8/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.8/Python-3.12.8/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..7bc58a49db --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.8/Python-3.12.8/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From d92ec3351dd6a0cc2e2fe10bae23ffdb817de42d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 241cf8f3d4a..62575e79243 100755 +--- a/configure ++++ b/configure +@@ -17594,13 +17594,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18070,12 +18064,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18650,6 +18638,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 9270b5f7172..7225a26752e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4899,7 +4899,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4909,7 +4909,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4931,6 +4931,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.12.9/Python-3.12.9/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.9/Python-3.12.9/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..cb566e2457 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.9/Python-3.12.9/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From 99908afd676839023dd45807502e0018e3347268 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 89edc42f45c..e099c5ad55a 100755 +--- a/configure ++++ b/configure +@@ -17614,13 +17614,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18090,12 +18084,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18670,6 +18658,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 1a02d19f1b2..f2b58421d74 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4920,7 +4920,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4930,7 +4930,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4952,6 +4952,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + From 733afbc04bb546c308eb36f4be8589f6afa33cc8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 17 Sep 2026 04:47:05 +0300 Subject: [PATCH 1267/1324] Add a patch backport script --- plugins/python-build/scripts/backport.sh | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 plugins/python-build/scripts/backport.sh diff --git a/plugins/python-build/scripts/backport.sh b/plugins/python-build/scripts/backport.sh new file mode 100644 index 0000000000..c3159a74fe --- /dev/null +++ b/plugins/python-build/scripts/backport.sh @@ -0,0 +1,27 @@ +# source this in Bash +# cd to git repo of CPython + +_python_build_dir=$(cd "${BASH_SOURCE%/*}/.."; pwd -P) + +backport() { + [[ $# -lt 2 ]] && { echo "usage: $FUNCNAME ..." >&2; return 1; } + + (set -euxo pipefail + sha="${1:?}" + shift + for b; do + git checkout "Branch_v$b" || git checkout -b "Branch_v$b" "v$b" + git cherry-pick "$sha" + git format-patch -1 + patch_dir="$_python_build_dir/share/python-build/$b/Python-$b" + shopt -s nullglob + pp=("$patch_dir"/*.patch) + patch_offset=${#pp[@]} + shopt -u nullglob + unset pp + mkdir -p "$patch_dir" + for f in *.patch; do + mv "$f" "$patch_dir/$(printf '%04d' $((${f::4}+patch_offset)))${f:4}" + done + done) +} \ No newline at end of file From f17a6499b03e66f147f9cf8163a6e4b3d6921701 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 17 Sep 2026 04:58:50 +0300 Subject: [PATCH 1268/1324] Backport XCode 27 support to 3.11 (#3548) Adapted 3.12 downstream patch --- ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 117 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++ 17 files changed, 1861 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch diff --git a/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..b3630271b4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.0/Python-3.11.0/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 7ebb74cb3b6b0b163d3bd07ea2ef21e5446c505b Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 784f8d30609..bc7c194e866 100755 +--- a/configure ++++ b/configure +@@ -14966,7 +14966,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -14976,7 +14976,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15019,6 +15019,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ab5e1de6fab..f70d17f4cdb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4543,7 +4543,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4553,7 +4553,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4575,6 +4575,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..c7c544ea7f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.1/Python-3.11.1/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 23afa3cb08eb7a95c5549e46c6275af3bbf0bc93 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 9567ac3a62c..65ed2916e09 100755 +--- a/configure ++++ b/configure +@@ -15158,7 +15158,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15168,7 +15168,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15211,6 +15211,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 90008bcae17..0816d477558 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4582,7 +4582,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4592,7 +4592,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4614,6 +4614,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..de9acc3c3f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.10/Python-3.11.10/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 531b50ba6658c58f015de4f4f8aef8d3ef03ca0d Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..408173219e --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.11/Python-3.11.11/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 5699cd1a15ba3f0474ad61aaeb94ad1ad2dfc833 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..4f83984c94 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.12/Python-3.11.12/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From b8b17a685e1e4beac5a00540dde764213200a724 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..5498df1e28 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.13/Python-3.11.13/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 2fa150b3f0bce148cda2d2acf10973941580e9c8 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..c67d75f39a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.14/Python-3.11.14/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From c721b82ced0789df0643b87327440bea4fa8062c Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..33ab1f3ee1 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.15/Python-3.11.15/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 3f03fe05c04c7dbd8ff3206c7f56d41638c90681 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 5ffa02dcb5b..1b90ed0d119 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index bfc99cc4268..08c7df52a7a 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..0025217f36 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.16/Python-3.11.16/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 29e98f7040994fa86bf63845b00ab9a4d80f5931 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..c58a2ed1ec --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.2/Python-3.11.2/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From d1ea67d806c3f9370a0217902fd06f93dfbd58ae Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 9e76287725b..7bb2018d9b9 100755 +--- a/configure ++++ b/configure +@@ -15160,7 +15160,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15170,7 +15170,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15213,6 +15213,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index c62a565eb68..8b618d89fb6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4582,7 +4582,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4592,7 +4592,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4614,6 +4614,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..6a0ba038ac --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.3/Python-3.11.3/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From a6a677bd661d3e1230d376787dc365519746d051 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 9e76287725b..7bb2018d9b9 100755 +--- a/configure ++++ b/configure +@@ -15160,7 +15160,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15170,7 +15170,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15213,6 +15213,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index c62a565eb68..8b618d89fb6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4582,7 +4582,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4592,7 +4592,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4614,6 +4614,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..89ac226ff6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.4/Python-3.11.4/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,117 @@ +From 9b4547ee5f8d1d3d00fb0383a1c5e65cc1aa1b86 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 31 ++++++++++++------- + configure.ac | 11 +++++-- + 3 files changed, 31 insertions(+), 14 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a66a081a76b..0f0a4a4cf30 100755 +--- a/configure ++++ b/configure +@@ -16517,12 +16517,6 @@ if test "x$ac_cv_func_dup" = xyes + then : + printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" + if test "x$ac_cv_func_execv" = xyes +@@ -16991,12 +16985,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -17571,6 +17559,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index 1c25abd65a0..d8f7b64ea60 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4582,7 +4582,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4592,7 +4592,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4614,6 +4614,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..359571963f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.5/Python-3.11.5/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 3164590efaab7b21c093b50e78c3d332494b037c Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index af4a5bbfdfa..e929659dc62 100755 +--- a/configure ++++ b/configure +@@ -15198,7 +15198,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15208,7 +15208,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15251,6 +15251,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index e1cbb7c7fbe..d3a1cd1be6b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4586,7 +4586,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4596,7 +4596,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4618,6 +4618,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..6aab0fb08a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.6/Python-3.11.6/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 4cb7a6c0d9769517ecc8714da0c6668dec76639f Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index af4a5bbfdfa..e929659dc62 100755 +--- a/configure ++++ b/configure +@@ -15198,7 +15198,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15208,7 +15208,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15251,6 +15251,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index e1cbb7c7fbe..d3a1cd1be6b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4586,7 +4586,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4596,7 +4596,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4618,6 +4618,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..65c16d0dd2 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.7/Python-3.11.7/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 9510b699fa047f500b99da13474f5d89e4b7a850 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 8d2f3f4cc0f..39f6cf5e353 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 52d5c1f7dd3..0cca5dd00c7 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..4b44c013f5 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.8/Python-3.11.8/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From dd9f5dfd13ee1ad7686c9703e8f69699acceaa99 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index cb3db60f9c2..997af57afd9 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index bbe7f891e7d..aa89f118b87 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..01a79460fa --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.9/Python-3.11.9/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 016abcec2e95b402465784efc9b05a0d82a07ea8 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + From a99ef7fc4e8aa1dc8eb6391bc23c41130642bb7f Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 17 Sep 2026 08:20:22 +0300 Subject: [PATCH 1269/1324] Backport XCode 27 support to 3.10 (#3549) Adapted 3.11 downstream patch --- ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ 22 files changed, 2398 insertions(+) create mode 100644 plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0004-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch diff --git a/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0004-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0004-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..a952ebd2ee --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.0/Python-3.10.0/0004-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 639cdfe83c371bcc87969cb6db926bc360135ac9 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 1baa145e3ed..b67faee87a8 100755 +--- a/configure ++++ b/configure +@@ -11709,7 +11709,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11719,7 +11719,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -11762,6 +11762,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 3e6c07c2793..c431bf42398 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3680,7 +3680,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3690,7 +3690,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3712,6 +3712,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..d2ea6e77cc --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.1/Python-3.10.1/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 6fa96938bf9512e0205b279801a181ff2666df34 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 2e7e0b7e0a7..04e72587bbf 100755 +--- a/configure ++++ b/configure +@@ -11940,7 +11940,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11950,7 +11950,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -11993,6 +11993,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 0c069141478..96bcd704a07 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3702,7 +3702,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3712,7 +3712,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3734,6 +3734,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..c19b94544b --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.10/Python-3.10.10/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 3cf76ece0608dbb12ff03e7c8d406e7b7db2b267 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..6f6f54241d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.11/Python-3.10.11/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From a57787f02b8748622e4d6ca503bfda5eea2952ec Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..1261e96bc7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.12/Python-3.10.12/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From e7a4c51e2b860939fd571d9062ae48d65a8ef6ce Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..026265f113 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.13/Python-3.10.13/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From dec047356c85880ccde9ceb08aec873150ebb6ce Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..4c9d5affda --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.14/Python-3.10.14/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From aa13fa0dccef42fe23311544960cfda52169e89f Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..24ac325818 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.15/Python-3.10.15/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 169cf06dbfe83862835225eb170e199d7060f5c0 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..46bb8200cd --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.16/Python-3.10.16/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 72b6601d648c31b0f970859d820c7cfa6d731ac8 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..63f503868d --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.17/Python-3.10.17/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From e2eacb52f1825425539ae8d777a35ae62ea003ad Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..ef59aa24d1 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.18/Python-3.10.18/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 2c0df425ef4e26366251172e040a9d6cfb1f9471 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..8c04e2f8c8 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.19/Python-3.10.19/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 5e98482b7f8a32b769426b279742504aa45ba9a7 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..42d69a1fc4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.2/Python-3.10.2/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From bc7cf075bc9476e358303855ca4a7c88f2103108 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a7d2975f1f5..c0b730f2746 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 5aa91cbad35..9eae56f1d31 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..013e9b2676 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.20/Python-3.10.20/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 95ca265cab510ac5ccf8da44b45234e1d51dcfd7 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..7e5d9aaa68 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.21/Python-3.10.21/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From cf8eba395ddf888ce7d9e5e4a257209841aff6a4 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..34c60686a6 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.3/Python-3.10.3/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 43ec16e5e7b527cff1c9e47699248f04afe8cf37 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 0cc86f9ed76..3c3eb939642 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 547255ff31e..13d44972ea8 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..28d2770cb7 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.4/Python-3.10.4/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 654bafbe923d5a8f7ef7c3dee3f4bc9e4fef0139 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 19f1bd59ba8..5e3f216954e 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 763fc697be7..c06f1a567c3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..253c4da8ea --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.5/Python-3.10.5/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From fb4d6093b2b2e557711a747bae5c16742abf49bc Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 19f1bd59ba8..5e3f216954e 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 763fc697be7..c06f1a567c3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..de8ab8db56 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.6/Python-3.10.6/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From d3864984569660dccaa498b92d8fdabe9d291882 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 19f1bd59ba8..5e3f216954e 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 763fc697be7..c06f1a567c3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..97c3c9109c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.7/Python-3.10.7/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From c3f875f9d55c7e2040dac25a8afcdd048d87b50b Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index bad619963ad..bb7f6bb1c00 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index cc69015b102..e2ab2faed28 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..fc6d7f028f --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.8/Python-3.10.8/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From b1d96618e86c6135eba1556ca096ba1ab69b6973 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index bad619963ad..bb7f6bb1c00 100755 +--- a/configure ++++ b/configure +@@ -11951,7 +11951,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11961,7 +11961,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12004,6 +12004,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index cc69015b102..e2ab2faed28 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3707,7 +3707,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3717,7 +3717,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3739,6 +3739,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..43c6a0e78c --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.9/Python-3.10.9/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From c6b863db3ae5e6e142d5ea24ac72a3cbc9c68ac9 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + From 7d55c1a7d99c065f41e09dc87676a58f17872cb2 Mon Sep 17 00:00:00 2001 From: 13steinj <13steinj@users.noreply.github.com> Date: Wed, 16 Sep 2026 23:20:51 -0600 Subject: [PATCH 1270/1324] Add miniconda3 26.7.1-0, 26.7.1-1 and miniforge3 26.5.3-0, 26.7.2-0 (#3550) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds latest miniconda releases 26.7.1-0, 26.7.1-1 for Python 3.10–3.14 and miniforge releases 26.5.3-0, 26.7.2-0. Updates Python verification to 3.14 for miniforge3 starting with 26.5.3-0 and adds Linux riscv64 detection for 26.7.2-0. Ref: https://github.com/conda-forge/miniforge/releases/tag/26.5.3-0 Ref: https://github.com/conda-forge/miniforge/releases/tag/26.7.2-0 Ref: https://www.anaconda.com/docs/getting-started/miniconda/release-notes --- plugins/python-build/bin/python-build | 1 + plugins/python-build/scripts/add_miniforge.py | 3 ++ .../python-build/miniconda3-3.10-26.7.1-0 | 20 +++++++++++++ .../python-build/miniconda3-3.10-26.7.1-1 | 20 +++++++++++++ .../python-build/miniconda3-3.11-26.7.1-0 | 20 +++++++++++++ .../python-build/miniconda3-3.11-26.7.1-1 | 20 +++++++++++++ .../python-build/miniconda3-3.12-26.7.1-0 | 20 +++++++++++++ .../python-build/miniconda3-3.12-26.7.1-1 | 20 +++++++++++++ .../python-build/miniconda3-3.13-26.7.1-0 | 20 +++++++++++++ .../python-build/miniconda3-3.13-26.7.1-1 | 20 +++++++++++++ .../python-build/miniconda3-3.14-26.7.1-0 | 20 +++++++++++++ .../python-build/miniconda3-3.14-26.7.1-1 | 20 +++++++++++++ .../share/python-build/miniforge3-26.5.3-0 | 25 +++++++++++++++++ .../share/python-build/miniforge3-26.7.2-0 | 28 +++++++++++++++++++ 14 files changed, 257 insertions(+) create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-1 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-0 create mode 100644 plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-1 create mode 100644 plugins/python-build/share/python-build/miniforge3-26.5.3-0 create mode 100644 plugins/python-build/share/python-build/miniforge3-26.7.2-0 diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 0a802722b2..b6188c586a 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1203,6 +1203,7 @@ anaconda_architecture() { "aarch64" ) echo "Linux-aarch64" ;; "i386" | "i486" | "i586" | "i686" | "i786" ) echo "Linux-x86" ;; "ppc64le" ) echo "Linux-ppc64le" ;; + "riscv64" ) echo "Linux-riscv64" ;; "x86_64" ) echo "Linux-x86_64" ;; * ) return 1 ;; esac diff --git a/plugins/python-build/scripts/add_miniforge.py b/plugins/python-build/scripts/add_miniforge.py index ffaddb6bda..6bc618288a 100755 --- a/plugins/python-build/scripts/add_miniforge.py +++ b/plugins/python-build/scripts/add_miniforge.py @@ -89,6 +89,9 @@ def py_version(version): # transition points: # https://github.com/conda-forge/miniforge/blame/main/Miniforge3/construct.yaml # look for "- python " in non-pypy branch and which tag the commit is first in + if version_tuple_ >= (26,5,3): + # https://github.com/conda-forge/miniforge/commit/8ae029d5f17e34e93fec2d9bfe708ba9175adf08 + return "314" if version_tuple_ >= (26,1): # https://github.com/conda-forge/miniforge/commit/0016367731e52c67234d6d0e7e6a24c6bf7673e4 return "313" diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-0 new file mode 100644 index 0000000000..b6c73bba3c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-0 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_26.7.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.7.1-0-Linux-aarch64.sh#caf3e9652f32f40d8755c22678c315f6305c04f68c47ff3e76e625d26f17f59b" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_26.7.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.7.1-0-Linux-x86_64.sh#acc1cda57155ecacb854b49bb5875eadb6500d1ea70176f44e8b7a321f59d620" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_26.7.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.7.1-0-MacOSX-arm64.sh#07b3e50a23a39db29c8dde820a4ab662532086a5da849a466f582f180115bce9" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-1 b/plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-1 new file mode 100644 index 0000000000..90ee1dacbb --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.10-26.7.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py310_26.7.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.7.1-1-Linux-aarch64.sh#1a77b0376464ab4a35df7ec033ee86875b9a932d29d985ce5bc2e4a16790e153" "miniconda" verify_py310 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py310_26.7.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.7.1-1-Linux-x86_64.sh#fb1af4c45e6e73fe193c2398b4346b1e45522f729cdfccfdb18f6c765954dbd9" "miniconda" verify_py310 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py310_26.7.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py310_26.7.1-1-MacOSX-arm64.sh#56c8b663e389605596fef71797367f30fa60ddc3022630c1bca309a09e833661" "miniconda" verify_py310 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-0 new file mode 100644 index 0000000000..ab425a0c1c --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-0 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_26.7.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.7.1-0-Linux-aarch64.sh#f20e0a792cea183252f832f2ba68b05f34ddb2f728d97c64a2adf04ebaaca62d" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_26.7.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.7.1-0-Linux-x86_64.sh#b5e7fa2d712bfc4b2d1d300e3ebbd9064491420efdb520753ab4e2e10f09ed75" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_26.7.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.7.1-0-MacOSX-arm64.sh#6415f748347a56c7b4a60271aad7bb85b8365f00aae69eacc2cd1612cd8955ac" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-1 b/plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-1 new file mode 100644 index 0000000000..b031ac5b74 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.11-26.7.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py311_26.7.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.7.1-1-Linux-aarch64.sh#3dec21b8c8612be0fdff92938c010752eb2ee46d413b74cac68d4c9547270937" "miniconda" verify_py311 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py311_26.7.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.7.1-1-Linux-x86_64.sh#a6f98e6e19d5b7897ae887cd6af931eb863459f86ffd1a09cc370124cab0993e" "miniconda" verify_py311 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py311_26.7.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py311_26.7.1-1-MacOSX-arm64.sh#da6322bf9a213536df5ce630da2a249b9fb6d433f439b84be07003a790be6be6" "miniconda" verify_py311 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-0 new file mode 100644 index 0000000000..b747c31a2f --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-0 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_26.7.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.7.1-0-Linux-aarch64.sh#391edcfaef0e70b7047834a86e48f5686eb0fe1e7612a086ca73e0084ffea45f" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_26.7.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.7.1-0-Linux-x86_64.sh#3d33f72fcb35134ab68a7775021a0ee6d22b8a4dd9139d9c9798792e933ee132" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_26.7.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.7.1-0-MacOSX-arm64.sh#1d9cb2f5c6ea2ce48711ba42f62c2b9e14094a8ef9781c98981bb9b9d9813862" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-1 b/plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-1 new file mode 100644 index 0000000000..2b18955306 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.12-26.7.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py312_26.7.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.7.1-1-Linux-aarch64.sh#f6d64a1565e713429683720f59dd6661f5131c2f959a4830438eb1969cde23f7" "miniconda" verify_py312 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py312_26.7.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.7.1-1-Linux-x86_64.sh#b27f60ab63e77eeab50a5417c989120f767e863df32400190d4c7262369f8695" "miniconda" verify_py312 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py312_26.7.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py312_26.7.1-1-MacOSX-arm64.sh#fc46408196d7383fcb03e1235b6891a5983fa3e0f56877eec7b27950130e7605" "miniconda" verify_py312 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-0 new file mode 100644 index 0000000000..77ed88cc05 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-0 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_26.7.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.7.1-0-Linux-aarch64.sh#e556d9805217d9798fa5fca0e190905c218025b552cee1fc2526dc55e498744d" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_26.7.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.7.1-0-Linux-x86_64.sh#3ad92b3b7fc3c82d6b649f76c688c89ae70b3eb267cc6bee8e657084a0ee3748" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_26.7.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.7.1-0-MacOSX-arm64.sh#1dfed26e3e7fe750a5626734cf9b4edb0ca0a55f3e9e395dba3ef8daeb79ecb5" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-1 b/plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-1 new file mode 100644 index 0000000000..442c9beb36 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.13-26.7.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py313_26.7.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.7.1-1-Linux-aarch64.sh#669e8f11248e97473ff058d97eb02b6c8e67f6c853e230f7a88cce95303c9fce" "miniconda" verify_py313 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py313_26.7.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.7.1-1-Linux-x86_64.sh#c26cbbd996d5ada0bec054b49a37fab690e2f91125701e458df6cca73da9482b" "miniconda" verify_py313 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py313_26.7.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py313_26.7.1-1-MacOSX-arm64.sh#689068fd5c3aaeb0137aad1202dd1743d4d8b62cf3b4b487e53787ef8a04feae" "miniconda" verify_py313 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-0 b/plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-0 new file mode 100644 index 0000000000..92cc99692b --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-0 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py314_26.7.1-0-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.7.1-0-Linux-aarch64.sh#f1f9342b74c24e320f927f1d315784fa9f8ea3124aab9ead2f188ee9771f4430" "miniconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py314_26.7.1-0-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.7.1-0-Linux-x86_64.sh#f87bfab5ccdcb80894518f868c80cc321ac1ebc7d18d07792d59895bbc30b313" "miniconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py314_26.7.1-0-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.7.1-0-MacOSX-arm64.sh#933860616eff59f858f94ee086be1a645b8d1710cf449a078d22de14e8755468" "miniconda" verify_py314 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-1 b/plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-1 new file mode 100644 index 0000000000..670bfa6f34 --- /dev/null +++ b/plugins/python-build/share/python-build/miniconda3-3.14-26.7.1-1 @@ -0,0 +1,20 @@ +export CONDA_PLUGINS_AUTO_ACCEPT_TOS=true +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniconda3-py314_26.7.1-1-Linux-aarch64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.7.1-1-Linux-aarch64.sh#e31545afd7462d3c9c33b154c7a101c5acb5e01b69380b6994651aead6942893" "miniconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Miniconda3-py314_26.7.1-1-Linux-x86_64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.7.1-1-Linux-x86_64.sh#e8b25b92b262499141c5bd57a98d3c008024185fa951494b9cd9b6d94e72338b" "miniconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Miniconda3-py314_26.7.1-1-MacOSX-arm64" "https://repo.anaconda.com/miniconda/Miniconda3-py314_26.7.1-1-MacOSX-arm64.sh#9bdf85d31ea3b4b85ef26b2762d68e2d849fdd38b608fb5272127acef802ff75" "miniconda" verify_py314 + ;; +* ) + { 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 diff --git a/plugins/python-build/share/python-build/miniforge3-26.5.3-0 b/plugins/python-build/share/python-build/miniforge3-26.5.3-0 new file mode 100644 index 0000000000..8a5af59378 --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.5.3-0 @@ -0,0 +1,25 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.5.3-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.5.3-0/Miniforge3-26.5.3-0-Linux-aarch64.sh#0391e42075a7632e9665d6e728387ee6b905f6c3e704d3513e1c1133d0d69b89" "miniconda" verify_py314 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.5.3-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.5.3-0/Miniforge3-26.5.3-0-Linux-ppc64le.sh#a77ac9485c7ae7287b2c8eaa38caf44d661509eb0134643f10a7e816ce414ac2" "miniconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.5.3-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.5.3-0/Miniforge3-26.5.3-0-Linux-x86_64.sh#14db468222ad564658656f769506056209b6dc375f5e7dfd31eb5ebbf08fa529" "miniconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.5.3-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.5.3-0/Miniforge3-26.5.3-0-MacOSX-arm64.sh#0d765919d3ccfd1f89147aa1cf8133bfc55b3a3c13f5bacdcc091c33132fddd2" "miniconda" verify_py314 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.5.3-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.5.3-0/Miniforge3-26.5.3-0-MacOSX-x86_64.sh#0266a7bfeb12165286133145717bef0d88070f1b76710beb6a62fec4e88371a1" "miniconda" verify_py314 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac diff --git a/plugins/python-build/share/python-build/miniforge3-26.7.2-0 b/plugins/python-build/share/python-build/miniforge3-26.7.2-0 new file mode 100644 index 0000000000..63ea7c6ebf --- /dev/null +++ b/plugins/python-build/share/python-build/miniforge3-26.7.2-0 @@ -0,0 +1,28 @@ +case "$(anaconda_architecture 2>/dev/null || true)" in +"Linux-aarch64" ) + install_script "Miniforge3-26.7.2-0-Linux-aarch64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.7.2-0/Miniforge3-26.7.2-0-Linux-aarch64.sh#89b786c8d2c8b0fda7553914c1314ae4ddaa094503802f279377b19ac4463cb2" "miniconda" verify_py314 + ;; +"Linux-ppc64le" ) + install_script "Miniforge3-26.7.2-0-Linux-ppc64le.sh" "https://github.com/conda-forge/miniforge/releases/download/26.7.2-0/Miniforge3-26.7.2-0-Linux-ppc64le.sh#466e6af6766fe3d9aea18a7a6431d480f3a64995d53e8cbd438ca5a064b2c945" "miniconda" verify_py314 + ;; +"Linux-riscv64" ) + install_script "Miniforge3-26.7.2-0-Linux-riscv64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.7.2-0/Miniforge3-26.7.2-0-Linux-riscv64.sh#a82efd1197849cd6755c080bd883ed376eda09080f52bfe9051912afdd05c281" "miniconda" verify_py314 + ;; +"Linux-x86_64" ) + install_script "Miniforge3-26.7.2-0-Linux-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.7.2-0/Miniforge3-26.7.2-0-Linux-x86_64.sh#281b0ac7d550802efc81af633225a5e6116d29ae72f3ab4eae7168c3931a4c05" "miniconda" verify_py314 + ;; +"MacOSX-arm64" ) + install_script "Miniforge3-26.7.2-0-MacOSX-arm64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.7.2-0/Miniforge3-26.7.2-0-MacOSX-arm64.sh#d70bfa2e97afcda96927c9b9ca0e2316cb7750e4ce651c94388267cbe9588711" "miniconda" verify_py314 + ;; +"MacOSX-x86_64" ) + install_script "Miniforge3-26.7.2-0-MacOSX-x86_64.sh" "https://github.com/conda-forge/miniforge/releases/download/26.7.2-0/Miniforge3-26.7.2-0-MacOSX-x86_64.sh#b00e7798658f92721a3ae2f6b9832695ffc6baf07758894d726268055359f6c5" "miniconda" verify_py314 + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": The binary distribution of Miniforge is not available for $(anaconda_architecture 2>/dev/null || true)." + echo + } >&2 + exit 1 + ;; +esac From c3550235e4d91796fcfed61260c8f147a0de7c0a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 17 Sep 2026 08:23:37 +0300 Subject: [PATCH 1271/1324] README: document XCode 27 downstream patches --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index df75c01a1a..298f6c0441 100644 --- a/README.md +++ b/README.md @@ -309,6 +309,7 @@ Though we don't actively maintain those patches, since existing releases never c it's safe to assume that they will continue working until there are further incompatible changes in a later version of those environments. +* *3.10.x-3.14.x* : XCode 27 * *3.7.8-3.7.15, 3.8.4-3.8.12, 3.9.0-3.9.7* : XCode 13.3 * *3.5.10, 3.6.15* : MacOS 11+ and XCode 13.3 * *2.7.18* : MacOS 10.15+ and Apple Silicon From 3787bacc9188d76ba7ca24c23e26afb1a841a543 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 17 Sep 2026 10:06:03 +0300 Subject: [PATCH 1272/1324] 2.8.6 --- CHANGELOG.md | 16 ++++++++++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e7b884865..fe15eccb00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,21 @@ # Version History + +## Release v2.8.6 +* Update graalpy URLs for 25.3.4.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3533 +* python-build: add build prerequisite installer by @macayu17 in https://github.com/pyenv/pyenv/pull/3532 +* docs: Add link to list of available Python distributions by @michaelbnewman in https://github.com/pyenv/pyenv/pull/3535 +* Incorporate the `pyenv-link` plugin by @macayu17 in https://github.com/pyenv/pyenv/pull/3538 +* CI: publish Ubuntu binary packages by @macayu17 in https://github.com/pyenv/pyenv/pull/3539 +* python-build: honor explicitly configured OpenSSL on macOS by @aprylewu in https://github.com/pyenv/pyenv/pull/3541 +* pyenv-binary: use xz compression for archives by @macayu17 in https://github.com/pyenv/pyenv/pull/3543 +* Backport XCode 27 support to 3.14 by @native-api in https://github.com/pyenv/pyenv/pull/3545 +* Backport XCode 27 support to 3.13; add missing 3.13.11t by @native-api in https://github.com/pyenv/pyenv/pull/3546 +* Backport XCode 27 support to 3.12 by @native-api in https://github.com/pyenv/pyenv/pull/3547 +* Backport XCode 27 support to 3.11 by @native-api in https://github.com/pyenv/pyenv/pull/3548 +* Backport XCode 27 support to 3.10 by @native-api in https://github.com/pyenv/pyenv/pull/3549 +* Add miniconda3 26.7.1-0, 26.7.1-1 and miniforge3 26.5.3-0, 26.7.2-0 by @13steinj in https://github.com/pyenv/pyenv/pull/3550 + ## Release v2.8.5 * pyenv-binary: record direct system dependencies in Linux/FreeBSD by @macayu17 in https://github.com/pyenv/pyenv/pull/3520 * tests: Fix "cd: null directory" in OpenSUSE by @native-api in https://github.com/pyenv/pyenv/pull/3524 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 1798a05c28..069b231ee3 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.5" +version="2.8.6" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index b6188c586a..27042acaaa 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.5" +PYTHON_BUILD_VERSION="2.8.6" OLDIFS="$IFS" From 7db7714ff7c6859654584b90e1b9a188559fc45b Mon Sep 17 00:00:00 2001 From: Mingyang Wu Date: Mon, 21 Sep 2026 18:02:14 +0800 Subject: [PATCH 1273/1324] Fix rehash repair of individually corrupted shims (#3540) --- libexec/pyenv-rehash | 47 ++++++++----- test/rehash.bats | 164 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+), 16 deletions(-) diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index 19d9427415..cbc26597e2 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -80,10 +80,8 @@ fi unset tested_for_other_write_errors # The prototype shim file is a script that re-execs itself, passing -# its filename and any arguments to `pyenv exec`. This file is -# hard-linked for every executable and then removed. The linking -# technique is fast, uses less disk space than unique files, and also -# serves as a locking mechanism. +# its filename and any arguments to `pyenv exec`. This file is copied +# for every executable and then removed. It also serves as a lock. create_prototype_shim() { cat > "$PROTOTYPE_SHIM_PATH" </dev/null 2>&1; then - rm -f "$SHIM_PATH"/* +# Install a shim when it is first registered, replacing an existing copy +# if it was overwritten. Hooks can then customize it without a later +# registration overwriting their changes. +install_shims() { + local shim file shim_contents + # Count bytes consistently across Bash versions, including multibyte paths. + local LC_ALL=C + for shim; do + file="${SHIM_PATH}/${shim}" + if [[ -f "$file" || ( -L "$file" && ! -e "$file" ) ]]; then + shim_contents= + # Read with a builtin to avoid a subprocess per shim. A successful + # read means a NUL or extra character was found. Limit the read in + # case a large file was accidentally written over a shim. + if IFS= read -r -d '' -n "$PROTOTYPE_SHIM_READ_SIZE" shim_contents 2>/dev/null < "$file" || [[ $shim_contents != "$PROTOTYPE_SHIM_CONTENTS" ]]; then + rm -f "$file" + fi fi - break + [ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file" done } @@ -132,7 +142,10 @@ if ((${BASH_VERSINFO[0]} > 3)); then # Registers the name of a shim to be generated. register_shim() { - registered_shims["$1"]=1 + if [[ ! ${registered_shims["$1"]} ]]; then + install_shims "$1" + registered_shims["$1"]=1 + fi } # Install all shims registered via `make_shims` or `register_shim` directly. @@ -162,7 +175,10 @@ else # Same for bash < 4. registered_shims=" " register_shim() { - registered_shims="${registered_shims}${1} " + if [[ "$registered_shims" != *" ${1} "* ]]; then + install_shims "$1" + registered_shims="${registered_shims}${1} " + fi } install_registered_shims() { @@ -188,7 +204,6 @@ shopt -s nullglob # Create the prototype shim, then register shims for all known # executables. create_prototype_shim -remove_outdated_shims # shellcheck disable=SC2046 make_shims $(pyenv-versions --executables) diff --git a/test/rehash.bats b/test/rehash.bats index 3d31d5ebce..56651250d7 100755 --- a/test/rehash.bats +++ b/test/rehash.bats @@ -88,6 +88,170 @@ OUT assert [ ! -e "${PYENV_ROOT}/shims/oldshim1" ] } +@test "repairs an overwritten shim after the first shim" { + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + printf '2\n' > "${PYENV_ROOT}/shims/python" + + run pyenv-rehash + assert_success "" + assert cmp "${PYENV_ROOT}/shims/aaa" "${PYENV_ROOT}/shims/python" + + PYENV_VERSION=3.4 run "${PYENV_ROOT}/shims/python" + assert_success +} + +@test "repairs truncated shim contents and preserves trailing newlines" { + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + + for contents in empty newline nul; do + case "$contents" in + empty) : > "${PYENV_ROOT}/shims/python" ;; + newline) printf '\n' >> "${PYENV_ROOT}/shims/python" ;; + nul) printf '\0' >> "${PYENV_ROOT}/shims/python" ;; + esac + run pyenv-rehash + assert_success "" + assert cmp "${PYENV_ROOT}/shims/aaa" "${PYENV_ROOT}/shims/python" + done +} + +@test "leaves valid shims unchanged when repairing another shim" { + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + touch -t 200001010000.00 "${PYENV_ROOT}/shims/aaa" + touch -t 200101010000.00 "${PYENV_TEST_DIR}/newer" + printf '2\n' > "${PYENV_ROOT}/shims/python" + + run pyenv-rehash + assert_success "" + assert [ "${PYENV_ROOT}/shims/aaa" -ot "${PYENV_TEST_DIR}/newer" ] + assert cmp "${PYENV_ROOT}/shims/aaa" "${PYENV_ROOT}/shims/python" +} + +@test "repairs an unreadable shim without additional output" { + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + chmod -r "${PYENV_ROOT}/shims/python" + skip_if_nonposix_security -r "${PYENV_ROOT}/shims/python" + + run pyenv-rehash + assert_success "" + assert cmp "${PYENV_ROOT}/shims/aaa" "${PYENV_ROOT}/shims/python" +} + +@test "does not read registered directories as shims" { + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + rm "${PYENV_ROOT}/shims/python" + mkdir "${PYENV_ROOT}/shims/python" + + run pyenv-rehash + assert_success "" + assert [ -d "${PYENV_ROOT}/shims/python" ] +} + +@test "leaves valid shims unchanged with a multibyte root path" { + [[ $(LC_ALL=en_US.UTF-8 locale charmap 2>/dev/null) == UTF-8 ]] || skip "-- UTF-8 locale not installed" + export LC_ALL=en_US.UTF-8 + export PYENV_ROOT="${PYENV_ROOT}/pyenv 路径" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + touch -t 200001010000.00 "${PYENV_ROOT}/shims/python" + touch -t 200101010000.00 "${PYENV_TEST_DIR}/newer" + + run pyenv-rehash + assert_success "" + assert [ "${PYENV_ROOT}/shims/python" -ot "${PYENV_TEST_DIR}/newer" ] +} + +@test "repairs explicitly registered hidden shims and preserves other dotfiles" { + create_hook rehash hidden.bash <<'SH' +register_shim .foo +register_shim python +SH + pyenv-rehash + printf 'keep\n' > "${PYENV_ROOT}/shims/.keep" + printf '2\n' > "${PYENV_ROOT}/shims/.foo" + + run pyenv-rehash + assert_success "" + assert cmp "${PYENV_ROOT}/shims/python" "${PYENV_ROOT}/shims/.foo" + run cat "${PYENV_ROOT}/shims/.keep" + assert_success "keep" + assert [ ! -e "${PYENV_ROOT}/shims/.pyenv-shim" ] +} + +@test "replaces a dangling registered symlink without writing through it" { + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "python" + pyenv-rehash + rm "${PYENV_ROOT}/shims/python" + ln -s "${PYENV_TEST_DIR}/missing/python" "${PYENV_ROOT}/shims/python" + + run pyenv-rehash + assert_success "" + assert [ ! -L "${PYENV_ROOT}/shims/python" ] + assert [ ! -e "${PYENV_TEST_DIR}/missing/python" ] + assert cmp "${PYENV_ROOT}/shims/aaa" "${PYENV_ROOT}/shims/python" +} + +@test "preserves sourceable shims from the built-in rehash hook" { + export PYENV_HOOK_PATH="${_PYENV_INSTALL_PREFIX}/pyenv.d" + export PYENV_VERSION=3.4 + create_alt_executable_in_version "3.4" "aaa" + create_alt_executable_in_version "3.4" "activate" <<'SH' +export PYENV_ACTIVATED=yes +SH + create_alt_executable_in_version "3.4" "activate.fish" + create_alt_executable_in_version "3.4" "gettext.sh" + + pyenv-rehash + run pyenv-rehash + assert_success "" + assert cmp "${PYENV_ROOT}/shims/activate" "${PYENV_ROOT}/shims/activate.fish" + assert cmp "${PYENV_ROOT}/shims/activate" "${PYENV_ROOT}/shims/gettext.sh" + + run bash -c '. "$PYENV_ROOT/shims/activate"; echo "$PYENV_ACTIVATED"' + assert_success "yes" +} + +@test "does not overwrite hook customizations when a shim is registered again" { + create_alt_executable_in_version "3.4" "python" + create_hook rehash custom.bash <<'SH' +register_shim .foo +printf 'custom\n' > "$SHIM_PATH/.foo" +printf 'custom\n' > "$SHIM_PATH/python" +register_shim python +register_shim .foo +SH + + run pyenv-rehash + assert_success "" + run cat "${PYENV_ROOT}/shims/python" + assert_success "custom" + run cat "${PYENV_ROOT}/shims/.foo" + assert_success "custom" +} + +@test "repairs existing shims before rehash hooks invoke them" { + create_alt_executable_in_version "3.4" "python" "echo works" + pyenv-rehash + printf '2\n' > "${PYENV_ROOT}/shims/python" + create_hook rehash invoke.bash <<'SH' +PYENV_VERSION=3.4 "$SHIM_PATH/python" +SH + + run pyenv-rehash + assert_success "works" +} + @test "binary install locations containing spaces" { create_alt_executable_in_version "dirname1 p247" "python" create_alt_executable_in_version "dirname2 preview1" "py.test" From 249f8d888e98e6d18af434a98eaa2c9102a8bcf4 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Tue, 22 Sep 2026 03:42:32 +0530 Subject: [PATCH 1274/1324] CI: publish Apple Silicon macOS binaries (#3556) * pyenv-binary: relocate macOS text paths * CI: publish Apple Silicon macOS binaries * pyenv-binary: preserve unrelated bytecode * CI: stabilize macOS binary package names --- .github/workflows/publish_binary.yml | 24 ++++++++++-- .../libexec/pyenv-binary-relocate | 16 ++++++++ plugins/pyenv-binary/test/relocate.bats | 38 ++++++++++++++++--- 3 files changed, 69 insertions(+), 9 deletions(-) diff --git a/.github/workflows/publish_binary.yml b/.github/workflows/publish_binary.yml index c3ce5fbbde..d958c21731 100644 --- a/.github/workflows/publish_binary.yml +++ b/.github/workflows/publish_binary.yml @@ -7,26 +7,42 @@ on: description: A CPython version accepted by `pyenv install` required: true type: string + platform: + description: Platform to build on + required: true + type: choice + default: ubuntu-24.04 + options: + - ubuntu-24.04 + - macos-15 permissions: contents: read jobs: - publish_ubuntu: - runs-on: ubuntu-24.04 + publish: + runs-on: ${{ inputs.platform }} env: PYENV_ROOT: ${{ github.workspace }} VERSION: ${{ inputs.version }} steps: - uses: actions/checkout@v7 - - name: Install build prerequisites + - name: Install Ubuntu build prerequisites + if: runner.os == 'Linux' run: ./bin/pyenv install-prerequisites + - name: Install macOS build prerequisites + if: runner.os == 'macOS' + run: brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd - name: Build package env: PYTHON_CONFIGURE_OPTS: --enable-optimizations run: | VERSION="${VERSION%%:*}" - entry="$(./bin/pyenv binary package-name "$VERSION")" + if [ "$RUNNER_OS" = "macOS" ]; then + entry="${VERSION}-${{ inputs.platform }}-$(uname -m)" + else + entry="$(./bin/pyenv binary package-name "$VERSION")" + fi echo "entry=$entry" >> "$GITHUB_ENV" mkdir dist cd dist diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-relocate b/plugins/pyenv-binary/libexec/pyenv-binary-relocate index d73f682dbf..1620f325d3 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-relocate +++ b/plugins/pyenv-binary/libexec/pyenv-binary-relocate @@ -100,6 +100,22 @@ if [ "$(uname -s)" = "Darwin" ]; then while IFS= read -r so; do relocate_macho "$so" '@loader_path/../..' done < <(find "$prefix" -type f -path '*/lib/python*/lib-dynload/*.so') + + # CPython records its installation prefix in generated scripts and build + # metadata. Bytecode can also retain source filenames from the build tree. + build_prefix_pattern="$(printf '%s\n' "$build_prefix" | sed 's/[][\\.^$*|]/\\&/g')" + prefix_replacement="$(printf '%s\n' "$prefix" | sed 's/[\\&|]/\\&/g')" + while IFS= read -r file; do + if LC_ALL=C grep -IqF "$build_prefix" "$file"; then + sed -i.bak "s|${build_prefix_pattern}|${prefix_replacement}|g" "$file" + rm -f "${file}.bak" + fi + done < <(find "$prefix" -type f ! -name '*.pyc' ! -name '*.pyo') + while IFS= read -r file; do + if LC_ALL=C grep -aqF "$build_prefix" "$file"; then + rm -f "$file" + fi + done < <(find "$prefix" -type f \( -name '*.pyc' -o -name '*.pyo' \)) exit fi diff --git a/plugins/pyenv-binary/test/relocate.bats b/plugins/pyenv-binary/test/relocate.bats index e14700b745..fa1bcb4fba 100644 --- a/plugins/pyenv-binary/test/relocate.bats +++ b/plugins/pyenv-binary/test/relocate.bats @@ -23,11 +23,25 @@ create_interpreter() { } create_macos_tree() { - local prefix="${BATS_TEST_TMPDIR}/prefix" + local prefix="${BATS_TEST_TMPDIR}/prefix&target" local lib="${prefix}/lib/python3.12" - mkdir -p "${prefix}/bin" "${lib}/lib-dynload" "${lib}/site-packages/numpy" + local old="/build prefix/3.12.7" + mkdir -p \ + "${prefix}/bin" \ + "${prefix}/lib/pkgconfig" \ + "${lib}/__pycache__" \ + "${lib}/lib-dynload" \ + "${lib}/site-packages/numpy" printf '#!/bin/sh\n' > "${prefix}/bin/python3.12" chmod +x "${prefix}/bin/python3.12" + printf '#!%s/bin/python3.12\n' "$old" > "${prefix}/bin/pip3" + chmod +x "${prefix}/bin/pip3" + printf 'prefix=%s\n' "$old" > "${prefix}/lib/pkgconfig/python-3.12.pc" + printf 'prefix=/build prefix/3x12x7\n' > "${prefix}/lib/pkgconfig/unrelated.pc" + printf 'prefix = "%s"\n' "$old" > "${lib}/_sysconfigdata.py" + printf '\0bytecode:%s/module.py\n' "$old" > "${lib}/__pycache__/module.cpython-312.pyc" + printf '\0bytecode:%s/legacy.py\n' "$old" > "${lib}/legacy.pyo" + printf '\0sourceless bytecode\n' > "${lib}/sourceless.pyc" touch "${prefix}/lib/libpython3.12.dylib" touch "${lib}/lib-dynload/_ssl.cpython-312-darwin.so" touch "${lib}/site-packages/numpy/_multiarray.so" @@ -45,6 +59,9 @@ case "$1" in -L ) echo "${file}:" case "$file" in + */bin/pip3 ) + exit 1 + ;; */bin/python3.12 ) if [ -n "$OTOOL_RELOCATED" ]; then echo " @rpath/libpython3.12.dylib (compatibility version 3.12.0, current version 3.12.0)" @@ -179,7 +196,7 @@ STUB } @test "relocates macOS load commands without changing unrelated entries" { - local prefix="${BATS_TEST_TMPDIR}/prefix" + local prefix="${BATS_TEST_TMPDIR}/prefix&target" local old="/build prefix/3.12.7" local lib="${prefix}/lib/python3.12" create_macos_tree @@ -197,10 +214,21 @@ STUB EOF run grep -F "${lib}/site-packages/numpy/_multiarray.so" "${BATS_TEST_TMPDIR}/otool.log" assert_failure + run head -n 1 "${prefix}/bin/pip3" + assert_output "#!${prefix}/bin/python3.12" + run cat "${prefix}/lib/pkgconfig/python-3.12.pc" + assert_output "prefix=${prefix}" + run cat "${prefix}/lib/pkgconfig/unrelated.pc" + assert_output "prefix=/build prefix/3x12x7" + run cat "${lib}/_sysconfigdata.py" + assert_output "prefix = \"${prefix}\"" + assert [ ! -e "${lib}/__pycache__/module.cpython-312.pyc" ] + assert [ ! -e "${lib}/legacy.pyo" ] + assert [ -e "${lib}/sourceless.pyc" ] } @test "skips already relocated macOS load commands" { - local prefix="${BATS_TEST_TMPDIR}/prefix" + local prefix="${BATS_TEST_TMPDIR}/prefix&target" create_macos_tree stub_macos_tools export OTOOL_RELOCATED=1 @@ -211,7 +239,7 @@ EOF } @test "fails when install_name_tool cannot modify a selected file" { - local prefix="${BATS_TEST_TMPDIR}/prefix" + local prefix="${BATS_TEST_TMPDIR}/prefix&target" create_macos_tree stub_macos_tools create_path_executable install_name_tool 'exit 1' From 4eea9b784875126dc606361583f440fc64f1fef9 Mon Sep 17 00:00:00 2001 From: David Lawson Date: Wed, 23 Sep 2026 07:49:52 +0100 Subject: [PATCH 1275/1324] python-build: create PEP 394 symlinks for Pyston (#3557) * Consolidate build_package_pyston2_2 into build_package_pyston There's no longer a difference --------- Co-authored-by: Claude Fable 5.1 Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 29 +++++++------------ .../share/python-build/pyston-2.2 | 2 +- .../share/python-build/pyston-2.3 | 2 +- .../share/python-build/pyston-2.3.1 | 2 +- .../share/python-build/pyston-2.3.2 | 2 +- .../share/python-build/pyston-2.3.3 | 4 +-- .../share/python-build/pyston-2.3.4 | 4 +-- .../share/python-build/pyston-2.3.5 | 4 +-- plugins/python-build/test/pyenv_ext.bats | 21 ++++++++++++++ 9 files changed, 41 insertions(+), 29 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 27042acaaa..5cc272eaf8 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -998,27 +998,18 @@ build_package_jython_builder() { ( cd "dist" && build_package_jython ) } -build_package_pyston2_2() { - # currently supported version 2.2 and 2.3 - build_package_copy - mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib" - local bin - shopt -s nullglob - for bin in "bin/"*; do - if [ -f "${bin}" ] && [ -x "${bin}" ] && [ ! -L "${bin}" ]; then - case "${bin##*/}" in - "pyston"* ) - ( cd "${PREFIX_PATH}/bin" && ln -fs "${bin##*/}" "python" ) - ;; - esac - fi - done - shopt -u nullglob -} - build_package_pyston() { - # currently supported version 2.3.1v2 and higher build_package_copy + + # Pyston tarballs provide an executable with a version-specific naming scheme + # and `pyston` and `pyston3` symlinks to it. + # Add the `python', `pythonX' and `pythonX.Y' symlinks as per PEP 394. + local real_interpreter version_suffix + real_interpreter=$(resolve_link "${PREFIX_PATH}/bin/pyston" || echo pyston) + version_suffix=$("${PREFIX_PATH}/bin/pyston" -c 'import sys; print("%d.%d" % sys.version_info[:2])' 2>&4) + for name in python "python${version_suffix%.*}" "python${version_suffix}"; do + ln -fs "${real_interpreter}" "${PREFIX_PATH}/bin/$name" + done } build_package_ironpython() { diff --git a/plugins/python-build/share/python-build/pyston-2.2 b/plugins/python-build/share/python-build/pyston-2.2 index 31a5c15ad3..d79a6eb3f5 100644 --- a/plugins/python-build/share/python-build/pyston-2.2 +++ b/plugins/python-build/share/python-build/pyston-2.2 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" "pyston2_2" verify_py38 get_pip + install_package "pyston_2.2" "https://github.com/pyston/pyston/releases/download/pyston_2.2/pyston_2.2_portable.tar.gz#d113cc4d1f6821c0f117f7a84978823d8ac751d7970fa7841eb994663ec5a59f" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3 b/plugins/python-build/share/python-build/pyston-2.3 index 25d5b41317..c53a9b3e15 100644 --- a/plugins/python-build/share/python-build/pyston-2.3 +++ b/plugins/python-build/share/python-build/pyston-2.3 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" "pyston2_2" verify_py38 get_pip + install_package "pyston_2.3" "https://github.com/pyston/pyston/releases/download/v2.3/pyston_2.3_portable-v2.tar.gz#90185e29e4a1a19562c095f2bb4e81a5d0715150fa10eca363ec1188b5ba7ee7" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3.1 b/plugins/python-build/share/python-build/pyston-2.3.1 index c6a4435050..96b170a6bd 100644 --- a/plugins/python-build/share/python-build/pyston-2.3.1 +++ b/plugins/python-build/share/python-build/pyston-2.3.1 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3.1" "https://github.com/pyston/pyston/releases/download/pyston_2.3.1/pyston_2.3.1_portable_v2.tar.gz#4e16df1eaf5f226c0629f2db1e63033454c94cb9e29f50154177819662df5b15" "pyston" verify_py38 get_pip + install_package "pyston_2.3.1" "https://github.com/pyston/pyston/releases/download/pyston_2.3.1/pyston_2.3.1_portable_v2.tar.gz#4e16df1eaf5f226c0629f2db1e63033454c94cb9e29f50154177819662df5b15" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3.2 b/plugins/python-build/share/python-build/pyston-2.3.2 index 38717b5ca9..ea66221ae3 100644 --- a/plugins/python-build/share/python-build/pyston-2.3.2 +++ b/plugins/python-build/share/python-build/pyston-2.3.2 @@ -6,7 +6,7 @@ echo case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3.2" "https://github.com/pyston/pyston/releases/download/pyston_2.3.2/pyston_2.3.2_portable.tar.gz#80e71dd2db504e09951ee835e04c9e1183c79412da9aa11d98a6d3f44b95bec1" "pyston" verify_py38 get_pip + install_package "pyston_2.3.2" "https://github.com/pyston/pyston/releases/download/pyston_2.3.2/pyston_2.3.2_portable.tar.gz#80e71dd2db504e09951ee835e04c9e1183c79412da9aa11d98a6d3f44b95bec1" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3.3 b/plugins/python-build/share/python-build/pyston-2.3.3 index ac20542a42..5fd6f6d82b 100644 --- a/plugins/python-build/share/python-build/pyston-2.3.3 +++ b/plugins/python-build/share/python-build/pyston-2.3.3 @@ -1,9 +1,9 @@ case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_2.3.3_portable_amd64" "https://github.com/pyston/pyston/releases/download/pyston_2.3.3/pyston_2.3.3_portable_amd64.tar.gz#7a38e2bd2fed38e6daba4d513bae32af0d5ba6185cadf37cb1af6bcc4de0cb57" "pyston" verify_py38 get_pip + install_package "pyston_2.3.3_portable_amd64" "https://github.com/pyston/pyston/releases/download/pyston_2.3.3/pyston_2.3.3_portable_amd64.tar.gz#7a38e2bd2fed38e6daba4d513bae32af0d5ba6185cadf37cb1af6bcc4de0cb57" pyston verify_py38 get_pip ;; "linux-aarch64" ) - install_package "pyston_2.3.3_portable_arm64" "https://github.com/pyston/pyston/releases/download/pyston_2.3.3/pyston_2.3.3_portable_arm64.tar.gz#f93f55b59120f576e5755bd8f86fa38361a30ca5389dbadc68450051ee2dccb1" "pyston" verify_py38 get_pip + install_package "pyston_2.3.3_portable_arm64" "https://github.com/pyston/pyston/releases/download/pyston_2.3.3/pyston_2.3.3_portable_arm64.tar.gz#f93f55b59120f576e5755bd8f86fa38361a30ca5389dbadc68450051ee2dccb1" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3.4 b/plugins/python-build/share/python-build/pyston-2.3.4 index e61eb09f42..67afd255f0 100644 --- a/plugins/python-build/share/python-build/pyston-2.3.4 +++ b/plugins/python-build/share/python-build/pyston-2.3.4 @@ -7,10 +7,10 @@ DOWNLOAD='https://github.com/pyston/pyston/releases/download' case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_${VER}_portable_amd64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_amd64.tar.gz#f8274bdead746f839791d785a5edad8a0b8723016b38751321c8eaf16ebd22db" "pyston" verify_py38 get_pip + install_package "pyston_${VER}_portable_amd64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_amd64.tar.gz#f8274bdead746f839791d785a5edad8a0b8723016b38751321c8eaf16ebd22db" pyston verify_py38 get_pip ;; "linux-aarch64" ) - install_package "pyston_${VER}_portable_arm64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_arm64.tar.gz#0733d120562c73f129af5633f8ea7faad3fdcab931f2234c02cd81f21eada2cd" "pyston" verify_py38 get_pip + install_package "pyston_${VER}_portable_arm64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_arm64.tar.gz#0733d120562c73f129af5633f8ea7faad3fdcab931f2234c02cd81f21eada2cd" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pyston-2.3.5 b/plugins/python-build/share/python-build/pyston-2.3.5 index caaac6b557..43302f3330 100644 --- a/plugins/python-build/share/python-build/pyston-2.3.5 +++ b/plugins/python-build/share/python-build/pyston-2.3.5 @@ -7,10 +7,10 @@ DOWNLOAD='https://github.com/pyston/pyston/releases/download' case "$(pyston_architecture 2>/dev/null || true)" in "linux64" ) - install_package "pyston_${VER}_portable_amd64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_amd64.tar.gz#c71c711d60a9c18f243a9e30fd35e0818674ae96f534c67c27b0cdfbc9132ef8" "pyston" verify_py38 get_pip + install_package "pyston_${VER}_portable_amd64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_amd64.tar.gz#c71c711d60a9c18f243a9e30fd35e0818674ae96f534c67c27b0cdfbc9132ef8" pyston verify_py38 get_pip ;; "linux-aarch64" ) - install_package "pyston_${VER}_portable_arm64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_arm64.tar.gz#c578cb806c62d9dca8728f190a87e172305bd80887e206df42c4c5658ab469c1" "pyston" verify_py38 get_pip + install_package "pyston_${VER}_portable_arm64" "${DOWNLOAD}/pyston_${VER}/pyston_${VER}_portable_arm64.tar.gz#c578cb806c62d9dca8728f190a87e172305bd80887e206df42c4c5658ab469c1" pyston verify_py38 get_pip ;; * ) { echo diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 09924fc68e..2792716411 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -243,6 +243,27 @@ OUT [[ "$(resolve_link "${INSTALL_ROOT}/bin/python-config")" == "python3.4-config" ]] } +@test "pyston: create python* symlinks" { + mkdir -p "${BATS_TEST_TMPDIR}/pyston_2.3.5/bin" + cd "${BATS_TEST_TMPDIR}/pyston_2.3.5" + executable bin/real_interpreter_name < Date: Wed, 23 Sep 2026 08:50:21 +0200 Subject: [PATCH 1276/1324] Add GraalPy 3.13 25.4.4 (#3558) --- .../share/python-build/graalpy3.13-25.4.4 | 50 +++++++++++++++++++ .../python-build/graalpy3.13-community-25.4.4 | 45 +++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 plugins/python-build/share/python-build/graalpy3.13-25.4.4 create mode 100644 plugins/python-build/share/python-build/graalpy3.13-community-25.4.4 diff --git a/plugins/python-build/share/python-build/graalpy3.13-25.4.4 b/plugins/python-build/share/python-build/graalpy3.13-25.4.4 new file mode 100644 index 0000000000..f81352b5b8 --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.13-25.4.4 @@ -0,0 +1,50 @@ +# Copyright (c) 2026, 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='25.4.4' +RELEASE_TAG='graal-25.4.4' + +colorize 1 "GraalPy 23.1 and later installed by python-build use the faster Oracle GraalVM distribution" && echo +colorize 1 "Oracle GraalVM uses the GFTC license, which is free for development and production use, see https://medium.com/graalvm/161527df3d76" && echo +colorize 1 "The GraalVM Community Edition variant of GraalPy is also available, under the name graalpy3.13-community-${VERSION}" && echo + + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="8b72e6e513d06976e5c8e051228d69d541fde76d05d5f907eaef4bb31db83af4" + ;; +"linux-aarch64" ) + checksum="1323dc064583efd1d6b696d3a9f9e4b1ff8facd0f7cc2b69fe0a0bf7ef06ea1a" + ;; +"macos-aarch64" ) + checksum="aacd819b5c3b6889b6a6275d8009ec1e8e3fe27cf7b77265710a1c9ea931bedd" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +install_package "graalpy3.13-${VERSION}" "https://github.com/oracle/graalpython/releases/download/${RELEASE_TAG}/graalpy3.13-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip diff --git a/plugins/python-build/share/python-build/graalpy3.13-community-25.4.4 b/plugins/python-build/share/python-build/graalpy3.13-community-25.4.4 new file mode 100644 index 0000000000..11d4dfe64f --- /dev/null +++ b/plugins/python-build/share/python-build/graalpy3.13-community-25.4.4 @@ -0,0 +1,45 @@ +# Copyright (c) 2026, 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='25.4.4' +RELEASE_TAG='graal-25.4.4' + +graalpy_arch="$(graalpy_architecture 2>/dev/null || true)" + +case "$graalpy_arch" in +"linux-amd64" ) + checksum="a038c8fa650f3bd17046f3cb8609b271e07b0e21fdb8527f10726beee442b93d" + ;; +"linux-aarch64" ) + checksum="5d0fab1a2f541b387dbf3fbf6b123a5836a0bc99937076f34aeb29282ee246c1" + ;; +"macos-aarch64" ) + checksum="dce08327e8ccb48423cc50f72a5137d4ff8c9da8ff7319525a69e2e68ac637cd" + ;; +* ) + { echo + colorize 1 "ERROR" + echo ": No binary distribution of GraalPy is available for $(uname -sm)." + echo + } >&2 + exit 1 + ;; +esac + +install_package "graalpy3.13-community-${VERSION}" "https://github.com/oracle/graalpython/releases/download/${RELEASE_TAG}/graalpy3.13-community-${VERSION}-${graalpy_arch}.tar.gz#${checksum}" "copy" ensurepip From 26370b7f24053edb37da70de942a18a650f0b0c1 Mon Sep 17 00:00:00 2001 From: native-api Date: Wed, 23 Sep 2026 13:34:23 +0300 Subject: [PATCH 1277/1324] python-build: create PEP 394 symlinks for PyPy (#3559) --- plugins/python-build/bin/python-build | 30 +++++++++++------------- plugins/python-build/test/pyenv_ext.bats | 20 ++++++++++++++++ 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 5cc272eaf8..34e6ab282f 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1000,15 +1000,20 @@ build_package_jython_builder() { build_package_pyston() { build_package_copy - # Pyston tarballs provide an executable with a version-specific naming scheme # and `pyston` and `pyston3` symlinks to it. - # Add the `python', `pythonX' and `pythonX.Y' symlinks as per PEP 394. + build_package_make_python_symlinks pyston +} + +# Add missing `python', `pythonX' and `pythonX.Y' symlinks as per PEP 394. +build_package_make_python_symlinks() { + seeder="${1:?}" local real_interpreter version_suffix - real_interpreter=$(resolve_link "${PREFIX_PATH}/bin/pyston" || echo pyston) - version_suffix=$("${PREFIX_PATH}/bin/pyston" -c 'import sys; print("%d.%d" % sys.version_info[:2])' 2>&4) + real_interpreter=$(resolve_link "${PREFIX_PATH}/bin/$seeder" || echo $seeder) + # Use syntax accepted in both Py2 and Py3. Even though current Py2 holdouts (e.g. PyPy) support e.g. print() + version_suffix=$("${PREFIX_PATH}/bin/$seeder" -c 'import sys; sys.stdout.write("%d.%d\n" % sys.version_info[:2])' 2>&4) for name in python "python${version_suffix%.*}" "python${version_suffix}"; do - ln -fs "${real_interpreter}" "${PREFIX_PATH}/bin/$name" + [[ -e "${PREFIX_PATH}/bin/$name" ]] || ln -fs "${real_interpreter}" "${PREFIX_PATH}/bin/$name" done } @@ -1110,22 +1115,15 @@ build_package_graalpython() { build_package_pypy() { build_package_copy - mkdir -p "${PREFIX_PATH}/bin" "${PREFIX_PATH}/lib" local bin shopt -s nullglob - for bin in "bin/"*; do - if [ -f "${bin}" ] && [ -x "${bin}" ] && [ ! -L "${bin}" ]; then - case "${bin##*/}" in - "libpypy"* ) - ( cd "${PREFIX_PATH}/lib" && ln -fs "../bin/${bin##*/}" "${bin##*/}" ) - ;; - "pypy"* ) - ( cd "${PREFIX_PATH}/bin" && ln -fs "${bin##*/}" "python" ) - ;; - esac + for bin in "bin/libpypy"*; do + if [[ -f "${bin}" && -x "${bin}" && ! -L "${bin}" ]]; then + ln -fs "../bin/${bin##*/}" "${PREFIX_PATH}/lib/${bin##*/}" fi done shopt -u nullglob + build_package_make_python_symlinks "pypy" } build_package_pypy_builder() { diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 2792716411..1a9c94bf51 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -264,6 +264,26 @@ OUT done } +@test "pypy: create python* symlinks" { + mkdir -p "${BATS_TEST_TMPDIR}/pypy/bin" + cd "${BATS_TEST_TMPDIR}/pypy" + executable bin/real_interpreter_name < Date: Thu, 24 Sep 2026 00:12:25 +0300 Subject: [PATCH 1278/1324] install-prerequisites: add an option for optional dependencies (#3560) --- .../bin/pyenv-install-prerequisites | 29 +++++++++++++---- .../test/install-prerequisites.bats | 32 ++++++++++++++----- 2 files changed, 47 insertions(+), 14 deletions(-) diff --git a/plugins/python-build/bin/pyenv-install-prerequisites b/plugins/python-build/bin/pyenv-install-prerequisites index c56bbd98fa..53d25ad4eb 100755 --- a/plugins/python-build/bin/pyenv-install-prerequisites +++ b/plugins/python-build/bin/pyenv-install-prerequisites @@ -2,13 +2,16 @@ # # Summary: Install Python build prerequisites on Debian-based systems # -# Usage: pyenv install-prerequisites +# Usage: pyenv install-prerequisites [-a|--all] +# +# -a/--all Also install optional dependencies (for rarely used modules) # set -e [ -n "$PYENV_DEBUG" ] && set -x # Provide pyenv completions if [ "$1" = "--complete" ]; then + echo --all exit fi @@ -17,11 +20,22 @@ usage() { [ -z "$1" ] || exit "$1" } -if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then - usage 0 -fi +all= -[ "$#" -eq 0 ] || usage 1 >&2 +while (($#)); do + case "$1" in + -h|--help) + usage 0 + ;; + -a|--all) + all=1 + ;; + *) + usage 1 >&2 + ;; + esac + shift +done if ! command -v apt-get >/dev/null; then echo "pyenv: installing build prerequisites is not supported on this system" >&2 @@ -33,6 +47,9 @@ prerequisites=( libsqlite3-dev curl git llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev libzstd-dev ) +optional=( + libgdbm-dev +) if [ "$(id -u)" -eq 0 ]; then apt_get=(apt-get) @@ -44,4 +61,4 @@ else fi "${apt_get[@]}" update -q -"${apt_get[@]}" install -yq "${prerequisites[@]}" +"${apt_get[@]}" install -yq "${prerequisites[@]}" ${all:+"${optional[@]}"} diff --git a/plugins/python-build/test/install-prerequisites.bats b/plugins/python-build/test/install-prerequisites.bats index 2630c238e8..8cbe2205d5 100644 --- a/plugins/python-build/test/install-prerequisites.bats +++ b/plugins/python-build/test/install-prerequisites.bats @@ -4,18 +4,21 @@ load test_helper _setup() { prerequisites="make build-essential libssl-dev zlib1g-dev libbz2-dev \ -libreadline-dev libsqlite3-dev curl git llvm libncurses5-dev \ -libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev \ -liblzma-dev libzstd-dev" + libreadline-dev libsqlite3-dev curl git llvm libncurses5-dev \ + libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev \ + liblzma-dev libzstd-dev" + + optional="libgdbm-dev" } -@test "completion does not install packages" { +@test "completions" { stub apt-get - PATH="${BATS_TEST_DIRNAME}/../../../libexec:$PATH" \ - run pyenv completions install-prerequisites + run pyenv-install-prerequisites --complete - assert_success "--help" + assert_success < Date: Thu, 24 Sep 2026 07:23:52 +0300 Subject: [PATCH 1279/1324] python-build: create pypy* symlinks for PyPy (#3562) Source and some older versions builds do not create them --- plugins/python-build/bin/python-build | 37 ++++++++++++++++++------ plugins/python-build/test/pyenv_ext.bats | 9 +++--- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 34e6ab282f..7a6dce8fd8 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1002,18 +1002,24 @@ build_package_pyston() { build_package_copy # Pyston tarballs provide an executable with a version-specific naming scheme # and `pyston` and `pyston3` symlinks to it. - build_package_make_python_symlinks pyston + make_python_symlinks pyston } # Add missing `python', `pythonX' and `pythonX.Y' symlinks as per PEP 394. -build_package_make_python_symlinks() { - seeder="${1:?}" - local real_interpreter version_suffix - real_interpreter=$(resolve_link "${PREFIX_PATH}/bin/$seeder" || echo $seeder) +make_python_symlinks() { + local seeder_basename version_suffix real_interpreter + local -a interpreter_names + seeder_basename="${1:?}"; shift + (($#)) && interpreter_names=("$@") || interpreter_names=(python) + + local real_interpreter + real_interpreter=$(resolve_link "${PREFIX_PATH}/bin/$seeder_basename" || echo $seeder_basename) # Use syntax accepted in both Py2 and Py3. Even though current Py2 holdouts (e.g. PyPy) support e.g. print() - version_suffix=$("${PREFIX_PATH}/bin/$seeder" -c 'import sys; sys.stdout.write("%d.%d\n" % sys.version_info[:2])' 2>&4) - for name in python "python${version_suffix%.*}" "python${version_suffix}"; do - [[ -e "${PREFIX_PATH}/bin/$name" ]] || ln -fs "${real_interpreter}" "${PREFIX_PATH}/bin/$name" + version_suffix=$("${PREFIX_PATH}/bin/$seeder_basename" -c 'import sys; sys.stdout.write("%d.%d\n" % sys.version_info[:2])') + for interpreter_name in "${interpreter_names[@]}"; do + for name in "$interpreter_name" "$interpreter_name${version_suffix%.*}" "$interpreter_name${version_suffix}"; do + [[ -e "${PREFIX_PATH}/bin/$name" ]] || ln -fs "${real_interpreter}" "${PREFIX_PATH}/bin/$name" + done done } @@ -1122,8 +1128,21 @@ build_package_pypy() { ln -fs "../bin/${bin##*/}" "${PREFIX_PATH}/lib/${bin##*/}" fi done + + # PyPy source builds may create only a pypy* executable with a version-sepecific name + local seeder= seeder_candidate + for seeder_candidate in "${PREFIX_PATH}/bin/"pypy*; do + if [[ -f $seeder_candidate && -x $seeder_candidate ]]; then + seeder="${seeder_candidate##*/}" + break + fi + done shopt -u nullglob - build_package_make_python_symlinks "pypy" + [[ -n $seeder ]] || { + echo "python-build: Cannot find a valid PyPy executable in \`${PREFIX_PATH}/bin'" >&4 + exit 1 + } + make_python_symlinks "$seeder" pypy python } build_package_pypy_builder() { diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 1a9c94bf51..4d5b18717e 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -264,14 +264,13 @@ OUT done } -@test "pypy: create python* symlinks" { +@test "pypy: create pypy* and python* symlinks" { mkdir -p "${BATS_TEST_TMPDIR}/pypy/bin" cd "${BATS_TEST_TMPDIR}/pypy" - executable bin/real_interpreter_name < Date: Mon, 21 Sep 2026 11:51:00 +0100 Subject: [PATCH 1280/1324] Add PyPy v7.3.23 --- .../share/python-build/pypy2.7-7.3.23 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.23-src | 14 ++++ .../share/python-build/pypy3.11-7.3.23 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-7.3.23-src | 14 ++++ 4 files changed, 182 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.23 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.23-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.23 create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.23-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.23 b/plugins/python-build/share/python-build/pypy2.7-7.3.23 new file mode 100644 index 0000000000..999c40c9e9 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.23 @@ -0,0 +1,77 @@ +VERSION='7.3.23' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=b0bec20c16b6ab2bd46bd4f5d6049b6070a22a53eaed437ee9ac36d842ceda74 +linux32_hash=fa6499281775ec22f4742e9dd7b31c22b8fc6a700c1cf50aebc7ef24f61461c5 +linux64_hash=7833be48244a6f4aa0720c6b98f151428291a52697da849ef6b3ca7d5bf45b96 +osarm64_hash=f83d8fce9695f598dc55187c0f6c06c367dbf76d288d2bca7dbf040e4be15f37 +osx64_hash=edbddb678c00f29c2361dbe6c6ea634f5d62e6854a775a9209c6b789bb0dc00b + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.23-src b/plugins/python-build/share/python-build/pypy2.7-7.3.23-src new file mode 100644 index 0000000000..6dc2b01694 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.23-src @@ -0,0 +1,14 @@ +VERSION='7.3.23' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=7aa8eaf414d25f916fe426365404759c56aa28aea6190e65967c4a45f64dc899 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.23 b/plugins/python-build/share/python-build/pypy3.11-7.3.23 new file mode 100644 index 0000000000..5c76e45de2 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.23 @@ -0,0 +1,77 @@ +VERSION='7.3.23' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=5433ac0ad526aeb35025ef8509bed65cd62ea35cb9e21ac649c69a5eff4eecb6 +linux32_hash=c7e2ffb173dcadbe4708a2e606e0b705474c1c33f25a09a4084f265d538172e4 +linux64_hash=16f9f56e82d1f4ec95a324c1a8cacfd78afc7f0656c0a809a18725ef4391453a +osarm64_hash=4747b3aceba4c1c6104cddc0fe5ea302101d32955f0957347b9ecc4fbd7aed05 +osx64_hash=c95363c4e87235d11a6cec8128239c291b1eb67a752778fbcfe029a71da82b5e + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.23-src b/plugins/python-build/share/python-build/pypy3.11-7.3.23-src new file mode 100644 index 0000000000..a668eb0973 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.23-src @@ -0,0 +1,14 @@ +VERSION='7.3.23' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=f15c9c41e03f3f7ecc25228c6c67427b8918f21ef2d694215994b1fade20f69b + +### 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' From 08021a03abb4e41e61c13f30971f06b4a240bc23 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 21 Sep 2026 23:32:12 +0300 Subject: [PATCH 1281/1324] python-build: Support automatically picking PyPy as bootstrap version --- plugins/python-build/bin/pyenv-install | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 4a5e71c17d..2fd268fdc8 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -261,7 +261,7 @@ for i in "${!DEFINITIONS[@]}"; do PYENV_BOOTSTRAP_VERSION="${PYENV_RPYTHON_VERSION}" else for version in $(pyenv-versions --bare | sort -r); do - if [[ "${version}" == "2.7"* ]]; then + if [[ "${version}" =~ ^(2\.7|pypy2\.7) ]]; then PYENV_BOOTSTRAP_VERSION="$version" break fi @@ -275,7 +275,7 @@ for i in "${!DEFINITIONS[@]}"; do fi done else - echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source." >&2 + echo "pyenv-install: $VERSION_NAME: PyPy requires Python 2.7 to build from source. You can specify the version to use by setting the PYENV_BOOTSTRAP_VERSION environment variable." >&2 exit 1 fi ;; From a55c9df84d62709a5c51d30da90f7d0023a451ca Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 24 Sep 2026 07:32:56 +0300 Subject: [PATCH 1282/1324] CI: install gdbm as part of prerequisites --- .github/actions/build-python/action.yml | 4 ++-- .github/workflows/modified_scripts_build.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/actions/build-python/action.yml b/.github/actions/build-python/action.yml index 194c49941e..3866656e90 100644 --- a/.github/actions/build-python/action.yml +++ b/.github/actions/build-python/action.yml @@ -20,12 +20,12 @@ runs: shell: bash run: | #prerequisites - brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd + brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd gdbm - if: runner.os == 'Linux' shell: bash run: | #prerequisites - pyenv install-prerequisites + pyenv install-prerequisites --all - shell: bash run: | #build diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 29b30c944a..0c36be626b 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -108,7 +108,7 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | #prerequisites - brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd + brew install openssl readline sqlite3 xz tcl-tk@8 libb2 zstd gdbm if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV @@ -222,7 +222,7 @@ jobs: echo "$PYENV_ROOT/shims:$PYENV_ROOT/bin" >> $GITHUB_PATH - run: | #prerequisites - pyenv install-prerequisites + pyenv install-prerequisites --all if [[ "${{ matrix.python-version }}" =~ pypy.*-(src|dev) ]]; then export PYENV_BOOTSTRAP_VERSION=pypy2.7-7 echo "PYENV_BOOTSTRAP_VERSION=$PYENV_BOOTSTRAP_VERSION" >> $GITHUB_ENV From 5434a7e3e9a40dce5f16a3959925ddb6af066d35 Mon Sep 17 00:00:00 2001 From: exurd <7785022+exurd@users.noreply.github.com> Date: Fri, 25 Sep 2026 00:19:33 +0100 Subject: [PATCH 1283/1324] Add PyPy v7.3.21 (#3564) --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- .../share/python-build/pypy2.7-7.3.21 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-7.3.21-src | 14 ++++ .../share/python-build/pypy3.11-7.3.21 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-7.3.21-src | 14 ++++ 4 files changed, 182 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.21 create mode 100644 plugins/python-build/share/python-build/pypy2.7-7.3.21-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.21 create mode 100644 plugins/python-build/share/python-build/pypy3.11-7.3.21-src diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.21 b/plugins/python-build/share/python-build/pypy2.7-7.3.21 new file mode 100644 index 0000000000..1b009241f9 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.21 @@ -0,0 +1,77 @@ +VERSION='7.3.21' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=8aaed1e612e6874235ee9d5bd545a8dcc7b86c867d305351df37969390b0c47b +linux32_hash=14cb624e60b3012b4e5605571ab1477cea732a04e1c1385cc492d99f427a477f +linux64_hash=d560f4043180b0df5826396af17d060bd731e4fee34755167040924ece876f3e +osarm64_hash=7f69e5241ba7d10015e12d5b6dc1bb65458fcdc118385eee1ae0dde4e7f75776 +osx64_hash=e73061b21fc56f16a4fa7a4a24ffe0304c3df95b249852ea56e5b39110abdd70 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.21-src b/plugins/python-build/share/python-build/pypy2.7-7.3.21-src new file mode 100644 index 0000000000..40a01ecc85 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.21-src @@ -0,0 +1,14 @@ +VERSION='7.3.21' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=23537c62e875ad1a3e675c64d4435eff392ea20843e20d690fd1400b79363d64 + +### 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.21 b/plugins/python-build/share/python-build/pypy3.11-7.3.21 new file mode 100644 index 0000000000..e8fdf2d1b3 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.21 @@ -0,0 +1,77 @@ +VERSION='7.3.21' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=6141f5c64dd96faf87e0a3f7f362521eadd26d5e3f851f90fc386a72208f8c18 +linux32_hash=0c449ff3f20589e331f163807a0200a9bf5dd375c95f513a0f60bf7524795f02 +linux64_hash=43f27af8ee6673932493f2696ab407321cbf79dbed94c03d8b39e603f8f5f765 +osarm64_hash=a43f97ff9f6016aac09ee75eb626d806e8ad865608e7d8bc4d3c2fc37c2b4799 +osx64_hash=60dfb37dda85d548cd6a4d7bdb12ff26e19162042001b741fd9b6a8ecee802a6 + +### 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 + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.21-src b/plugins/python-build/share/python-build/pypy3.11-7.3.21-src new file mode 100644 index 0000000000..e8f67ee325 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.21-src @@ -0,0 +1,14 @@ +VERSION='7.3.21' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=e7c9d8236ef279dba51abb9e691401a6c805bbe3250c6842dc9bac98f8de688a + +### 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' From 3d1dda120be789de6af219ad945c36b2a95e5d4a Mon Sep 17 00:00:00 2001 From: exurd <7785022+exurd@users.noreply.github.com> Date: Fri, 25 Sep 2026 08:13:34 +0100 Subject: [PATCH 1284/1324] python-build: Add `add_pypy.py` for pypy versions (#3566) * python-build: add `add_pypy.py` for pypy versions couldn't help myself ;P python-build; add_pypy.py: ensure ensurepip is correct python-build; add_pypy.py: check file extension python-build; add_pypy.py: update os x version check to 10.15 python-build; add_pypy.py: remove outdated comment python-build; add_pypy.py: cleanup comment * Update add_pypy.py * Remove comments irrelevant to reading the code --- plugins/python-build/scripts/add_pypy.py | 221 +++++++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 plugins/python-build/scripts/add_pypy.py diff --git a/plugins/python-build/scripts/add_pypy.py b/plugins/python-build/scripts/add_pypy.py new file mode 100644 index 0000000000..ff98642329 --- /dev/null +++ b/plugins/python-build/scripts/add_pypy.py @@ -0,0 +1,221 @@ +#!/usr/bin/env python3 +"""Rudimentary script to add PyPY releases automagically. +Requires requests-html. + +Checks the PyPy download archives for new versions, +then writes a build script for any which do not exist locally, +saving it to plugins/python-build/share/python-build. + +Written and tested in *CPython* 3.9.6. PyPy3 compatibility is not +guaranteed, but it should work. +""" +from pathlib import Path +import argparse +import logging +import re +import sys + +from requests_html import HTMLSession + +# https://downloads.python.org/pypy/versions.json doesn't contain +# checksums, so using checksums.html instead. +# More convenient than calculating them from downloads. +PYPY_REPO = "https://downloads.python.org/pypy/" +PYPY_CHECKSUMS = "https://pypy.org/checksums.html" + +here = Path(__file__).resolve() +OUT_DIR: Path = here.parent.parent / "share" / "python-build" + +EXCLUDED_RELEASES = [] # none for now + +# Note: Remember to escape/unescape curly braces when editing the bash script +SCRIPT_BIN = """ +VERSION='{version_pypy}' +PYVER='{version_python}' + +# https://www.pypy.org/checksums.html +aarch64_hash={checksum_aarch64} +linux32_hash={checksum_linux32} +linux64_hash={checksum_linux64} +osarm64_hash={checksum_osarm64} +osx64_hash={checksum_osx64} + +### 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.{file_ext}" + {{ 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 {file_ext} + local pkg="${{ARCH}}" # assume matches + local ext='tar.{file_ext}' + 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.15"; then + hash="${{osx64_hash}}" + pkg='macos_x86_64' + else + err_no_binary "${{ARCH}}, OS X < 10.15" + fi + ;; + * ) + 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}' +""".lstrip() + +SCRIPT_SRC = """ +VERSION='{version_pypy}' +PYVER='{version_python}' + +# https://www.pypy.org/checksums.html +hash={checksum_src} + +### end of manual settings - following lines same for every download + +ver="pypy${{PYVER}}-v${{VERSION}}-src" +url="https://downloads.python.org/pypy/${{ver}}.tar.{file_ext}" + +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}' +""".lstrip() + + +args = None +logger = logging.getLogger(__name__) + + +def main() -> bool: + html_session = HTMLSession() + response = html_session.get(PYPY_CHECKSUMS) + page = response.html + checksum_blocks = page.find("pre.literal-block") + for csum_block in checksum_blocks: + python_version, pypy_version = parse_pypy_ver(csum_block.text) + py_it = f"pypy{python_version}-{pypy_version}" + if py_it not in EXCLUDED_RELEASES: + vbin_path = OUT_DIR.joinpath(py_it) + vsrc_path = OUT_DIR.joinpath(py_it+"-src") + + kwargs = None + for ps in ((vbin_path, SCRIPT_BIN), (vsrc_path, SCRIPT_SRC)): + if not ps[0].is_file(): + kwargs = kwargs or parse_checksums_ext(csum_block.text) + code = ps[1].format( + version_pypy=pypy_version, + version_python=python_version, + ensurepip="ensurepip" if not python_version == "2.7" else "ensurepip_lt21", + **kwargs # which are: + # checksum_aarch64 + # checksum_linux32 + # checksum_linux64 + # checksum_osarm64 + # checksum_osx64 + # checksum_src + # file_ext + ) + if not args.dry_run: + with open(file=ps[0], mode="w", encoding="utf-8") as f: + f.write(code) + f.close() + else: + print(f"---- DRY RUN SCRIPT FOR {ps[0]} ----") + print(code) + + +def parse_pypy_ver(csum_block:str) -> tuple[str,str]: + """Gets the PyPy name from the checksum block.""" + match = re.findall(r"pypy([0-9]\.[0-9]+)\-v([0-9]\.[0-9]\.[0-9]+)", csum_block) + match = set(match) + if len(match) == 1: + return match.pop() + return "" + + +def parse_checksums_ext(csum_block:str) -> dict: + """Gets the checksums and ext for each platform (excluding win64) from the checksum block.""" + chksm_ex = { + r"aarch64": "", + r"linux32": "", + r"linux64": "", + r"macos_arm64": "", + r"macos_x86_64": "", + r"src": "", + } + ext = set() + for ex in chksm_ex: + match = re.findall(r"([a-z0-9]+) pypy[0-9]\.[0-9]+\-v[0-9]\.[0-9]\.[0-9]+-"+ex+r".tar.(gz|bz2)", csum_block) + chksm_ex[ex] = match[0][0] + ext.add(match[0][1]) + # if both gz and bz2, prefer bz2 + ext = ext.pop() if len(ext) == 1 else "bz2" + return { + "checksum_aarch64": chksm_ex["aarch64"], + "checksum_linux32": chksm_ex["linux32"], + "checksum_linux64": chksm_ex["linux64"], + "checksum_osarm64": chksm_ex["macos_arm64"], + "checksum_osx64": chksm_ex["macos_x86_64"], + "checksum_src": chksm_ex["src"], + "file_ext": ext + } + + +if __name__ == "__main__": + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument( + "-d", "--dry-run", action="store_true", + help="Do not write scripts, just report them to stdout", + ) + args = parser.parse_args() + #sys.excepthook seems to have no effect in Github Actions + try: + sys.exit(main()) + except Exception: + logging.exception("Unhandled exception occurred") + sys.exit(2) From 513364609d0e56b919bcc44163614b04fa239621 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Sat, 26 Sep 2026 02:15:13 +0530 Subject: [PATCH 1285/1324] pyenv-binary: install published CPython packages (#3567) --- plugins/pyenv-binary/README.md | 28 +++- .../pyenv-binary/libexec/pyenv-binary-install | 124 +++++++++++++++ .../pyenv-binary/libexec/pyenv-binary-package | 4 +- .../pyenv-binary/libexec/pyenv-binary-save | 19 ++- .../share/pyenv-binary/versions/3.14 | 3 + plugins/pyenv-binary/test/install.bats | 144 ++++++++++++++++++ plugins/pyenv-binary/test/package.bats | 15 ++ plugins/pyenv-binary/test/save.bats | 24 ++- 8 files changed, 351 insertions(+), 10 deletions(-) create mode 100755 plugins/pyenv-binary/libexec/pyenv-binary-install create mode 100644 plugins/pyenv-binary/share/pyenv-binary/versions/3.14 create mode 100644 plugins/pyenv-binary/test/install.bats diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index e88537f471..14004dd558 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -19,6 +19,20 @@ by the `xz` package). ## Commands +### `pyenv binary install ` + +Installs a matching published package from pyenv.github.io under ``. +The command selects by OS, architecture and distribution; on macOS, an archive +built on an older major release can also be used. Available packages and their +definition checksums are recorded in `share/pyenv-binary/versions`. Add an entry +there when publishing a new package. The definition checks its system-library +requirements when an `ldconfig` cache is available; otherwise, it warns and +proceeds. + +```sh +pyenv binary install 3.14.7 +``` + ### `pyenv binary package [-v|--verbose] [:] --archive-base-url ` Installs `` from source under a separate name, packages that install @@ -55,12 +69,13 @@ pyenv binary package-name 3.12.7 # 3.12.7-debian-12-x86_64 ``` -### `pyenv binary save [] [--name ]` +### `pyenv binary save [] [--name ] [--source-version ]` Packs an installed version into `-.tar.xz` (relative paths) and writes `-.meta` describing the build platform (OS, arch, distro and libc version) and the system libraries the build links against. Use -`--name` to set a different base name for both files. +`--name` to set a different base name for both files. `--source-version` records +the source version when the installed version has a different name. ```sh pyenv binary save 3.12.7 ./dist @@ -87,11 +102,12 @@ pyenv binary generate-installer ./dist/3.12.7-linux-x86_64.meta \ pyenv install 3.12.7-linux-x86_64 ``` -### `pyenv binary relocate ` +### `pyenv binary relocate []` Rewrites the rpaths of a Python tree unpacked into `` so the interpreter and its extension modules load the bundled libraries from there rather than from -the path the archive was built at. Uses `patchelf`. The generated definition -calls this; you rarely run it by hand. +the path the archive was built at. Linux and FreeBSD use `patchelf`; macOS +requires the original ``. The generated definition calls this; +you rarely run it by hand. -Relocation is implemented for Linux; macOS is not wired up yet. +Relocation is implemented for Linux, FreeBSD and macOS. diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-install b/plugins/pyenv-binary/libexec/pyenv-binary-install new file mode 100755 index 0000000000..80c73b8748 --- /dev/null +++ b/plugins/pyenv-binary/libexec/pyenv-binary-install @@ -0,0 +1,124 @@ +#!/usr/bin/env bash +# +# Summary: Install a published binary package +# +# Usage: pyenv binary install +# +# Selects a compatible package from pyenv.github.io and installs it under +# . Ordinary `pyenv install' is unchanged. +# +set -e +[ -n "$PYENV_DEBUG" ] && set -x + +if [ "$1" = "--complete" ]; then + exit +fi + +if [ "$#" -ne 1 ]; then + pyenv-help --usage binary-install >&2 + exit 1 +fi + +case "$1" in +*/* | .. | . | *[[:cntrl:]]* ) + echo "pyenv-binary: invalid version name \`$1'" >&2 + exit 1 + ;; +esac + +requested="$1" +os="$(uname -s)" +arch="$(uname -m)" + +case "$os" in +Linux ) + if [ -r /etc/os-release ]; then + distro="$(. /etc/os-release && printf '%s %s' "${ID:-}" "${VERSION_ID:-}")" + elif type -p lsb_release >/dev/null; then + distro="$(lsb_release -si) $(lsb_release -sr)" + fi + distro="$(printf '%s' "$distro" | tr '[:upper:]' '[:lower:]')" + ;; +Darwin ) + distro="macos $(sw_vers -productVersion)" + ;; +esac + +tmpdir="$(mktemp -d)" +trap 'rm -rf "$tmpdir"' EXIT +base_url="https://pyenv.github.io/pythons/binaries" +manifest_dir="$(dirname "${BASH_SOURCE[0]}")/../share/pyenv-binary/versions" +case "$requested" in +*.*.* ) manifests=( "$manifest_dir/${requested%.*}" ) ;; +*.* ) manifests=( "$manifest_dir/$requested" ) ;; +* ) manifests=( "$manifest_dir/$requested".* ) ;; +esac + +matches="$tmpdir/matches" +: > "$matches" +for manifest in "${manifests[@]}"; do + [ -f "$manifest" ] || continue + while IFS=$'\t' read -r source_version name target_os target_arch target_distro sha256; do + case "$source_version" in + "$requested" | "$requested".* ) ;; + * ) continue ;; + esac + [[ "$source_version" =~ ^[0-9]+(\.[0-9]+){1,2}$ ]] || continue + [ "$target_os" = "$os" ] && [ "$target_arch" = "$arch" ] || continue + case "$name" in + "" | . | .. | *[!A-Za-z0-9._-]* ) continue ;; + esac + case "$os" in + Linux ) [ "$(printf '%s' "$target_distro" | tr '[:upper:]' '[:lower:]')" = "$distro" ] || continue ;; + Darwin ) + target_version="${target_distro#macos }" + [ "$target_version" != "$target_distro" ] || continue + host_version="${distro#macos }" + [[ "$target_version" =~ ^[0-9]+(\.[0-9]+){1,2}$ ]] || continue + [[ "$host_version" =~ ^[0-9]+(\.[0-9]+){1,2}$ ]] || continue + IFS=. read -r target_major target_minor target_patch <<< "$target_version" + IFS=. read -r host_major host_minor host_patch <<< "$host_version" + target_patch="${target_patch:-0}" + host_patch="${host_patch:-0}" + [ "$host_major" -ge "$target_major" ] || continue + if [ "$host_major" -eq "$target_major" ]; then + [ "$host_minor" -ge "$target_minor" ] || continue + if [ "$host_minor" -eq "$target_minor" ]; then + [ "$host_patch" -ge "$target_patch" ] || continue + fi + fi + ;; + * ) continue ;; + esac + printf '%s\t%s\t%s\n' "$source_version" "$name" "$sha256" >> "$matches" + done < "$manifest" +done + +selection="$(sort -t. -k1,1nr -k2,2nr -k3,3nr "$matches" | head -n1)" +IFS=$'\t' read -r version entry expected_sha <<< "$selection" +if [ -z "$entry" ]; then + echo "pyenv-binary: no binary available for $requested on $os/$arch" >&2 + exit 1 +fi +if ! [[ "$expected_sha" =~ ^[0-9a-fA-F]{64}$ ]]; then + echo "pyenv-binary: invalid checksum for $entry" >&2 + exit 1 +fi +expected_sha="$(printf '%s' "$expected_sha" | tr '[:upper:]' '[:lower:]')" + +curl -fsSL -o "$tmpdir/$entry" "$base_url/$entry" +if command -v sha256sum >/dev/null 2>&1; then + actual_sha="$(sha256sum "$tmpdir/$entry")"; actual_sha="${actual_sha%% *}" +elif command -v shasum >/dev/null 2>&1; then + actual_sha="$(shasum -a 256 "$tmpdir/$entry")"; actual_sha="${actual_sha%% *}" +elif command -v openssl >/dev/null 2>&1; then + actual_sha="$(openssl dgst -sha256 "$tmpdir/$entry")"; actual_sha="${actual_sha##* }" +else + echo "pyenv-binary: need sha256sum, shasum or openssl to verify $entry" >&2 + exit 1 +fi +if [ "$actual_sha" != "$expected_sha" ]; then + echo "pyenv-binary: checksum mismatch for $entry" >&2 + exit 1 +fi +pyenv-install "$tmpdir/$entry:$version" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package index 77479f2a38..e8b698e170 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -77,7 +77,9 @@ esac # `pyenv install' puts a `:' build under versions/. pyenv-install ${verbose:+--verbose} "$spec" -pyenv-binary-save "$entry" "$PWD" --name "$entry" +source_version="$(pyenv-latest -f -k "${spec%%:*}")" +source_version="${source_version##*/}" +pyenv-binary-save "$entry" "$PWD" --name "$entry" --source-version "$source_version" pyenv-binary-generate-installer "${entry}.meta" \ --archive-url "${archive_base_url%/}/${entry}.tar.xz" -o "$entry" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index 444c02cc72..2793ea2671 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -2,7 +2,7 @@ # # Summary: Save an installed Python version as a relocatable archive # -# Usage: pyenv binary save [] [--name ] +# Usage: pyenv binary save [] [--name ] [--source-version ] # # Packs an installed version into a relocatable .tar.xz (relative paths) and # writes a metadata file listing the build platform and the system libraries @@ -12,6 +12,7 @@ # Where to write the archive and metadata (default: `.'). # --name Use as the archive and metadata base name instead of # -. +# --source-version Record the version used to build a renamed install. # set -e [ -n "$PYENV_DEBUG" ] && set -x @@ -19,18 +20,23 @@ set -e # Provide pyenv completions if [ "$1" = "--complete" ]; then echo --name + echo --source-version exec pyenv-versions --bare fi version="" output_dir="" package_name="" +source_version="" while [ $# -gt 0 ]; do case "$1" in --name ) [ $# -ge 2 ] && [ -n "$2" ] || { echo "pyenv-binary: --name needs a value" >&2; exit 1; } package_name="$2"; shift 2 ;; + --source-version ) + [ $# -ge 2 ] && [ -n "$2" ] && [ "${2#-}" = "$2" ] || { echo "pyenv-binary: --source-version needs a value" >&2; exit 1; } + source_version="$2"; shift 2 ;; -* ) echo "pyenv-binary: unknown option \`$1'" >&2; exit 1 ;; * ) @@ -49,7 +55,7 @@ done output_dir="${output_dir:-$PWD}" if [ -z "$version" ]; then - echo "Usage: pyenv binary save [] [--name ]" >&2 + echo "Usage: pyenv binary save [] [--name ] [--source-version ]" >&2 exit 1 fi @@ -69,6 +75,14 @@ case "$package_name" in ;; esac +source_version="${source_version:-$version}" +case "$source_version" in +*/* | .. | . | *[[:cntrl:]]* ) + echo "pyenv-binary: invalid source version \`${source_version}'" >&2 + exit 1 + ;; +esac + prefix="${PYENV_ROOT}/versions/${version}" if [ ! -d "${prefix}/bin" ]; then echo "pyenv-binary: version \`${version}' is not installed" >&2 @@ -142,6 +156,7 @@ tar -C "$(dirname "$prefix")" -cJf "${output_dir}/${archive}" "$(basename "$pref { echo "# pyenv-binary metadata" echo "version=${version}" + echo "source_version=${source_version}" echo "os=${os}" echo "arch=${arch}" echo "platform=${platform}" diff --git a/plugins/pyenv-binary/share/pyenv-binary/versions/3.14 b/plugins/pyenv-binary/share/pyenv-binary/versions/3.14 new file mode 100644 index 0000000000..bac10ce1b7 --- /dev/null +++ b/plugins/pyenv-binary/share/pyenv-binary/versions/3.14 @@ -0,0 +1,3 @@ +source_version entry os arch distro sha256 +3.14.7 3.14.7-macos-15-arm64 Darwin arm64 macos 15.7.9 8a8ff86b520c3b5da00b49e04a5345b7a28f2f9e8da5a9ae43b8ac309e8f3e55 +3.14.7 3.14.7-ubuntu-24.04-x86_64 Linux x86_64 ubuntu 24.04 e63dbcb981ec9ba83a2bc9b4d8b369620cec4aa45394559d719c5606ee9ff718 diff --git a/plugins/pyenv-binary/test/install.bats b/plugins/pyenv-binary/test/install.bats new file mode 100644 index 0000000000..367e7b4fb8 --- /dev/null +++ b/plugins/pyenv-binary/test/install.bats @@ -0,0 +1,144 @@ +#!/usr/bin/env bats + +load test_helper + +host_distro() { + if [ -r /etc/os-release ]; then + . /etc/os-release + printf '%s %s' "$ID" "$VERSION_ID" | tr '[:upper:]' '[:lower:]' + else + printf '%s %s' "$(lsb_release -si)" "$(lsb_release -sr)" | tr '[:upper:]' '[:lower:]' + fi +} + +use_manifest() { + local plugin="${BATS_TEST_TMPDIR}/plugin" + mkdir -p "$plugin/libexec" "$plugin/share/pyenv-binary/versions" + cp "${BATS_TEST_DIRNAME}/../libexec/pyenv-binary-install" "$plugin/libexec/" + PATH="$plugin/libexec:$PATH" + printf 'source_version\tentry\tos\tarch\tdistro\tsha256\n' > "$plugin/share/pyenv-binary/versions/3.14" + definition_sha="4c4ed1afbfdaa1e4c3bf7bbb82d730cecb7e384da91eea4f3cc093fd545524d6" +} + +stub_downloads() { + create_stub curl <<'STUB' +output="" +while [ "$#" -gt 0 ]; do + case "$1" in + -o ) output="$2"; shift ;; + http* ) url="$1" ;; + esac + shift +done +case "$url" in +*/3.14.7-ubuntu-24.04-x86_64 | */3.14.7-macos-15-arm64 | */3.14.10-ubuntu-24.04-x86_64 ) printf definition > "$output" ;; +* ) exit 1 ;; +esac +STUB +} + +@test "rejects a modified published definition" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' + use_manifest + printf '3.14.7\t3.14.7-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\t%064d\n' \ + "$(host_distro)" 0 >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + stub_downloads + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub pyenv-install 'echo installed' + + run pyenv-binary-install 3.14.7 + assert_failure + [[ "$output" == *'checksum mismatch'* ]] +} + +@test "completion does not offer source-only versions" { + create_stub pyenv-install 'echo 3.14.7' + + run pyenv-binary-install --complete + assert_success "" +} + +@test "installs a matching published binary with an uppercase checksum" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' + use_manifest + local uppercase_sha="$(printf '%s' "$definition_sha" | tr '[:lower:]' '[:upper:]')" + printf '3.14.7\t3.14.7-macos-15-arm64\tDarwin\tarm64\tmacos 15.7.9\t%s\n' \ + "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + printf '3.14.7\t3.14.7-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\t%s\n' \ + "$(host_distro | tr '[:lower:]' '[:upper:]')" "$uppercase_sha" \ + >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + stub_downloads + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub pyenv-install <<'STUB' +definition="${1%:*}" +printf '%s:%s\n' "${definition##*/}" "${1##*:}" +cat "$definition" +STUB + + run pyenv-binary-install 3.14 + assert_success "3.14.7-ubuntu-24.04-x86_64:3.14.7 +definition" +} + +@test "a version prefix selects the latest published binary" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' + use_manifest + printf '3.14.10\t3.14.10-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\t%s\n' \ + "$(host_distro)" "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + printf '3.14.7\t3.14.7-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\t%s\n' \ + "$(host_distro)" "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + stub_downloads + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub pyenv-install 'echo "${1##*:}"' + + run pyenv-binary-install 3.14 + assert_success "3.14.10" +} + +@test "fails when no published binary matches the host" { + use_manifest + printf '3.14.7\t3.14.7-macos-15-arm64\tDarwin\tarm64\tmacos 15.7.9\t%s\n' \ + "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + + run pyenv-binary-install 3.14.7 + assert_failure "pyenv-binary: no binary available for 3.14.7 on Linux/x86_64" +} + +@test "does not select a package for another Linux release" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 22.04;; esac' + use_manifest + local other_release="ubuntu 24.04" + [ "$(host_distro)" = "$other_release" ] && other_release="ubuntu 22.04" + printf '3.14.7\t3.14.7-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\t%s\n' \ + "$other_release" "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + + run pyenv-binary-install 3.14.7 + assert_failure "pyenv-binary: no binary available for 3.14.7 on Linux/x86_64" +} + +@test "uses a macOS binary built on an older release" { + use_manifest + printf '3.14.7\t3.14.7-macos-15-arm64\tDarwin\tarm64\tmacos 15.7.9\t%s\n' \ + "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + stub_downloads + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_stub sw_vers 'echo 26.6.2' + create_stub pyenv-install 'echo "${1##*:}"' + + run pyenv-binary-install 3.14.7 + assert_success "3.14.7" +} + +@test "rejects a macOS binary built on a newer patch release" { + use_manifest + printf '3.14.7\t3.14.7-macos-15-arm64\tDarwin\tarm64\tmacos 15.7.9\t%s\n' \ + "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_stub sw_vers 'echo 15.7.8' + create_stub pyenv-install 'echo installed' + + run pyenv-binary-install 3.14.7 + assert_failure "pyenv-binary: no binary available for 3.14.7 on Darwin/arm64" +} diff --git a/plugins/pyenv-binary/test/package.bats b/plugins/pyenv-binary/test/package.bats index 40e875a98e..46f85a2e43 100644 --- a/plugins/pyenv-binary/test/package.bats +++ b/plugins/pyenv-binary/test/package.bats @@ -68,10 +68,24 @@ pyenv-install --list --bare assert [ -d "${PYENV_ROOT}/versions/3.12.7-debian-12-x86_64" ] assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.tar.xz" ] assert [ -f "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.meta" ] + run grep '^source_version=' "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64.meta" + assert_success "source_version=3.12.7" run grep '^ARCHIVE_URL=' "${BATS_TEST_TMPDIR}/3.12.7-debian-12-x86_64" assert_success "ARCHIVE_URL=http://example.com/binaries/3.12.7-debian-12-x86_64.tar.xz" } +@test "records the definition name when packaging from a file" { + stub_build_environment + cd "${BATS_TEST_TMPDIR}" + printf 'install_package "foo"\n' > custom-python + + run pyenv-binary-package "${BATS_TEST_TMPDIR}/custom-python:custom-build" \ + --archive-base-url http://example.com/binaries + assert_success + run grep '^source_version=' custom-build.meta + assert_success "source_version=custom-python" +} + @test "rejects an entry name containing a slash" { run pyenv-binary-package "3.12.7:foo/bar" --archive-base-url http://x/b assert_failure "pyenv-binary: invalid entry name \`foo/bar'" @@ -84,6 +98,7 @@ pyenv-install --list --bare @test "packages on macOS" { create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' + create_stub pyenv-latest 'echo 3.12.7' create_stub pyenv-install 'echo install' create_stub pyenv-binary-save 'echo save' create_stub pyenv-binary-generate-installer 'echo generate-installer' diff --git a/plugins/pyenv-binary/test/save.bats b/plugins/pyenv-binary/test/save.bats index 62e0fe837a..d9090ec0d9 100644 --- a/plugins/pyenv-binary/test/save.bats +++ b/plugins/pyenv-binary/test/save.bats @@ -12,7 +12,7 @@ platform() { @test "fails with no version given" { run pyenv-binary-save - assert_failure "Usage: pyenv binary save [] [--name ]" + assert_failure "Usage: pyenv binary save [] [--name ] [--source-version ]" } @test "fails for a version that is not installed" { @@ -55,6 +55,28 @@ platform() { assert_success "archive=custom.tar.xz" } +@test "records the source version for a renamed build" { + create_version "3.12.7-ubuntu-24.04-x86_64" + local out="${BATS_TEST_TMPDIR}/dist" + + run pyenv-binary-save "3.12.7-ubuntu-24.04-x86_64" "$out" \ + --name "3.12.7-ubuntu-24.04-x86_64" --source-version "3.12.7" + assert_success + run grep '^source_version=' "${out}/3.12.7-ubuntu-24.04-x86_64.meta" + assert_success "source_version=3.12.7" +} + +@test "rejects an option as the source version" { + run pyenv-binary-save "3.12.7" --source-version --name custom + assert_failure "pyenv-binary: --source-version needs a value" +} + +@test "rejects control characters in the default source version" { + run pyenv-binary-save $'3.12.7\nsource_version=other' + assert_failure + [[ "$output" == "pyenv-binary: invalid source version"* ]] +} + @test "fails when --name has no value" { run pyenv-binary-save "3.12.7" --name assert_failure "pyenv-binary: --name needs a value" From 67dbc6e930a02430798f36599e8236f179538f6f Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 27 Sep 2026 03:39:43 +0300 Subject: [PATCH 1286/1324] stub: support ** to match any number of arguments --- plugins/python-build/test/stubs/stub | 48 ++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/test/stubs/stub b/plugins/python-build/test/stubs/stub index ac3c3df095..5c96a48563 100755 --- a/plugins/python-build/test/stubs/stub +++ b/plugins/python-build/test/stubs/stub @@ -25,6 +25,15 @@ eval "${_STUB_RESULT}"=0 if test -e "${!_STUB_RUN}"; then source "${!_STUB_RUN}"; fi +match_pattern() { + local argument="${1?}" + local pattern="${2:?}" + case "$argument" in + $pattern ) return 0;; + * ) return 1;; + esac +} + # Loop over each line in the plan. index=0 while IFS= read -r line; do @@ -53,14 +62,41 @@ while IFS= read -r line; do # Match the expected argument patterns to actual # arguments. - for (( i=0; i<${#patterns[@]}; i++ )); do + for (( i=0, j=0; i<${#patterns[@]}; i++, j++ )); do pattern="${patterns[$i]}" - argument="${arguments[$i]}" - case "$argument" in - $pattern ) ;; - * ) result=1 ;; - esac + # ** never backtracks to keep things simple -- so a command line + # may fail to match if the next pattern can match multiple times. + # Assuming that we won't have such cases + # since it's mostly intended to locate specific options + # and we do not have repeatable options as of this writing. + if [[ $pattern == "**" ]]; then + if ((i==${#patterns[@]}-1)); then + # no next pattern: ** and all patterns success + break; + fi + next_pattern="${patterns[i+1]}" + for (( fj=j; fj<${#arguments[@]}; fj++ )); do + if match_pattern "${arguments[fj]}" "$next_pattern"; then + # ** matched, the next pattern matched, too + # and they consumed arguments up to fj + i=$((i+1)) + j=$fj + break + fi + done + if ((fj==${#arguments[@]})); then + # next pattern never matched + result=1; break + fi + else + if (( j<${#arguments[@]} )) && \ + match_pattern "${arguments[j]}" "$pattern"; then + continue + else + result=1; break + fi + fi done # If the arguments matched, evaluate the command From 8339b9b033c5dc204ebf0d2db7e20fb4a81725a7 Mon Sep 17 00:00:00 2001 From: Nemanja Mikic Date: Thu, 24 Sep 2026 00:13:48 +0300 Subject: [PATCH 1287/1324] python-build: show download progress in interactive terminals --- Co-authored-by: Ivan Pozdeev Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> --- plugins/python-build/bin/python-build | 70 +++++++++++++++++-- plugins/python-build/test/fetch.bats | 48 +++++++++++++ .../test/fixtures/fake_downloader | 44 ++++++++++++ plugins/python-build/test/test_helper.bash | 13 ++++ 4 files changed, 170 insertions(+), 5 deletions(-) create mode 100755 plugins/python-build/test/fixtures/fake_downloader diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 7a6dce8fd8..25ac01b6f8 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -425,6 +425,18 @@ http_head_aria2c() { aria2c --dry-run --no-conf=true ${ARIA2_OPTS} "$1" >&4 2>&1 } +# Shows interactive output of a program +# while also logging it. +# Usage: +# command 2>&1 | interactive_output; rc=${PIPESTATUS[0]} +interactive_output() { + if [ -n "$VERBOSE" ]; then + cat >> "$LOG_PATH" + else + tee -a "$LOG_PATH" >&3 + fi +} + http_get_aria2c() { # aria2c always treats -o argument as a relative path local out dir_out; @@ -447,7 +459,26 @@ http_get_aria2c() { dir_out="$HOME" fi - if aria2c --allow-overwrite=true --no-conf=true -d "${dir_out}" -o "${out}" ${ARIA2_OPTS} "$1" >&4; then + local aria2c_progress= + # aria2c prints status to stdout rather than stderr. + # As a result, when stdout is redirected, it becomes line-buffered, + # and status messages (which are divided by CRs) are not seen + # until a summary message with some LFs is printed. + # So we have to print summaries often as a crutch. + # But need to make the interval reasonable because each summary is + # several lines long which, made too often, becomes obnoxious. + [ -t 3 ] && aria2c_progress="--summary-interval=5" + local cmd + cmd=(aria2c --allow-overwrite=true --no-conf=true -d "${dir_out}" -o "${out}" ${aria2c_progress} ${ARIA2_OPTS} "$1") + + if [ -t 3 ]; then + "${cmd[@]}" 2>&1 | interactive_output + ret=${PIPESTATUS[0]} + else + "${cmd[@]}" >&4 + ret=$? + fi + if [ "$ret" -eq 0 ]; then [ -n "$2" ] || cat "${dir_out:-.}/${out}" else false @@ -471,7 +502,21 @@ http_get_curl() { local curl_is_snap; if [[ $(command -v curl) == "/snap/"* ]]; then curl_is_snap=1; fi if [[ -n $2 && -n $curl_is_snap ]]; then out="$HOME/$(basename "$2")"; else out="$2"; fi - curl -q -o "${out:--}" -sSLf ${CURL_OPTS} "$1" || return $? + local curl_progress= + if [ -t 3 ]; then + curl_progress="--no-silent" + fi + local cmd + cmd=(curl -q -o "${out:--}" -sSLf ${CURL_OPTS} ${curl_progress} "$1") + if [ -t 3 ]; then + exec 5>&1 + "${cmd[@]}" 3>&1 1>&5 2>&3 3>&- | interactive_output + ret=${PIPESTATUS[0]} + exec 5>&- + [ "$ret" -eq 0 ] || return "$ret" + else + "${cmd[@]}" || return $? + fi if [[ -n $out && -n $curl_is_snap ]]; then mv "$out" "$2"; fi } @@ -480,7 +525,21 @@ http_head_wget() { } http_get_wget() { - wget -nv ${WGET_OPTS} -O "${2:--}" "$1" + local wget_progress="-nv" + if [ -t 3 ]; then + wget_progress="-nv --show-progress --progress=bar:force:noscroll" + fi + local cmd + cmd=(wget ${WGET_OPTS} ${wget_progress} -O "${2:--}" "$1") + if [ -t 3 ]; then + exec 5>&1 + "${cmd[@]}" 3>&1 1>&5 2>&3 3>&- | interactive_output + ret=${PIPESTATUS[0]} + exec 5>&- + return "$ret" + else + "${cmd[@]}" + fi } fetch_tarball() { @@ -1526,7 +1585,7 @@ use_homebrew() { if command -v brew &>/dev/null; then local brew_prefix="$(brew --prefix 2>/dev/null || true)" # /usr/local/lib:/usr/lib is the default library search path - if [[ -n $brew_prefix && ( ( $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ) + if [[ -n $brew_prefix && ( ( $brew_prefix != "/usr" && $brew_prefix != "/usr/local" ) #when -isysroot is passed to Apple CLang, /usr/(local) are excluded from the default search path || ( is_mac && osx_using_default_compiler && $CFLAGS =~ (^|\ )-isysroot\ ) ) ]]; then export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${brew_prefix}/include" @@ -2777,7 +2836,8 @@ else BUILD_PATH="$PYTHON_BUILD_BUILD_PATH" fi -exec 4<> "$LOG_PATH" # open the log file at fd 4 +# Append mode needed to be able to `tee` to it at the same time +exec 4>> "$LOG_PATH" if [ -n "$VERBOSE" ]; then tail -f "$LOG_PATH" & TAIL_PID=$! diff --git a/plugins/python-build/test/fetch.bats b/plugins/python-build/test/fetch.bats index f36df53afa..a2c6f99fcd 100644 --- a/plugins/python-build/test/fetch.bats +++ b/plugins/python-build/test/fetch.bats @@ -8,6 +8,21 @@ _setup() { mkdir -p "${PYTHON_BUILD_BUILD_PATH}" } +check_script_available() { + command -v script >/dev/null || skip "'script' not installed" +} + +run_with_script() { + local command + # `script' outputs CRLF because ttys do so under the hood + # https://unix.stackexchange.com/questions/343324/why-in-the-output-of-script-1-the-newline-is-cr-lf-dos-style + case "$(uname -s)" in + Linux) printf -v command '%q ' "$@"; script -qec "$command" /dev/stdout | tr -d $'\r' ;; + *) script -q /dev/stdout "$@" | tr -d $'\r' ;; + esac &2; "$FIXTURE_ROOT/fake_downloader" "$@"'\'' "$@"' + + run run_with_script python-build "$FIXTURE_ROOT/definitions/without-checksum" "$INSTALL_ROOT" + assert_success + unstub curl + + assert_line download-progress + + run cat "$BATS_TEST_TMPDIR"/python-build.*.log + assert_success + assert_line download-progress +} + @test "using aria2c if available" { export PYTHON_BUILD_ARIA2_OPTS= export -n PYTHON_BUILD_HTTP_CLIENT @@ -33,6 +64,23 @@ OUT unstub aria2c } +@test "interactive aria2c output is emulated by printing summaries" { + check_script_available + export TMPDIR="$BATS_TEST_TMPDIR" + export PYTHON_BUILD_ARIA2_OPTS= + export -n PYTHON_BUILD_HTTP_CLIENT + stub aria2c '** --summary-interval=* ** http://example.com/* : "'"$BASH"'" -ec '\''echo download-progress; "$FIXTURE_ROOT/fake_downloader" aria2c "$@"'\'' "$@"' + + run run_with_script python-build "$FIXTURE_ROOT/definitions/without-checksum" "$INSTALL_ROOT" + assert_success + unstub aria2c + assert_line download-progress + + run cat "$BATS_TEST_TMPDIR"/python-build.*.log + assert_success + assert_line download-progress +} + @test "fetching from git repository" { stub git "clone --depth 1 --branch master http://example.com/packages/package.git package-dev : mkdir package-dev" diff --git a/plugins/python-build/test/fixtures/fake_downloader b/plugins/python-build/test/fixtures/fake_downloader new file mode 100755 index 0000000000..96d7550d38 --- /dev/null +++ b/plugins/python-build/test/fixtures/fake_downloader @@ -0,0 +1,44 @@ +#!/usr/bin/env bash +set -euo pipefail +aria2c= +wget= +src= +dest= +dir_= + +case "$1" in + aria2c) + aria2c=1;; + wget) + wget=1;; +esac +while (($#)); do + case "$1" in + -o) + if [[ -z $wget ]]; then + dest="$2" + shift + fi + ;; + -O) + if [[ -n $wget ]]; then + dest="$2" + shift + fi + ;; + -d) + if [[ -n $aria2c ]]; then + dir_="$2/" + shift + fi + ;; + -*) + ;; + *) + src="$FIXTURE_ROOT/${1##*/}" + ;; + esac + shift +done +cp "$src" "${dir_}${dest}" + diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index 5b36e7e92b..1bd66897ed 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -138,6 +138,19 @@ assert_output_contains() { } } +assert_line() { + if [ "$1" -ge 0 ] 2>/dev/null; then + assert_equal "$2" "${lines[$1]}" + else + local line + for line in "${lines[@]}"; do + if [ "$line" = "$1" ]; then return 0; fi + done + flunk "expected line \`$1'" $'\n'\ + "output: $output" + fi +} + # Output a modified PATH that ensures that the given executable is not present, # but in which system utils necessary for pyenv operation are still available. path_without() { From ab74141ab4bcd34aa9b11f363dd8ad4f6fc01cd2 Mon Sep 17 00:00:00 2001 From: exurd <7785022+exurd@users.noreply.github.com> Date: Sun, 27 Sep 2026 10:11:20 +0100 Subject: [PATCH 1288/1324] Fix minimum macOS version check for PyPy v7.3.8+ (#3570) * Switch pypy*-7.3.8-aarch64 to -portable Regular version is no longer available for download --------- Co-authored-by: Ivan Pozdeev --- plugins/python-build/share/python-build/pypy2.7-7.3.10 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.11 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.12 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.13 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.14 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.15 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.16 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.17 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.18 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.19 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.20 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.21 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.22 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.23 | 5 +++-- plugins/python-build/share/python-build/pypy2.7-7.3.8 | 9 +++++---- plugins/python-build/share/python-build/pypy2.7-7.3.9 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.12 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.13 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.14 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.15 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.16 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.17 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.18 | 5 +++-- plugins/python-build/share/python-build/pypy3.10-7.3.19 | 5 +++-- plugins/python-build/share/python-build/pypy3.11-7.3.18 | 5 +++-- plugins/python-build/share/python-build/pypy3.11-7.3.19 | 5 +++-- plugins/python-build/share/python-build/pypy3.11-7.3.20 | 5 +++-- plugins/python-build/share/python-build/pypy3.11-7.3.21 | 5 +++-- plugins/python-build/share/python-build/pypy3.11-7.3.22 | 5 +++-- plugins/python-build/share/python-build/pypy3.11-7.3.23 | 5 +++-- plugins/python-build/share/python-build/pypy3.7-7.3.8 | 9 +++++---- plugins/python-build/share/python-build/pypy3.7-7.3.9 | 5 +++-- plugins/python-build/share/python-build/pypy3.8-7.3.10 | 5 +++-- plugins/python-build/share/python-build/pypy3.8-7.3.11 | 5 +++-- plugins/python-build/share/python-build/pypy3.8-7.3.8 | 9 +++++---- plugins/python-build/share/python-build/pypy3.8-7.3.9 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.10 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.11 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.12 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.13 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.14 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.15 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.16 | 5 +++-- plugins/python-build/share/python-build/pypy3.9-7.3.8 | 9 +++++---- plugins/python-build/share/python-build/pypy3.9-7.3.9 | 5 +++-- 45 files changed, 143 insertions(+), 98 deletions(-) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.10 b/plugins/python-build/share/python-build/pypy2.7-7.3.10 index 378ccd2cb0..5dc53c036d 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.10 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.10 @@ -1,5 +1,6 @@ VERSION='7.3.10' PYVER='2.7' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=274342f0e75e99d60ba7a0cfb0e13792e7664163e01450d2f7f2f7825603a0ae @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.11 b/plugins/python-build/share/python-build/pypy2.7-7.3.11 index b46c2dfa78..c4383c95da 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.11 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.11 @@ -1,5 +1,6 @@ VERSION='7.3.11' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=ea924da1defe9325ef760e288b04f984614e405580f5321eb6a5c8f539bd415a @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.12 b/plugins/python-build/share/python-build/pypy2.7-7.3.12 index 930fd6bf54..b7a3988de9 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.12 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.12 @@ -1,5 +1,6 @@ VERSION='7.3.12' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=e04dcb6286a7b4724ec3f0e50d3cc1ba8583301dd1658c06d7f37599e4201c59 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.13 b/plugins/python-build/share/python-build/pypy2.7-7.3.13 index 0239066bb5..5f636b99bc 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.13 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.13 @@ -1,5 +1,6 @@ VERSION='7.3.13' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=f1e20f833cc86a097c1f1318069fc17d01c3988678c1438fe27ed567fcb5cfd0 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.14 b/plugins/python-build/share/python-build/pypy2.7-7.3.14 index e7af9283ad..9152db557c 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.14 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.14 @@ -1,5 +1,6 @@ VERSION='7.3.14' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=98468f4cc704a2821401afdd001ebddd367e594e05a70c7767fb86f1364fb21a @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.15 b/plugins/python-build/share/python-build/pypy2.7-7.3.15 index 6e146671eb..13f79bf73d 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.15 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.15 @@ -1,5 +1,6 @@ VERSION='7.3.15' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=31b41fca7280636d7818713b7a0fab8f34ece9c82cc88e51d305d43b3e6306d6 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.16 b/plugins/python-build/share/python-build/pypy2.7-7.3.16 index b77482f2e7..13768e3ce4 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.16 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.16 @@ -1,5 +1,6 @@ VERSION='7.3.16' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=be44e65dd8c00d2388b2580dbe2af6a5179f951a8f4979efc74360f92f3c7e96 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.17 b/plugins/python-build/share/python-build/pypy2.7-7.3.17 index 54138c49b5..0a31c16ab3 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.17 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.17 @@ -1,5 +1,6 @@ VERSION='7.3.17' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=a8df5ce1650f4756933f8780870c91a0a40e7c9870d74629bf241392bcb5c2e3 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.18 b/plugins/python-build/share/python-build/pypy2.7-7.3.18 index c95bee625b..26de6c26c2 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.18 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.18 @@ -1,5 +1,6 @@ VERSION='7.3.18' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=d647cad5be915df65f44277fd051c8d52e708d22838b5cb21b2de033530acc80 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.19 b/plugins/python-build/share/python-build/pypy2.7-7.3.19 index 9bbba97f02..ed570b6add 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.19 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.19 @@ -1,5 +1,6 @@ VERSION='7.3.19' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=fe89d4fd4af13f76dfe7315975003518cf176520e3ccec1544a88d174f50910e @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.20 b/plugins/python-build/share/python-build/pypy2.7-7.3.20 index 4e1d62fc80..e9914d9823 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.20 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.20 @@ -1,5 +1,6 @@ VERSION='7.3.20' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=f22a1be607deeaa4f9be6bc63aae09fe4fb5b990d6a23aa4e7c5960dc5d93c96 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.21 b/plugins/python-build/share/python-build/pypy2.7-7.3.21 index 1b009241f9..2d14db99fc 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.21 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.21 @@ -1,5 +1,6 @@ VERSION='7.3.21' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=8aaed1e612e6874235ee9d5bd545a8dcc7b86c867d305351df37969390b0c47b @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.22 b/plugins/python-build/share/python-build/pypy2.7-7.3.22 index fd0dc19eb3..6fd1d29baf 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.22 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.22 @@ -1,5 +1,6 @@ VERSION='7.3.22' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=49829ef97a36d50870b0a4a7d6d67c4817d98a0bbd936e7a86ac6ef615b07205 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.23 b/plugins/python-build/share/python-build/pypy2.7-7.3.23 index 999c40c9e9..eee100c714 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.23 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.23 @@ -1,5 +1,6 @@ VERSION='7.3.23' PYVER='2.7' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=b0bec20c16b6ab2bd46bd4f5d6049b6070a22a53eaed437ee9ac36d842ceda74 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.8 b/plugins/python-build/share/python-build/pypy2.7-7.3.8 index ca2b4efcf6..914080ab76 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.8 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.8 @@ -1,8 +1,9 @@ VERSION='7.3.8' PYVER='2.7' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html -aarch64_hash=ca1f8d3146c83002ee97615906b0930e821297dcce3063b5b28933a0690ef298 +aarch64_hash=b5edfc995d83feea8b4c8aeffccb89753b4b182f076126550bd07cc35faa6208 linux32_hash=7c84f173bbcd73d0eb10909259d11b5cc253d4c6ea4492e6da8f2532df9b3da5 linux64_hash=1f2e84fb539ffce233c34769d2f11647955f894be091e85419e05f48011e8940 osx64_hash=e5c1ff39ad9916ea23e3deb8012fe42367b6b19284cf13b1a1ea2b2f53a43add @@ -28,7 +29,7 @@ function pypy_pkg_data { case "${pkg}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + url="${baseurl}-aarch64-portable.tar.bz2" # diff url ;; 'linux' ) hash="${linux32_hash}" @@ -39,12 +40,12 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else { echo colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < ${MIN_OSX_VERSION}." echo "try '${basesrc}' to build from source." echo } >&2 diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.9 b/plugins/python-build/share/python-build/pypy2.7-7.3.9 index 4606967626..74bde08551 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.9 +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.9 @@ -1,5 +1,6 @@ VERSION='7.3.9' PYVER='2.7' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=aff4e4dbab53448f662cd01acb2251571d60f836d2f48382a7d8da54ca5b3442 @@ -48,10 +49,10 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.12 b/plugins/python-build/share/python-build/pypy3.10-7.3.12 index 24128b7f7a..bda962af7f 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.12 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.12 @@ -1,5 +1,6 @@ VERSION='7.3.12' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=26208b5a134d9860a08f74cce60960005758e82dc5f0e3566a48ed863a1f16a1 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.13 b/plugins/python-build/share/python-build/pypy3.10-7.3.13 index 1690b6eef7..627df97ed9 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.13 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.13 @@ -1,5 +1,6 @@ VERSION='7.3.13' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=ac476f01c9653358404f2e4b52f62307b2f64ccdb8c96dadcbfe355824d81a63 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.14 b/plugins/python-build/share/python-build/pypy3.10-7.3.14 index 1446657623..6a508a8684 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.14 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.14 @@ -1,5 +1,6 @@ VERSION='7.3.14' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=fbef65dfc69dcd6006d843553d268b331f1b13dfc3938492bd35f0f477b5bcf4 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.15 b/plugins/python-build/share/python-build/pypy3.10-7.3.15 index e7e49cf9c2..3c856cfe8d 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.15 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.15 @@ -1,5 +1,6 @@ VERSION='7.3.15' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=52146fccaf64e87e71d178dda8de63c01577ec3923073dc69e1519622bcacb74 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.16 b/plugins/python-build/share/python-build/pypy3.10-7.3.16 index 4f7085e38c..f0ecc58925 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.16 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.16 @@ -1,5 +1,6 @@ VERSION='7.3.16' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=fc720999bc5050e1d3706b3b6445e695cf42bfc71ebc7c88ed6bb88828b1d385 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.17 b/plugins/python-build/share/python-build/pypy3.10-7.3.17 index 44cdf64d13..038164be5e 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.17 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.17 @@ -1,5 +1,6 @@ VERSION='7.3.17' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=53b6e5907df869c49e4eae7aca09fba16d150741097efb245892c1477d2395f2 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.18 b/plugins/python-build/share/python-build/pypy3.10-7.3.18 index 81805cbdda..934988a879 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.18 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.18 @@ -1,5 +1,6 @@ VERSION='7.3.18' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=e843aecd48eb06b625af67891b99e3440313cfb64c6851fc37df1e5572c8ef9e @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.19 b/plugins/python-build/share/python-build/pypy3.10-7.3.19 index 13df1c38fc..b11599c47d 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.19 +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.19 @@ -1,5 +1,6 @@ VERSION='7.3.19' PYVER='3.10' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=af27a589178f11198e2244ab65ca510630ba97c131d7ccc4021eb5bc58de7f57 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.18 b/plugins/python-build/share/python-build/pypy3.11-7.3.18 index cd4daa8c77..788adf62ef 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.18 +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.18 @@ -1,5 +1,6 @@ VERSION='7.3.18' PYVER='3.11' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=95bc3021cb9be2aa766ecb776c215e97ae8c0dda99dd48840b40b5b87d90bc45 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.19 b/plugins/python-build/share/python-build/pypy3.11-7.3.19 index 1f737eed07..789c29a5c7 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.19 +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.19 @@ -1,5 +1,6 @@ VERSION='7.3.19' PYVER='3.11' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=13207dbf81ce24e96da760b1b863627b77bb20b1fb4c95191e02a0b72383df74 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.20 b/plugins/python-build/share/python-build/pypy3.11-7.3.20 index 63249f1bab..2c8c2ea456 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.20 +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.20 @@ -1,5 +1,6 @@ VERSION='7.3.20' PYVER='3.11' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=9347fe691a07fd9df17a1b186554fb9d9e6210178ffef19520a579ce1f9eb741 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.21 b/plugins/python-build/share/python-build/pypy3.11-7.3.21 index e8fdf2d1b3..ac5b016c00 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.21 +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.21 @@ -1,5 +1,6 @@ VERSION='7.3.21' PYVER='3.11' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=6141f5c64dd96faf87e0a3f7f362521eadd26d5e3f851f90fc386a72208f8c18 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.22 b/plugins/python-build/share/python-build/pypy3.11-7.3.22 index de50d2d092..59536e2119 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.22 +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.22 @@ -1,5 +1,6 @@ VERSION='7.3.22' PYVER='3.11' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=c29a8933e2084f52df74c829aa0d8f5652b9d5919f68e9fb89cab3afe35dd884 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.23 b/plugins/python-build/share/python-build/pypy3.11-7.3.23 index 5c76e45de2..ca1015c3e6 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.23 +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.23 @@ -1,5 +1,6 @@ VERSION='7.3.23' PYVER='3.11' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=5433ac0ad526aeb35025ef8509bed65cd62ea35cb9e21ac649c69a5eff4eecb6 @@ -51,11 +52,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; * ) diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.8 b/plugins/python-build/share/python-build/pypy3.7-7.3.8 index c6e964b89d..05856ff0ca 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.8 +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.8 @@ -1,8 +1,9 @@ VERSION='7.3.8' PYVER='3.7' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html -aarch64_hash=4fb2f8281f3aaca72e6fe62ecc5fc054fcc79cd061ca3e0eea730f7d82d610d4 +aarch64_hash=639c76f128a856747aee23a34276fa101a7a157ea81e76394fbaf80b97dcf2f2 linux32_hash=38429ec6ea1aca391821ee4fbda7358ae86de4600146643f2af2fe2c085af839 linux64_hash=409085db79a6d90bfcf4f576dca1538498e65937acfbe03bd4909bdc262ff378 osx64_hash=76b8eef5b059a7e478f525615482d2a6e9feb83375e3f63c16381d80521a693f @@ -28,7 +29,7 @@ function pypy_pkg_data { case "${pkg}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + url="${baseurl}-aarch64-portable.tar.bz2" # diff url ;; 'linux' ) hash="${linux32_hash}" @@ -39,12 +40,12 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else { echo colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < ${MIN_OSX_VERSION}." echo "try '${basesrc}' to build from source." echo } >&2 diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.9 b/plugins/python-build/share/python-build/pypy3.7-7.3.9 index d38cff1992..e687547d35 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.9 +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.9 @@ -1,5 +1,6 @@ VERSION='7.3.9' PYVER='3.7' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=dfc62f2c453fb851d10a1879c6e75c31ffebbf2a44d181bb06fcac4750d023fc @@ -48,10 +49,10 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.10 b/plugins/python-build/share/python-build/pypy3.8-7.3.10 index 6877e301b0..0c7e2f15b8 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.10 +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.10 @@ -1,5 +1,6 @@ VERSION='7.3.10' PYVER='3.8' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=e4caa1a545f22cfee87d5b9aa6f8852347f223643ad7d2562e0b2a2f4663ad98 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.11 b/plugins/python-build/share/python-build/pypy3.8-7.3.11 index 9dc91087b9..92b54da247 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.11 +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.11 @@ -1,5 +1,6 @@ VERSION='7.3.11' PYVER='3.8' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=9a2fa0b8d92b7830aa31774a9a76129b0ff81afbd22cd5c41fbdd9119e859f55 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.8 b/plugins/python-build/share/python-build/pypy3.8-7.3.8 index 2a4db0eed4..1c58c2f806 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.8 +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.8 @@ -1,8 +1,9 @@ VERSION='7.3.8' PYVER='3.8' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html -aarch64_hash=fe41df391f87239925e573e195e631a9d03d37f471eb1479790ee13ca47a28af +aarch64_hash=0210536e9f1841ba283c13b04783394050837bb3e6f4091c9f1bd9c7f2b94b55 linux32_hash=bea4b275decd492af6462157d293dd6fcf08a949859f8aec0959537b40afd032 linux64_hash=089f8e3e357d6130815964ddd3507c13bd53e4976ccf0a89b5c36a9a6775a188 osx64_hash=de1b283ff112d76395c0162a1cf11528e192bdc230ee3f1b237f7694c7518dee @@ -28,7 +29,7 @@ function pypy_pkg_data { case "${pkg}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + url="${baseurl}-aarch64-portable.tar.bz2" # diff url ;; 'linux' ) hash="${linux32_hash}" @@ -39,12 +40,12 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else { echo colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < ${MIN_OSX_VERSION}." echo "try '${basesrc}' to build from source." echo } >&2 diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.9 b/plugins/python-build/share/python-build/pypy3.8-7.3.9 index 168a953646..abd6a5d5fd 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.9 +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.9 @@ -1,5 +1,6 @@ VERSION='7.3.9' PYVER='3.8' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=5e124455e207425e80731dff317f0432fa0aba1f025845ffca813770e2447e32 @@ -48,10 +49,10 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.10 b/plugins/python-build/share/python-build/pypy3.9-7.3.10 index 9810b2a6b6..f18b40c1fd 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.10 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.10 @@ -1,5 +1,6 @@ VERSION='7.3.10' PYVER='3.9' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=657a04fd9a5a992a2f116a9e7e9132ea0c578721f59139c9fb2083775f71e514 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.11 b/plugins/python-build/share/python-build/pypy3.9-7.3.11 index 800c0aa348..2fbd36956c 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.11 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.11 @@ -1,5 +1,6 @@ VERSION='7.3.11' PYVER='3.9' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=09175dc652ed895d98e9ad63d216812bf3ee7e398d900a9bf9eb2906ba8302b9 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.12 b/plugins/python-build/share/python-build/pypy3.9-7.3.12 index 0ff0a64d0a..398cf3308d 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.12 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.12 @@ -1,5 +1,6 @@ VERSION='7.3.12' PYVER='3.9' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=e9327fb9edaf2ad91935d5b8563ec5ff24193bddb175c1acaaf772c025af1824 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.13 b/plugins/python-build/share/python-build/pypy3.9-7.3.13 index 5614ebc158..eb0695b0d8 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.13 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.13 @@ -1,5 +1,6 @@ VERSION='7.3.13' PYVER='3.9' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=317d7876c5825a086f854253648b967a432b993ce87695d2895d3ad6ed0d2716 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.14 b/plugins/python-build/share/python-build/pypy3.9-7.3.14 index 340bcf5d59..3ac356deb8 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.14 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.14 @@ -1,5 +1,6 @@ VERSION='7.3.14' PYVER='3.9' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=14b842f32f60ce2d9d130971f9bcbdb6875824a0e78fac36806d267e0982179c @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.15 b/plugins/python-build/share/python-build/pypy3.9-7.3.15 index 2fbadb35f8..73bff3ffc8 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.15 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.15 @@ -1,5 +1,6 @@ VERSION='7.3.15' PYVER='3.9' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=03e35fcba290454bb0ccf7ee57fb42d1e63108d10d593776a382c0a2fe355de0 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.16 b/plugins/python-build/share/python-build/pypy3.9-7.3.16 index afa539fd42..8088f82f40 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.16 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.16 @@ -1,5 +1,6 @@ VERSION='7.3.16' PYVER='3.9' +MIN_OSX_VERSION='10.15' # https://www.pypy.org/checksums.html aarch64_hash=de3f2ed3581b30555ac0dd3e4df78a262ec736a36fb2e8f28259f8539b278ef4 @@ -52,11 +53,11 @@ function pypy_pkg_data { pkg='macos_arm64' ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" pkg='macos_x86_64' else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.8 b/plugins/python-build/share/python-build/pypy3.9-7.3.8 index 8d8c01ed13..8f08be48f1 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.8 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.8 @@ -1,8 +1,9 @@ VERSION='7.3.8' PYVER='3.9' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html -aarch64_hash=89d7ee12a8c416e83fae80af82482531fc6502321e75e5b7a0cc01d756ee5f0e +aarch64_hash=b7282bc4484bceae5bc4cc04e05ee4faf51cb624c8fc7a69d92e5fdf0d0c96aa linux32_hash=0894c468e7de758c509a602a28ef0ba4fbf197ccdf946c7853a7283d9bb2a345 linux64_hash=129a055032bba700cd1d0acacab3659cf6b7180e25b1b2f730e792f06d5b3010 osx64_hash=95bd88ac8d6372cd5b7b5393de7b7d5c615a0c6e42fdb1eb67f2d2d510965aee @@ -28,7 +29,7 @@ function pypy_pkg_data { case "${pkg}" in 'linux-aarch64' ) hash="${aarch64_hash}" - url="${baseurl}-aarch64.tar.bz2" # diff url + url="${baseurl}-aarch64-portable.tar.bz2" # diff url ;; 'linux' ) hash="${linux32_hash}" @@ -39,12 +40,12 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else { echo colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." + echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < ${MIN_OSX_VERSION}." echo "try '${basesrc}' to build from source." echo } >&2 diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.9 b/plugins/python-build/share/python-build/pypy3.9-7.3.9 index a59ee362f3..804e24cb35 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.9 +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.9 @@ -1,5 +1,6 @@ VERSION='7.3.9' PYVER='3.9' +MIN_OSX_VERSION='10.14' # https://www.pypy.org/checksums.html aarch64_hash=2e1ae193d98bc51439642a7618d521ea019f45b8fb226940f7e334c548d2b4b9 @@ -48,10 +49,10 @@ function pypy_pkg_data { hash="${linux64_hash}" ;; 'osx64' ) - if require_osx_version "10.13"; then + if require_osx_version "${MIN_OSX_VERSION}"; then hash="${osx64_hash}" else - err_no_binary "${ARCH}, OS X < 10.13" + err_no_binary "${ARCH}, OS X < ${MIN_OSX_VERSION}" fi ;; 's390x' ) From 2439bee2c5049413a5913a4ac65c6f5fdf1101e9 Mon Sep 17 00:00:00 2001 From: exurd <7785022+exurd@users.noreply.github.com> Date: Mon, 28 Sep 2026 00:01:44 +0100 Subject: [PATCH 1289/1324] Add PyPy v8.0.0 (#3552) * remove OpenSSL source build PyPy searches dependencies with pkg-config which XCode CLT do not ship, so it cannot build without Homebrew or MacPorts anyway * Use Homebrew/MacPorts OpenSSL --------- Co-authored-by: Ivan Pozdeev --- plugins/python-build/bin/python-build | 2 + .../share/python-build/pypy2.7-8.0.0 | 77 +++++++++++++++++++ .../share/python-build/pypy2.7-8.0.0-src | 12 +++ .../share/python-build/pypy3.11-8.0.0 | 77 +++++++++++++++++++ .../share/python-build/pypy3.11-8.0.0-src | 12 +++ .../share/python-build/pypy3.12-8.0.0 | 77 +++++++++++++++++++ .../share/python-build/pypy3.12-8.0.0-src | 12 +++ 7 files changed, 269 insertions(+) create mode 100644 plugins/python-build/share/python-build/pypy2.7-8.0.0 create mode 100644 plugins/python-build/share/python-build/pypy2.7-8.0.0-src create mode 100644 plugins/python-build/share/python-build/pypy3.11-8.0.0 create mode 100644 plugins/python-build/share/python-build/pypy3.11-8.0.0-src create mode 100644 plugins/python-build/share/python-build/pypy3.12-8.0.0 create mode 100644 plugins/python-build/share/python-build/pypy3.12-8.0.0-src diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 25ac01b6f8..f4dd0e158b 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1205,6 +1205,8 @@ build_package_pypy() { } build_package_pypy_builder() { + use_homebrew_openssl || use_macports_openssl || true + if [ -f "rpython/bin/rpython" ]; then # pypy 2.x if [ -z "${PYPY_OPTS}" ]; then local PYPY_OPTS="--opt=jit --batch --make-jobs=$(num_cpu_cores)" diff --git a/plugins/python-build/share/python-build/pypy2.7-8.0.0 b/plugins/python-build/share/python-build/pypy2.7-8.0.0 new file mode 100644 index 0000000000..201f598c56 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-8.0.0 @@ -0,0 +1,77 @@ +VERSION='8.0.0' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +aarch64_hash=9ece5a6f575514ed38dde663e7f54e59de01c35b2df6d1ef83e25490d6b7c7b8 +linux32_hash=74d09cafbe0c85ae4c4d17d54099c6b31354235ffdd5277c01601434cc23e459 +linux64_hash=714e8c41608d0d66588c3ba48fb788dc33a1e8a865168d165585d1660beade0d +osarm64_hash=167966aa205ca29b8d3ac6994e3d0d1741f3bf03e9e300737ed591304347c7b0 +osx64_hash=4e4f27669b27a7ff950058eb07e22687f5a04ba04220bb3df24411f07d5c0340 + +### 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.gz" + { 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' + local pkg="${ARCH}" # assume matches + local ext='tar.gz' # v8.0.0+ now uses gz instead of 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.15"; then + hash="${osx64_hash}" + pkg='macos_x86_64' + else + err_no_binary "${ARCH}, OS X < 10.15" + fi + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy2.7-8.0.0-src b/plugins/python-build/share/python-build/pypy2.7-8.0.0-src new file mode 100644 index 0000000000..c362fdafbc --- /dev/null +++ b/plugins/python-build/share/python-build/pypy2.7-8.0.0-src @@ -0,0 +1,12 @@ +VERSION='8.0.0' +PYVER='2.7' + +# https://www.pypy.org/checksums.html +hash=e2a56b587014a97a7e6bd14ae99b55247cf2939d67a05a09e62af0afc16125cb + +### end of manual settings - following lines same for every download + +ver="pypy${PYVER}-v${VERSION}-src" +url="https://downloads.python.org/pypy/${ver}.tar.gz" + +install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy3.11-8.0.0 b/plugins/python-build/share/python-build/pypy3.11-8.0.0 new file mode 100644 index 0000000000..6734f7b444 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-8.0.0 @@ -0,0 +1,77 @@ +VERSION='8.0.0' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +aarch64_hash=37faf1a0b00131748910ad21844a9b1b3fedd630c89b01ec98cdb1b5466ffca5 +linux32_hash=14fcf398eacffdc98db2f3b10ae9e8c9628932dc89b0958d145b9fd9c7307301 +linux64_hash=66a3657e9ddf2d62ead44d3a44b9ea2f6e7dbf28d812554cae5c982a0585bfa5 +osarm64_hash=8fb2abc4f6e3fb5d40ad5bac5092bb6dfcc5131b4a5d2663073155084b9569e4 +osx64_hash=5f295181d622147271b51281d4968cb9d11b8c639af9aacf07fd710a496b8d10 + +### 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.gz" + { 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' + local pkg="${ARCH}" # assume matches + local ext='tar.gz' # v8.0.0+ now uses gz instead of 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.15"; then + hash="${osx64_hash}" + pkg='macos_x86_64' + else + err_no_binary "${ARCH}, OS X < 10.15" + fi + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.11-8.0.0-src b/plugins/python-build/share/python-build/pypy3.11-8.0.0-src new file mode 100644 index 0000000000..50740d871e --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.11-8.0.0-src @@ -0,0 +1,12 @@ +VERSION='8.0.0' +PYVER='3.11' + +# https://www.pypy.org/checksums.html +hash=829cef413d84383563488f0234b3cc537a8034e43fda13e0530500dad2d5dc3b + +### end of manual settings - following lines same for every download + +ver="pypy${PYVER}-v${VERSION}-src" +url="https://downloads.python.org/pypy/${ver}.tar.gz" + +install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip' diff --git a/plugins/python-build/share/python-build/pypy3.12-8.0.0 b/plugins/python-build/share/python-build/pypy3.12-8.0.0 new file mode 100644 index 0000000000..3bffa337c4 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.12-8.0.0 @@ -0,0 +1,77 @@ +VERSION='8.0.0' +PYVER='3.12' + +# https://www.pypy.org/checksums.html +aarch64_hash=72de008683246b0c18aeb8e163dc5d022d3f19b001e8cc5c258010968f10e336 +linux32_hash=228d793e57217f2516032db2c38e593914cb222f0d41660d1d8adbb571dcd4e3 +linux64_hash=a1b4851459c2b3dffccab71cb08989534fab0839deddd34f0e6bf18add256fd7 +osarm64_hash=936ee357126058e43b374ec055495127c9187e2026144b48dca09cc2dcb9b443 +osx64_hash=6dd2909a52c205993b42f45f0e92470af54e63387a4e1f61232f9307e72f1447 + +### 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.gz" + { 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' + local pkg="${ARCH}" # assume matches + local ext='tar.gz' # v8.0.0+ now uses gz instead of 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.15"; then + hash="${osx64_hash}" + pkg='macos_x86_64' + else + err_no_binary "${ARCH}, OS X < 10.15" + fi + ;; + * ) + 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' diff --git a/plugins/python-build/share/python-build/pypy3.12-8.0.0-src b/plugins/python-build/share/python-build/pypy3.12-8.0.0-src new file mode 100644 index 0000000000..c0139aae98 --- /dev/null +++ b/plugins/python-build/share/python-build/pypy3.12-8.0.0-src @@ -0,0 +1,12 @@ +VERSION='8.0.0' +PYVER='3.12' + +# https://www.pypy.org/checksums.html +hash=eb406334e413828901034544d0033d67452c3cf2f11f77fd2daae0cd4fbb0a7b + +### end of manual settings - following lines same for every download + +ver="pypy${PYVER}-v${VERSION}-src" +url="https://downloads.python.org/pypy/${ver}.tar.gz" + +install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip' From 60bfb906e1c177d7aac6e95f5d68506b58e56d1b Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sun, 27 Sep 2026 04:30:31 +0300 Subject: [PATCH 1290/1324] Use new fixture --- plugins/python-build/test/fetch.bats | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/python-build/test/fetch.bats b/plugins/python-build/test/fetch.bats index a2c6f99fcd..0846574514 100644 --- a/plugins/python-build/test/fetch.bats +++ b/plugins/python-build/test/fetch.bats @@ -51,8 +51,7 @@ run_with_script() { @test "using aria2c if available" { export PYTHON_BUILD_ARIA2_OPTS= export -n PYTHON_BUILD_HTTP_CLIENT - stub aria2c "--allow-overwrite=true --no-conf=true -d * -o * http://example.com/* : cp $FIXTURE_ROOT/\${7##*/} \$6" - + stub aria2c ': "$FIXTURE_ROOT/fake_downloader" aria2c "$@"' install_fixture definitions/without-checksum assert_success assert_output < Date: Sun, 27 Sep 2026 12:24:49 +0300 Subject: [PATCH 1291/1324] graalpython: make python* symlinks --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f4dd0e158b..76c626e6a7 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1175,7 +1175,7 @@ pyston_architecture() { # Note: not used by graalpy >= 23.3.0 anymore build_package_graalpython() { build_package_copy - ln -fs "${PREFIX_PATH}/bin/graalpython" "${PREFIX_PATH}/bin/python" + make_python_symlinks graalpython } build_package_pypy() { From d9b158620e78914061e420572806cb31e3bc2fa8 Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 29 Sep 2026 01:11:44 +0300 Subject: [PATCH 1292/1324] Speed up permission fix step (#3571) Saves several seconds for large installations like Anaconda --- plugins/python-build/bin/python-build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 76c626e6a7..f2d485f921 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1330,7 +1330,7 @@ cleanup_builtin_patches() { fix_directory_permissions() { # Ensure installed directories are not world-writable - find "$PREFIX_PATH" -type d \( -perm -020 -o -perm -002 \) -exec chmod go-w {} \; + find "$PREFIX_PATH" -type d \( -perm -020 -o -perm -002 \) -exec chmod go-w {} \+ } require_java7() { From 699e27fb27b465bcd3226e8192bb635ce90eecb0 Mon Sep 17 00:00:00 2001 From: Zhaoqi Xu Date: Tue, 29 Sep 2026 07:41:17 +0800 Subject: [PATCH 1293/1324] init: honor custom PYENV_ROOT in init setup tips (#3569) --- libexec/pyenv-init | 74 ++++++++++++++++++++++++++++++++++++++++++++-- test/init.bats | 41 ++++++++++++++++++------- 2 files changed, 102 insertions(+), 13 deletions(-) diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 34f1173e95..3bd0060566 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -189,8 +189,76 @@ function help_() { } >&2 } +# True when tips/install should keep the portable default root form. +function pyenv_root_is_default() { + [[ ${PYENV_ROOT} == "${HOME}/.pyenv" ]] +} + +# Escape a value for inclusion inside double quotes in a POSIX shell script. +function escape_for_double_quoted_posix() { + local s="$1" + s="${s//\\/\\\\}" + s="${s//\"/\\\"}" + s="${s//\$/\\\$}" + s="${s//\`/\\\`}" + printf '%s' "$s" +} + +# Escape a value for inclusion inside double quotes in a fish script. +function escape_for_double_quoted_fish() { + local s="$1" + s="${s//\\/\\\\}" + s="${s//\"/\\\"}" + s="${s//\$/\\\$}" + printf '%s' "$s" +} + +# Escape a value for inclusion inside single quotes in a PowerShell script. +function escape_for_single_quoted_pwsh() { + local s="$1" + # Bash 3.2 (macOS / CI docker): avoid \' in ${//} replacement — + # it becomes a literal backslash. Double single-quotes via a var instead. + local q="'" + s="${s//${q}/${q}${q}}" + printf '%s' "$s" +} + +# Emit the PYENV_ROOT assignment line for tips/--install (posix|fish|pwsh). +# Portable default keeps $HOME / $Env:HOME; custom roots are quoted per target shell. +function print_pyenv_root_assignment() { + case "$1" in + posix ) + if pyenv_root_is_default; then + echo 'export PYENV_ROOT="$HOME/.pyenv"' + else + printf 'export PYENV_ROOT="%s"\n' "$(escape_for_double_quoted_posix "${PYENV_ROOT}")" + fi + ;; + fish ) + if pyenv_root_is_default; then + # Keep master's expandable $HOME form (fish expands unquoted $HOME). + echo 'set -Ux PYENV_ROOT $HOME/.pyenv' + else + printf 'set -Ux PYENV_ROOT "%s"\n' "$(escape_for_double_quoted_fish "${PYENV_ROOT}")" + fi + ;; + pwsh ) + if pyenv_root_is_default; then + echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' + else + # Single-quoted PowerShell literal: no $ / backtick expansion. + printf "\$Env:PYENV_ROOT='%s'\n" "$(escape_for_single_quoted_pwsh "${PYENV_ROOT}")" + fi + ;; + * ) + echo "pyenv: internal error: unknown shell family for PYENV_ROOT assignment: $1" >&2 + return 1 + ;; + esac +} + function print_posix_shell_setup() { - echo 'export PYENV_ROOT="$HOME/.pyenv"' + print_pyenv_root_assignment posix echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' echo 'eval "$(pyenv init - '$shell')"' } @@ -200,7 +268,7 @@ function print_fish_shell_setup() { } function print_fish_user_path_setup() { - echo 'set -Ux PYENV_ROOT $HOME/.pyenv' + print_pyenv_root_assignment fish echo 'if functions -q fish_add_path' echo ' test -d $PYENV_ROOT/bin; and fish_add_path $PYENV_ROOT/bin' echo 'else' @@ -209,7 +277,7 @@ function print_fish_user_path_setup() { } function print_pwsh_shell_setup() { - echo '$Env:PYENV_ROOT="$Env:HOME/.pyenv"' + print_pyenv_root_assignment pwsh echo 'if (Test-Path -LP "$Env:PYENV_ROOT/bin" -PathType Container) {' echo ' $Env:PATH="$Env:PYENV_ROOT/bin:$Env:PATH" }' echo 'iex ((pyenv init -) -join "`n")' diff --git a/test/init.bats b/test/init.bats index cb1ef20d40..908a5dab58 100755 --- a/test/init.bats +++ b/test/init.bats @@ -93,8 +93,9 @@ OUT assert_line "--install" } -@test "install setup for detected shell startup files" { - mkdir -p "$HOME" +@test "install setup for detected shell startup files (default PYENV_ROOT)" { + export PYENV_ROOT="$HOME/.pyenv" + mkdir -p "$PYENV_ROOT" run pyenv-init --install assert_success @@ -104,8 +105,9 @@ OUT assert_equal "$expected_setup" "$(cat "$HOME/.profile")" } -@test "install setup for bash uses existing bash_profile" { - mkdir -p "$HOME" +@test "install setup for bash uses existing bash_profile (default PYENV_ROOT)" { + export PYENV_ROOT="$HOME/.pyenv" + mkdir -p "$PYENV_ROOT" touch "$HOME/.bash_profile" run pyenv-init --install bash @@ -117,8 +119,9 @@ OUT assert [ ! -e "$HOME/.profile" ] } -@test "install setup for zsh startup files" { - mkdir -p "$HOME" +@test "install setup for zsh startup files (default PYENV_ROOT)" { + export PYENV_ROOT="$HOME/.pyenv" + mkdir -p "$PYENV_ROOT" run pyenv-init --install zsh assert_success @@ -128,8 +131,9 @@ OUT assert_equal "$expected_setup" "$(cat "$HOME/.zprofile")" } -@test "install setup for fish startup file" { - mkdir -p "$HOME" +@test "install setup for fish startup file (default PYENV_ROOT)" { + export PYENV_ROOT="$HOME/.pyenv" + mkdir -p "$PYENV_ROOT" create_stub fish < "$PYENV_TEST_DIR/fish-script" OUT @@ -143,8 +147,9 @@ OUT assert_equal "$expected_setup" "$(cat "$HOME/.config/fish/config.fish")" } -@test "install setup for pwsh startup file" { - mkdir -p "$HOME" +@test "install setup for pwsh startup file (default PYENV_ROOT)" { + export PYENV_ROOT="$HOME/.pyenv" + mkdir -p "$PYENV_ROOT" run pyenv-init --install pwsh assert_success @@ -153,6 +158,22 @@ OUT assert_equal "$expected_setup" "$(cat "$HOME/.config/powershell/profile.ps1")" } +@test "init honors custom PYENV_ROOT and quotes it according to each shell's rules" { + export PYENV_ROOT='/tmp/pyenv$root/"quote"' + run pyenv-init bash + assert [ "$status" -eq 1 ] + assert_line 'export PYENV_ROOT="/tmp/pyenv\$root/\"quote\""' + + run pyenv-init fish + assert [ "$status" -eq 1 ] + assert_line 'set -Ux PYENV_ROOT "/tmp/pyenv\$root/\"quote\""' + + export PYENV_ROOT="/tmp/pyenv'root" + run pyenv-init pwsh + assert [ "$status" -eq 1 ] + assert_line "\$Env:PYENV_ROOT='/tmp/pyenv''root'" +} + @test "install refuses to modify files with pyenv-related code" { mkdir -p "$HOME" echo 'eval "$(pyenv init -)"' > "$HOME/.bashrc" From 2e3d62a129ab3e116fe9bb5eb58fae8beb1958b9 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Wed, 30 Sep 2026 08:58:46 +0530 Subject: [PATCH 1294/1324] tests: python-buid: use helpers from core (#3572) --- plugins/python-build/test/test_helper.bash | 77 +--------------------- test/test_helper.bash | 2 + 2 files changed, 4 insertions(+), 75 deletions(-) diff --git a/plugins/python-build/test/test_helper.bash b/plugins/python-build/test/test_helper.bash index 1bd66897ed..8797b6ee0b 100644 --- a/plugins/python-build/test/test_helper.bash +++ b/plugins/python-build/test/test_helper.bash @@ -1,3 +1,5 @@ +source "${BATS_TEST_DIRNAME}/../../../test/test_helper.bash" + setup() { export PYTHON_BUILD_CURL_OPTS= export PYTHON_BUILD_HTTP_CLIENT="curl" @@ -69,12 +71,6 @@ install_fixture() { run python-build $args "$FIXTURE_ROOT/$name" "$destination" } -assert() { - if ! "$@"; then - flunk "failed: $@" - fi -} - refute() { if "$@"; then flunk "expected to fail: $@" @@ -99,32 +95,6 @@ assert_success() { fi } -assert_failure() { - if [ "$status" -eq 0 ]; then - flunk "expected failed exit status" - elif [ "$#" -gt 0 ]; then - assert_output "$1" - fi -} - -assert_equal() { - if [ "$1" != "$2" ]; then - { echo "expected:" - echo "$1" - echo "actual:" - echo "$2" - } | flunk - fi -} - -assert_output() { - local expected - if [ $# -eq 0 ]; then expected="$(cat -)" - else expected="$1" - fi - assert_equal "$expected" "$output" -} - assert_output_contains() { local expected="$1" if [ -z "$expected" ]; then @@ -137,46 +107,3 @@ assert_output_contains() { } | flunk } } - -assert_line() { - if [ "$1" -ge 0 ] 2>/dev/null; then - assert_equal "$2" "${lines[$1]}" - else - local line - for line in "${lines[@]}"; do - if [ "$line" = "$1" ]; then return 0; fi - done - flunk "expected line \`$1'" $'\n'\ - "output: $output" - fi -} - -# Output a modified PATH that ensures that the given executable is not present, -# but in which system utils necessary for pyenv operation are still available. -path_without() { - local path=":${PATH}:" - for exe; do - local found alt util - for found in $(PATH="$path" type -aP "$exe"); do - found="${found%/*}" - if [ "$found" != "${PYENV_ROOT}/shims" ]; then - alt="${PYENV_TEST_DIR}/$(echo "${found#/}" | tr '/' '-')" - mkdir -p "$alt" - for util in bash head cut readlink greadlink tr; do - if [ -x "${found}/$util" ]; then - ln -s "${found}/$util" "${alt}/$util" - fi - done - path="${path/:${found}:/:${alt}:}" - fi - done - done - path="${path#:}" - path="${path%:}" - echo "$path" -} - -skip_if_nonposix_security() { - true "${1:?}" "${2:?}" - test "$@" && skip "UNIX permission bits are being overridden" || true -} diff --git a/test/test_helper.bash b/test/test_helper.bash index 2015907f9b..b26fc06c54 100644 --- a/test/test_helper.bash +++ b/test/test_helper.bash @@ -68,6 +68,7 @@ assert_success() { if [ "$status" -ne 0 ]; then flunk "command failed with exit status $status" $'\n'\ "output: $output" + return 1 fi _assert_output_if_provided "$@" } @@ -76,6 +77,7 @@ assert_failure() { if [ "$status" -eq 0 ]; then flunk "expected failed exit status" $'\n'\ "output: $output" + return 1 fi _assert_output_if_provided "$@" } From 3d51eb919bd2423461e248d8499f33754e908151 Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 06:11:20 +0300 Subject: [PATCH 1295/1324] Add CPython 3.12.15, 3.13.16 (#3575) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- .../python-build/share/python-build/3.12.15 | 11 ++ .../python-build/share/python-build/3.13.16 | 11 ++ .../python-build/share/python-build/3.13.16t | 2 + ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 119 ++++++++++++++++++ 4 files changed, 143 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.12.15 create mode 100644 plugins/python-build/share/python-build/3.13.16 create mode 100644 plugins/python-build/share/python-build/3.13.16t create mode 100644 plugins/python-build/share/python-build/patches/3.12.15/Python-3.12.15/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch diff --git a/plugins/python-build/share/python-build/3.12.15 b/plugins/python-build/share/python-build/3.12.15 new file mode 100644 index 0000000000..6e77f88bea --- /dev/null +++ b/plugins/python-build/share/python-build/3.12.15 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.5" "https://github.com/openssl/openssl/releases/download/openssl-3.6.5/openssl-3.6.5.tar.gz#a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.12.15" "https://www.python.org/ftp/python/3.12.15/Python-3.12.15.tar.xz#c2c4321961fab0fb999d66e0cecf521c2ab3994c7992873ea99e306c1094fd5a" standard verify_py312 copy_python_gdb ensurepip +else + install_package "Python-3.12.15" "https://www.python.org/ftp/python/3.12.15/Python-3.12.15.tgz#de1a241a519e0a3374fea98988d0b52c886743f9d953f23be8269cc7b59c5fab" standard verify_py312 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.16 b/plugins/python-build/share/python-build/3.13.16 new file mode 100644 index 0000000000..e4a51dc725 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.16 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.5" "https://github.com/openssl/openssl/releases/download/openssl-3.6.5/openssl-3.6.5.tar.gz#a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.13.16" "https://www.python.org/ftp/python/3.13.16/Python-3.13.16.tar.xz#f4b1bfb3c79b5bb11b8d228a12504163b4c0dab4d679828d8f5f26b6cb6ab35d" standard verify_py313 copy_python_gdb ensurepip +else + install_package "Python-3.13.16" "https://www.python.org/ftp/python/3.13.16/Python-3.13.16.tgz#cfac63bddf956deafb1172ca131ae5dcaafd6f95056086e233fca205593ed427" standard verify_py313 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.13.16t b/plugins/python-build/share/python-build/3.13.16t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.13.16t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/patches/3.12.15/Python-3.12.15/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.12.15/Python-3.12.15/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..da0fc05edf --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.12.15/Python-3.12.15/0001-downstream-3.12-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,119 @@ +From ac12d63bf188f9497f8453c0447b9bc599acbf22 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.12] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 ++ + configure | 33 +++++++++++-------- + configure.ac | 11 +++++-- + 3 files changed, 32 insertions(+), 15 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index b6f90bcd8c7..b93aab935ce 100755 +--- a/configure ++++ b/configure +@@ -17552,13 +17552,7 @@ fi + ac_fn_c_check_func "$LINENO" "dup" "ac_cv_func_dup" + if test "x$ac_cv_func_dup" = xyes + then : +- printf "%s\n" "#define HAVE_DUP 1" >>confdefs.h +- +-fi +-ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" +-if test "x$ac_cv_func_dup3" = xyes +-then : +- printf "%s\n" "#define HAVE_DUP3 1" >>confdefs.h ++ printf '%s\n' "#define HAVE_DUP 1" >>confdefs.h + + fi + ac_fn_c_check_func "$LINENO" "execv" "ac_cv_func_execv" +@@ -18028,12 +18022,6 @@ if test "x$ac_cv_func_pipe" = xyes + then : + printf "%s\n" "#define HAVE_PIPE 1" >>confdefs.h + +-fi +-ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" +-if test "x$ac_cv_func_pipe2" = xyes +-then : +- printf "%s\n" "#define HAVE_PIPE2 1" >>confdefs.h +- + fi + ac_fn_c_check_func "$LINENO" "plock" "ac_cv_func_plock" + if test "x$ac_cv_func_plock" = xyes +@@ -18608,6 +18596,25 @@ fi + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 + printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } + if test ${ac_cv_c_undeclared_builtin_options+y} +diff --git a/configure.ac b/configure.ac +index ba768aea930..92049fb2889 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4860,7 +4860,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4870,7 +4870,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4892,6 +4892,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS([lchmod]) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL([dirfd], + [AC_DEFINE([HAVE_DIRFD], [1], + [Define if you have the 'dirfd' function or macro.])], +-- +2.55.0.windows.3 + From 627e0aa921f0d7f383fb6f93caf98d1db717215d Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 07:41:27 +0300 Subject: [PATCH 1296/1324] Add CPython 3.14.8 (#3574) --------- Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> Co-authored-by: Ivan Pozdeev --- .../python-build/share/python-build/3.14.8 | 11 + .../python-build/share/python-build/3.14.8t | 2 + ...3.14-gh-148292-Add-OpenSSL-4-support.patch | 9862 +++++++++++++++++ .../share/python-build/patches/3.14.8t | 1 + 4 files changed, 9876 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.14.8 create mode 100644 plugins/python-build/share/python-build/3.14.8t create mode 100644 plugins/python-build/share/python-build/patches/3.14.8/Python-3.14.8/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch create mode 120000 plugins/python-build/share/python-build/patches/3.14.8t diff --git a/plugins/python-build/share/python-build/3.14.8 b/plugins/python-build/share/python-build/3.14.8 new file mode 100644 index 0000000000..ce856f2ff3 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.8 @@ -0,0 +1,11 @@ +prefer_openssl3_to_4 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.3" "https://github.com/openssl/openssl/releases/download/openssl-4.0.3/openssl-4.0.3.tar.gz#325b5c806167c13b40b1ffeadfe0248197c00eccc4cf123ec1e28d2d2fd216d9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.14.8" "https://www.python.org/ftp/python/3.14.8/Python-3.14.8.tar.xz#c2215904f02b175596dc49351585104f4bc20341e1c47378b26a2c274360ce73" standard verify_py314 copy_python_gdb ensurepip +else + install_package "Python-3.14.8" "https://www.python.org/ftp/python/3.14.8/Python-3.14.8.tgz#a65b20a728f169f4e66ae143f40b1bd3d33c38d770251663f627c9767b79b210" standard verify_py314 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.14.8t b/plugins/python-build/share/python-build/3.14.8t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.14.8t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" diff --git a/plugins/python-build/share/python-build/patches/3.14.8/Python-3.14.8/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch b/plugins/python-build/share/python-build/patches/3.14.8/Python-3.14.8/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch new file mode 100644 index 0000000000..da7340697a --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.8/Python-3.14.8/0001-3.14-gh-148292-Add-OpenSSL-4-support.patch @@ -0,0 +1,9862 @@ +From 80d3a85e3db1366f21940ff8271145133db66c1b Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Thu, 1 Oct 2026 04:41:07 +0300 +Subject: [PATCH] [3.14] gh-148292: Add OpenSSL 4 support + +--- + Lib/test/test_poplib.py | 4 +- + Lib/test/test_ssl.py | 130 +- + ...-04-28-17-47-55.gh-issue-148292.oIq3ml.rst | 7 + + ...-04-21-12-33-14.gh-issue-148600.vnTb3t.rst | 1 + + Modules/_ssl.c | 75 +- + Modules/_ssl/cert.c | 3 +- + Modules/_ssl_data_40.h | 9357 +++++++++++++++++ + Tools/ssl/multissltests.py | 8 +- + 8 files changed, 9550 insertions(+), 35 deletions(-) + create mode 100644 Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst + create mode 100644 Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst + create mode 100644 Modules/_ssl_data_40.h + +diff --git a/Lib/test/test_poplib.py b/Lib/test/test_poplib.py +index ef2da97f867..1b9ec3393cb 100644 +--- a/Lib/test/test_poplib.py ++++ b/Lib/test/test_poplib.py +@@ -184,7 +184,8 @@ def _do_tls_handshake(self): + elif err.args[0] == ssl.SSL_ERROR_EOF: + return self.handle_close() + # TODO: SSLError does not expose alert information +- elif ("SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ elif ("TLS_ALERT_BAD_CERTIFICATE" in err.args[1] or ++ "SSLV3_ALERT_BAD_CERTIFICATE" in err.args[1] or + "SSLV3_ALERT_CERTIFICATE_UNKNOWN" in err.args[1]): + return self.handle_close() + raise +@@ -415,6 +416,7 @@ def test_stls_context(self): + self.assertEqual(ctx.check_hostname, True) + with self.assertRaises(ssl.CertificateError): + resp = self.client.stls(context=ctx) ++ + self.client = poplib.POP3("localhost", self.server.port, + timeout=test_support.LOOPBACK_TIMEOUT) + resp = self.client.stls(context=ctx) +diff --git a/Lib/test/test_ssl.py b/Lib/test/test_ssl.py +index d1486a46526..fb68e3d7bbf 100644 +--- a/Lib/test/test_ssl.py ++++ b/Lib/test/test_ssl.py +@@ -424,7 +424,7 @@ def test_constants(self): + ssl.OP_NO_COMPRESSION + self.assertEqual(ssl.HAS_SNI, True) + self.assertEqual(ssl.HAS_ECDH, True) +- self.assertEqual(ssl.HAS_TLSv1_2, True) ++ self.assertIsInstance(ssl.HAS_TLSv1_2, bool) + self.assertEqual(ssl.HAS_TLSv1_3, True) + ssl.OP_NO_SSLv2 + ssl.OP_NO_SSLv3 +@@ -615,11 +615,11 @@ def test_openssl_version(self): + # Some sanity checks follow + # >= 1.1.1 + self.assertGreaterEqual(n, 0x10101000) +- # < 4.0 +- self.assertLess(n, 0x40000000) ++ # < 5.0 ++ self.assertLess(n, 0x50000000) + major, minor, fix, patch, status = t + self.assertGreaterEqual(major, 1) +- self.assertLess(major, 4) ++ self.assertLess(major, 5) + self.assertGreaterEqual(minor, 0) + self.assertLess(minor, 256) + self.assertGreaterEqual(fix, 0) +@@ -685,12 +685,14 @@ def test_openssl111_deprecations(self): + ssl.OP_NO_TLSv1_2, + ssl.OP_NO_TLSv1_3 + ] +- protocols = [ +- ssl.PROTOCOL_TLSv1, +- ssl.PROTOCOL_TLSv1_1, +- ssl.PROTOCOL_TLSv1_2, +- ssl.PROTOCOL_TLS +- ] ++ protocols = [] ++ if hasattr(ssl, 'PROTOCOL_TLSv1'): ++ protocols.append(ssl.PROTOCOL_TLSv1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_1'): ++ protocols.append(ssl.PROTOCOL_TLSv1_1) ++ if hasattr(ssl, 'PROTOCOL_TLSv1_2'): ++ protocols.append(ssl.PROTOCOL_TLSv1_2) ++ protocols.append(ssl.PROTOCOL_TLS) + versions = [ + ssl.TLSVersion.SSLv3, + ssl.TLSVersion.TLSv1, +@@ -1184,6 +1186,7 @@ def test_min_max_version(self): + ssl.TLSVersion.TLSv1, + ssl.TLSVersion.TLSv1_1, + ssl.TLSVersion.TLSv1_2, ++ ssl.TLSVersion.TLSv1_3, + ssl.TLSVersion.SSLv3, + } + ) +@@ -1197,7 +1200,7 @@ def test_min_max_version(self): + with self.assertRaises(ValueError): + ctx.minimum_version = 42 + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1_1) + + self.assertIn( +@@ -1749,23 +1752,24 @@ def test__create_stdlib_context(self): + self.assertFalse(ctx.check_hostname) + self._assert_context_options(ctx) + +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + with warnings_helper.check_warnings(): + ctx = ssl._create_stdlib_context(ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1) + self.assertEqual(ctx.verify_mode, ssl.CERT_NONE) + self._assert_context_options(ctx) + +- with warnings_helper.check_warnings(): +- ctx = ssl._create_stdlib_context( +- ssl.PROTOCOL_TLSv1_2, +- cert_reqs=ssl.CERT_REQUIRED, +- check_hostname=True +- ) +- self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) +- self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) +- self.assertTrue(ctx.check_hostname) +- self._assert_context_options(ctx) ++ if has_tls_protocol('PROTOCOL_TLSv1_2'): ++ with warnings_helper.check_warnings(): ++ ctx = ssl._create_stdlib_context( ++ ssl.PROTOCOL_TLSv1_2, ++ cert_reqs=ssl.CERT_REQUIRED, ++ check_hostname=True ++ ) ++ self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLSv1_2) ++ self.assertEqual(ctx.verify_mode, ssl.CERT_REQUIRED) ++ self.assertTrue(ctx.check_hostname) ++ self._assert_context_options(ctx) + + ctx = ssl._create_stdlib_context(purpose=ssl.Purpose.CLIENT_AUTH) + self.assertEqual(ctx.protocol, ssl.PROTOCOL_TLS_SERVER) +@@ -2990,6 +2994,36 @@ def close(self): + def stop(self): + self.active = False + ++class TestEOFServer(threading.Thread): ++ def __init__(self): ++ super().__init__() ++ self.listening = threading.Event() ++ self.address = None ++ ++ def run(self): ++ context = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH) ++ context.load_cert_chain(CERTFILE) ++ server_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ with server_sock: ++ server_sock.settimeout(support.SHORT_TIMEOUT) ++ server_sock.bind((HOST, 0)) ++ server_sock.listen(5) ++ ++ self.address = server_sock.getsockname() ++ self.listening.set() ++ ++ sock, addr = server_sock.accept() ++ sslconn = context.wrap_socket(sock, server_side=True) ++ with sslconn: ++ request = b'' ++ while chunk := sslconn.recv(1024): ++ request += chunk ++ if b'\n' in chunk: ++ break ++ ++ sslconn.sendall(b'server\n') ++ sslconn.shutdown(socket.SHUT_WR) ++ + class AsyncoreEchoServer(threading.Thread): + + # this one's based on asyncore.dispatcher +@@ -3863,10 +3897,10 @@ def test_protocol_tlsv1_2(self): + client_options=ssl.OP_NO_TLSv1_2) + + try_protocol_combo(ssl.PROTOCOL_TLS, ssl.PROTOCOL_TLSv1_2, 'TLSv1.2') +- if has_tls_protocol(ssl.PROTOCOL_TLSv1): ++ if has_tls_protocol('PROTOCOL_TLSv1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_TLSv1_2, False) +- if has_tls_protocol(ssl.PROTOCOL_TLSv1_1): ++ if has_tls_protocol('PROTOCOL_TLSv1_1'): + try_protocol_combo(ssl.PROTOCOL_TLSv1_2, ssl.PROTOCOL_TLSv1_1, False) + try_protocol_combo(ssl.PROTOCOL_TLSv1_1, ssl.PROTOCOL_TLSv1_2, False) + +@@ -4715,7 +4749,9 @@ def cb_raising(ssl_sock, server_name, initial_context): + sni_name='supermessage') + + # Allow for flexible libssl error messages. +- regex = "(SSLV3_ALERT_HANDSHAKE_FAILURE|NO_PRIVATE_VALUE)" ++ regex = ("(TLS_ALERT_HANDSHAKE_FAILURE" ++ "|SSLV3_ALERT_HANDSHAKE_FAILURE" ++ "|NO_PRIVATE_VALUE)") + self.assertRegex(cm.exception.reason, regex) + self.assertEqual(catch.unraisable.exc_type, ZeroDivisionError) + +@@ -5031,6 +5067,50 @@ def background(sock): + if cm.exc_value is not None: + raise cm.exc_value + ++ def test_got_eof(self): ++ # gh-148292: Test that _ssl._SSLSocket behaves the same on all OpenSSL ++ # versions on calling methods after EOF (after the first SSLEOFError). ++ ++ server = TestEOFServer() ++ server.start() ++ if not server.listening.wait(support.SHORT_TIMEOUT): ++ raise RuntimeError("server took too long") ++ self.addCleanup(server.join) ++ ++ context = ssl.create_default_context(cafile=CERTFILE) ++ sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) ++ sock.settimeout(support.SHORT_TIMEOUT) ++ sock.connect(server.address) ++ sslsock = context.wrap_socket(sock, server_hostname='localhost') ++ with sslsock: ++ sslsock.sendall(b'client\n') ++ # test the _ssl._SSLSocket object, not ssl.SSLSocket ++ sslobj = sslsock._sslobj ++ ++ data = sslobj.read(1024) ++ self.assertEqual(data, b'server\n') ++ ++ # The second read gets EOF error and sets got_eof_error to 1 ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.read(1024) ++ ++ # Following read(), sendfile(), write() and do_handshake() calls ++ # must raise SSLEOFError ++ with self.assertRaises(ssl.SSLEOFError): ++ # The _SSLSocket remembers the previous EOF error ++ # and raises again SSLEOFError ++ sslobj.read(1024) ++ if hasattr(sslobj, 'sendfile'): ++ with open(__file__, "rb") as fp: ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.sendfile(fp.fileno(), 0, 1) ++ with self.assertRaises(ssl.SSLEOFError): ++ sslobj.write(b'client2\n') ++ with self.assertRaises(ssl.SSLEOFError): ++ sslsock.do_handshake() ++ ++ self.assertEqual(sslsock.pending(), 0) ++ + + @unittest.skipUnless(has_tls_version('TLSv1_3') and ssl.HAS_PHA, + "Test needs TLS 1.3 PHA") +diff --git a/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +new file mode 100644 +index 00000000000..e1f308df5a6 +--- /dev/null ++++ b/Misc/NEWS.d/next/Library/2026-04-28-17-47-55.gh-issue-148292.oIq3ml.rst +@@ -0,0 +1,7 @@ ++:mod:`ssl`: Update :class:`ssl.SSLSocket` and :class:`ssl.SSLObject` for ++OpenSSL 4. The classes now remember if they get a :exc:`ssl.SSLEOFError`. In this ++case, following :meth:`~ssl.SSLSocket.read`, :meth:`!sendfile`, ++:meth:`~ssl.SSLSocket.write`, and :meth:`~ssl.SSLSocket.do_handshake` calls ++raise :exc:`ssl.SSLEOFError` without calling the underlying OpenSSL function. ++Thanks to that, :class:`ssl.SSLSocket` behaves the same on all OpenSSL versions ++on EOF. Patch by Victor Stinner. +diff --git a/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +new file mode 100644 +index 00000000000..a7d4c0cc80a +--- /dev/null ++++ b/Misc/NEWS.d/next/Tests/2026-04-21-12-33-14.gh-issue-148600.vnTb3t.rst +@@ -0,0 +1 @@ ++Add OpenSSL 4.0.0 support to test configurations. +diff --git a/Modules/_ssl.c b/Modules/_ssl.c +index 90bcb6fd5dc..ef726426df9 100644 +--- a/Modules/_ssl.c ++++ b/Modules/_ssl.c +@@ -122,8 +122,10 @@ static void _PySSLFixErrno(void) { + #endif + + /* Include generated data (error codes) */ +-/* See make_ssl_data.h for notes on adding a new version. */ +-#if (OPENSSL_VERSION_NUMBER >= 0x30401000L) ++/* See Tools/ssl/make_ssl_data.py for notes on adding a new version. */ ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# include "_ssl_data_40.h" ++#elif (OPENSSL_VERSION_NUMBER >= 0x30401000L) + #include "_ssl_data_35.h" + #elif (OPENSSL_VERSION_NUMBER >= 0x30100000L) + #include "_ssl_data_340.h" +@@ -135,6 +137,17 @@ static void _PySSLFixErrno(void) { + #error Unsupported OpenSSL version + #endif + ++#if (OPENSSL_VERSION_NUMBER >= 0x40000000L) ++# define OPENSSL_NO_SSL3 ++# define OPENSSL_NO_TLS1 ++# define OPENSSL_NO_TLS1_1 ++# define OPENSSL_NO_TLS1_2 ++# define OPENSSL_NO_SSL3_METHOD ++# define OPENSSL_NO_TLS1_METHOD ++# define OPENSSL_NO_TLS1_1_METHOD ++# define OPENSSL_NO_TLS1_2_METHOD ++#endif ++ + /* OpenSSL API 1.1.0+ does not include version methods */ + #ifndef OPENSSL_NO_SSL3_METHOD + extern const SSL_METHOD *SSLv3_method(void); +@@ -340,6 +353,16 @@ typedef struct { + * and shutdown methods check for chained exceptions. + */ + PyObject *exc; ++ // gh-148292: If non-zero, read(), sendfile(), write() and do_handshake() ++ // methods raise SSLEOFError without calling the underlying OpenSSL ++ // function. Set to 1 on PY_SSL_ERROR_EOF error. ++ // ++ // On OpenSSL 4, if SSL_read_ex() fails with ++ // SSL_R_UNEXPECTED_EOF_WHILE_READING, the following SSL_read_ex() call ++ // fails with a generic protocol error (ERR_peek_last_error() returns 0). ++ // Use got_eof_error to have the same behavior on OpenSSL 4 and newer and ++ // on OpenSSL 3 and older. ++ int got_eof_error; + } PySSLSocket; + + #define PySSLSocket_CAST(op) ((PySSLSocket *)(op)) +@@ -487,6 +510,10 @@ fill_and_set_sslerror(_sslmodulestate *state, + PyObject *init_value, *msg, *key; + PyUnicodeWriter *writer = NULL; + ++ if (ssl_errno == PY_SSL_ERROR_EOF && sslsock != NULL) { ++ sslsock->got_eof_error = 1; ++ } ++ + if (errcode != 0) { + int lib, reason; + +@@ -642,6 +669,18 @@ PySSL_ChainExceptions(PySSLSocket *sslsock) { + return -1; + } + ++ ++static void ++set_eof_error(PySSLSocket *sslsock) ++{ ++ _sslmodulestate *state = get_state_sock(sslsock); ++ fill_and_set_sslerror(state, sslsock, state->PySSLEOFErrorObject, ++ PY_SSL_ERROR_EOF, ++ "EOF occurred in violation of protocol", ++ __LINE__, 0); ++} ++ ++ + static PyObject * + PySSL_SetError(PySSLSocket *sslsock, const char *filename, int lineno) + { +@@ -889,6 +928,7 @@ newPySSLSocket(PySSLContext *sslctx, PySocketSockObject *sock, + self->server_hostname = NULL; + self->err = err; + self->exc = NULL; ++ self->got_eof_error = 0; + + /* Make sure the SSL error state is initialized */ + ERR_clear_error(); +@@ -1029,6 +1069,11 @@ _ssl__SSLSocket_do_handshake_impl(PySSLSocket *self) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -1134,7 +1179,7 @@ _asn1obj2py(_sslmodulestate *state, const ASN1_OBJECT *name, int no_name) + + static PyObject * + _create_tuple_for_attribute(_sslmodulestate *state, +- ASN1_OBJECT *name, ASN1_STRING *value) ++ const ASN1_OBJECT *name, const ASN1_STRING *value) + { + Py_ssize_t buflen; + PyObject *pyattr; +@@ -1163,16 +1208,16 @@ _create_tuple_for_attribute(_sslmodulestate *state, + } + + static PyObject * +-_create_tuple_for_X509_NAME (_sslmodulestate *state, X509_NAME *xname) ++_create_tuple_for_X509_NAME(_sslmodulestate *state, const X509_NAME *xname) + { + PyObject *dn = NULL; /* tuple which represents the "distinguished name" */ + PyObject *rdn = NULL; /* tuple to hold a "relative distinguished name" */ + PyObject *rdnt; + PyObject *attr = NULL; /* tuple to hold an attribute */ + int entry_count = X509_NAME_entry_count(xname); +- X509_NAME_ENTRY *entry; +- ASN1_OBJECT *name; +- ASN1_STRING *value; ++ const X509_NAME_ENTRY *entry; ++ const ASN1_OBJECT *name; ++ const ASN1_STRING *value; + int index_counter; + int rdn_level = -1; + int retcode; +@@ -2493,6 +2538,11 @@ _ssl__SSLSocket_write_impl(PySSLSocket *self, Py_buffer *b) + BIO_set_nbio(SSL_get_wbio(self->ssl), nonblocking); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + timeout = GET_SOCKET_TIMEOUT(sock); + has_timeout = (timeout > 0); + if (has_timeout) { +@@ -2633,6 +2683,11 @@ _ssl__SSLSocket_read_impl(PySSLSocket *self, Py_ssize_t len, + Py_INCREF(sock); + } + ++ if (self->got_eof_error) { ++ set_eof_error(self); ++ goto error; ++ } ++ + if (!group_right_1) { + dest = PyBytes_FromStringAndSize(NULL, len); + if (dest == NULL) +@@ -6529,9 +6584,15 @@ sslmodule_init_constants(PyObject *m) + ADD_INT_CONST("PROTOCOL_TLS", PY_SSL_VERSION_TLS); + ADD_INT_CONST("PROTOCOL_TLS_CLIENT", PY_SSL_VERSION_TLS_CLIENT); + ADD_INT_CONST("PROTOCOL_TLS_SERVER", PY_SSL_VERSION_TLS_SERVER); ++#ifndef OPENSSL_NO_TLS1 + ADD_INT_CONST("PROTOCOL_TLSv1", PY_SSL_VERSION_TLS1); ++#endif ++#ifndef OPENSSL_NO_TLS1_1 + ADD_INT_CONST("PROTOCOL_TLSv1_1", PY_SSL_VERSION_TLS1_1); ++#endif ++#ifndef OPENSSL_NO_TLS1_2 + ADD_INT_CONST("PROTOCOL_TLSv1_2", PY_SSL_VERSION_TLS1_2); ++#endif + + #define ADD_OPTION(NAME, VALUE) if (sslmodule_add_option(m, NAME, (VALUE)) < 0) return -1 + +diff --git a/Modules/_ssl/cert.c b/Modules/_ssl/cert.c +index f2e7be89668..061b0fb3171 100644 +--- a/Modules/_ssl/cert.c ++++ b/Modules/_ssl/cert.c +@@ -128,7 +128,8 @@ _ssl_Certificate_get_info_impl(PySSLCertificate *self) + } + + static PyObject* +-_x509name_print(_sslmodulestate *state, X509_NAME *name, int indent, unsigned long flags) ++_x509name_print(_sslmodulestate *state, const X509_NAME *name, ++ int indent, unsigned long flags) + { + PyObject *res; + BIO *biobuf; +diff --git a/Modules/_ssl_data_40.h b/Modules/_ssl_data_40.h +new file mode 100644 +index 00000000000..ea615f655bb +--- /dev/null ++++ b/Modules/_ssl_data_40.h +@@ -0,0 +1,9357 @@ ++/* File generated by Tools/ssl/make_ssl_data.py */ ++/* Generated on 2026-04-15T09:18:34.696139+00:00 */ ++/* Generated from Git commit v3.15.0a8-132-gd14e31ed683 */ ++ ++/* generated from args.lib2errnum */ ++static struct py_ssl_library_code library_codes[] = { ++#ifdef ERR_LIB_ASN1 ++ {"ASN1", ERR_LIB_ASN1}, ++#endif ++#ifdef ERR_LIB_ASYNC ++ {"ASYNC", ERR_LIB_ASYNC}, ++#endif ++#ifdef ERR_LIB_BIO ++ {"BIO", ERR_LIB_BIO}, ++#endif ++#ifdef ERR_LIB_BN ++ {"BN", ERR_LIB_BN}, ++#endif ++#ifdef ERR_LIB_BUF ++ {"BUF", ERR_LIB_BUF}, ++#endif ++#ifdef ERR_LIB_CMP ++ {"CMP", ERR_LIB_CMP}, ++#endif ++#ifdef ERR_LIB_CMS ++ {"CMS", ERR_LIB_CMS}, ++#endif ++#ifdef ERR_LIB_COMP ++ {"COMP", ERR_LIB_COMP}, ++#endif ++#ifdef ERR_LIB_CONF ++ {"CONF", ERR_LIB_CONF}, ++#endif ++#ifdef ERR_LIB_CRMF ++ {"CRMF", ERR_LIB_CRMF}, ++#endif ++#ifdef ERR_LIB_CRYPTO ++ {"CRYPTO", ERR_LIB_CRYPTO}, ++#endif ++#ifdef ERR_LIB_CT ++ {"CT", ERR_LIB_CT}, ++#endif ++#ifdef ERR_LIB_DH ++ {"DH", ERR_LIB_DH}, ++#endif ++#ifdef ERR_LIB_DSA ++ {"DSA", ERR_LIB_DSA}, ++#endif ++#ifdef ERR_LIB_DSO ++ {"DSO", ERR_LIB_DSO}, ++#endif ++#ifdef ERR_LIB_EC ++ {"EC", ERR_LIB_EC}, ++#endif ++#ifdef ERR_LIB_ECDH ++ {"ECDH", ERR_LIB_ECDH}, ++#endif ++#ifdef ERR_LIB_ECDSA ++ {"ECDSA", ERR_LIB_ECDSA}, ++#endif ++#ifdef ERR_LIB_ENGINE ++ {"ENGINE", ERR_LIB_ENGINE}, ++#endif ++#ifdef ERR_LIB_ESS ++ {"ESS", ERR_LIB_ESS}, ++#endif ++#ifdef ERR_LIB_EVP ++ {"EVP", ERR_LIB_EVP}, ++#endif ++#ifdef ERR_LIB_FIPS ++ {"FIPS", ERR_LIB_FIPS}, ++#endif ++#ifdef ERR_LIB_HMAC ++ {"HMAC", ERR_LIB_HMAC}, ++#endif ++#ifdef ERR_LIB_HTTP ++ {"HTTP", ERR_LIB_HTTP}, ++#endif ++#ifdef ERR_LIB_JPAKE ++ {"JPAKE", ERR_LIB_JPAKE}, ++#endif ++#ifdef ERR_LIB_KDF ++ {"KDF", ERR_LIB_KDF}, ++#endif ++#ifdef ERR_LIB_METH ++ {"METH", ERR_LIB_METH}, ++#endif ++#ifdef ERR_LIB_NONE ++ {"NONE", ERR_LIB_NONE}, ++#endif ++#ifdef ERR_LIB_OBJ ++ {"OBJ", ERR_LIB_OBJ}, ++#endif ++#ifdef ERR_LIB_OCSP ++ {"OCSP", ERR_LIB_OCSP}, ++#endif ++#ifdef ERR_LIB_OSSL_DECODER ++ {"OSSL_DECODER", ERR_LIB_OSSL_DECODER}, ++#endif ++#ifdef ERR_LIB_OSSL_ENCODER ++ {"OSSL_ENCODER", ERR_LIB_OSSL_ENCODER}, ++#endif ++#ifdef ERR_LIB_OSSL_STORE ++ {"OSSL_STORE", ERR_LIB_OSSL_STORE}, ++#endif ++#ifdef ERR_LIB_PEM ++ {"PEM", ERR_LIB_PEM}, ++#endif ++#ifdef ERR_LIB_PKCS12 ++ {"PKCS12", ERR_LIB_PKCS12}, ++#endif ++#ifdef ERR_LIB_PKCS7 ++ {"PKCS7", ERR_LIB_PKCS7}, ++#endif ++#ifdef ERR_LIB_PROP ++ {"PROP", ERR_LIB_PROP}, ++#endif ++#ifdef ERR_LIB_PROV ++ {"PROV", ERR_LIB_PROV}, ++#endif ++#ifdef ERR_LIB_PROXY ++ {"PROXY", ERR_LIB_PROXY}, ++#endif ++#ifdef ERR_LIB_RAND ++ {"RAND", ERR_LIB_RAND}, ++#endif ++#ifdef ERR_LIB_RSA ++ {"RSA", ERR_LIB_RSA}, ++#endif ++#ifdef ERR_LIB_RSAREF ++ {"RSAREF", ERR_LIB_RSAREF}, ++#endif ++#ifdef ERR_LIB_SM2 ++ {"SM2", ERR_LIB_SM2}, ++#endif ++#ifdef ERR_LIB_SSL ++ {"SSL", ERR_LIB_SSL}, ++#endif ++#ifdef ERR_LIB_SSL2 ++ {"SSL2", ERR_LIB_SSL2}, ++#endif ++#ifdef ERR_LIB_SSL23 ++ {"SSL23", ERR_LIB_SSL23}, ++#endif ++#ifdef ERR_LIB_SSL3 ++ {"SSL3", ERR_LIB_SSL3}, ++#endif ++#ifdef ERR_LIB_SYS ++ {"SYS", ERR_LIB_SYS}, ++#endif ++#ifdef ERR_LIB_TS ++ {"TS", ERR_LIB_TS}, ++#endif ++#ifdef ERR_LIB_UI ++ {"UI", ERR_LIB_UI}, ++#endif ++#ifdef ERR_LIB_USER ++ {"USER", ERR_LIB_USER}, ++#endif ++#ifdef ERR_LIB_X509 ++ {"X509", ERR_LIB_X509}, ++#endif ++#ifdef ERR_LIB_X509V3 ++ {"X509V3", ERR_LIB_X509V3}, ++#endif ++ {NULL, 0} /* sentinel */ ++}; ++ ++/* generated from args.reasons */ ++static struct py_ssl_error_code error_codes[] = { ++ #ifdef ASN1_R_ADDING_OBJECT ++ {"ADDING_OBJECT", ERR_LIB_ASN1, ASN1_R_ADDING_OBJECT}, ++ #else ++ {"ADDING_OBJECT", 13, 171}, ++ #endif ++ #ifdef ASN1_R_ASN1_PARSE_ERROR ++ {"ASN1_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_PARSE_ERROR}, ++ #else ++ {"ASN1_PARSE_ERROR", 13, 203}, ++ #endif ++ #ifdef ASN1_R_ASN1_SIG_PARSE_ERROR ++ {"ASN1_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_ASN1_SIG_PARSE_ERROR}, ++ #else ++ {"ASN1_SIG_PARSE_ERROR", 13, 204}, ++ #endif ++ #ifdef ASN1_R_AUX_ERROR ++ {"AUX_ERROR", ERR_LIB_ASN1, ASN1_R_AUX_ERROR}, ++ #else ++ {"AUX_ERROR", 13, 100}, ++ #endif ++ #ifdef ASN1_R_BAD_OBJECT_HEADER ++ {"BAD_OBJECT_HEADER", ERR_LIB_ASN1, ASN1_R_BAD_OBJECT_HEADER}, ++ #else ++ {"BAD_OBJECT_HEADER", 13, 102}, ++ #endif ++ #ifdef ASN1_R_BAD_TEMPLATE ++ {"BAD_TEMPLATE", ERR_LIB_ASN1, ASN1_R_BAD_TEMPLATE}, ++ #else ++ {"BAD_TEMPLATE", 13, 230}, ++ #endif ++ #ifdef ASN1_R_BMPSTRING_IS_WRONG_LENGTH ++ {"BMPSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BMPSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"BMPSTRING_IS_WRONG_LENGTH", 13, 214}, ++ #endif ++ #ifdef ASN1_R_BN_LIB ++ {"BN_LIB", ERR_LIB_ASN1, ASN1_R_BN_LIB}, ++ #else ++ {"BN_LIB", 13, 105}, ++ #endif ++ #ifdef ASN1_R_BOOLEAN_IS_WRONG_LENGTH ++ {"BOOLEAN_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_BOOLEAN_IS_WRONG_LENGTH}, ++ #else ++ {"BOOLEAN_IS_WRONG_LENGTH", 13, 106}, ++ #endif ++ #ifdef ASN1_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_ASN1, ASN1_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 13, 107}, ++ #endif ++ #ifdef ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_ASN1, ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 13, 108}, ++ #endif ++ #ifdef ASN1_R_CONTEXT_NOT_INITIALISED ++ {"CONTEXT_NOT_INITIALISED", ERR_LIB_ASN1, ASN1_R_CONTEXT_NOT_INITIALISED}, ++ #else ++ {"CONTEXT_NOT_INITIALISED", 13, 217}, ++ #endif ++ #ifdef ASN1_R_DATA_IS_WRONG ++ {"DATA_IS_WRONG", ERR_LIB_ASN1, ASN1_R_DATA_IS_WRONG}, ++ #else ++ {"DATA_IS_WRONG", 13, 109}, ++ #endif ++ #ifdef ASN1_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_ASN1, ASN1_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 13, 110}, ++ #endif ++ #ifdef ASN1_R_DEPTH_EXCEEDED ++ {"DEPTH_EXCEEDED", ERR_LIB_ASN1, ASN1_R_DEPTH_EXCEEDED}, ++ #else ++ {"DEPTH_EXCEEDED", 13, 174}, ++ #endif ++ #ifdef ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED}, ++ #else ++ {"DIGEST_AND_KEY_TYPE_NOT_SUPPORTED", 13, 198}, ++ #endif ++ #ifdef ASN1_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_ASN1, ASN1_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 13, 112}, ++ #endif ++ #ifdef ASN1_R_ERROR_GETTING_TIME ++ {"ERROR_GETTING_TIME", ERR_LIB_ASN1, ASN1_R_ERROR_GETTING_TIME}, ++ #else ++ {"ERROR_GETTING_TIME", 13, 173}, ++ #endif ++ #ifdef ASN1_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_ASN1, ASN1_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 13, 172}, ++ #endif ++ #ifdef ASN1_R_ERROR_SETTING_CIPHER_PARAMS ++ {"ERROR_SETTING_CIPHER_PARAMS", ERR_LIB_ASN1, ASN1_R_ERROR_SETTING_CIPHER_PARAMS}, ++ #else ++ {"ERROR_SETTING_CIPHER_PARAMS", 13, 114}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_INTEGER ++ {"EXPECTING_AN_INTEGER", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_INTEGER}, ++ #else ++ {"EXPECTING_AN_INTEGER", 13, 115}, ++ #endif ++ #ifdef ASN1_R_EXPECTING_AN_OBJECT ++ {"EXPECTING_AN_OBJECT", ERR_LIB_ASN1, ASN1_R_EXPECTING_AN_OBJECT}, ++ #else ++ {"EXPECTING_AN_OBJECT", 13, 116}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_LENGTH_MISMATCH ++ {"EXPLICIT_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_EXPLICIT_LENGTH_MISMATCH}, ++ #else ++ {"EXPLICIT_LENGTH_MISMATCH", 13, 119}, ++ #endif ++ #ifdef ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED}, ++ #else ++ {"EXPLICIT_TAG_NOT_CONSTRUCTED", 13, 120}, ++ #endif ++ #ifdef ASN1_R_FIELD_MISSING ++ {"FIELD_MISSING", ERR_LIB_ASN1, ASN1_R_FIELD_MISSING}, ++ #else ++ {"FIELD_MISSING", 13, 121}, ++ #endif ++ #ifdef ASN1_R_FIRST_NUM_TOO_LARGE ++ {"FIRST_NUM_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_FIRST_NUM_TOO_LARGE}, ++ #else ++ {"FIRST_NUM_TOO_LARGE", 13, 122}, ++ #endif ++ #ifdef ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT ++ {"GENERALIZEDTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_GENERALIZEDTIME_IS_TOO_SHORT}, ++ #else ++ {"GENERALIZEDTIME_IS_TOO_SHORT", 13, 232}, ++ #endif ++ #ifdef ASN1_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_ASN1, ASN1_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 13, 123}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BITSTRING_FORMAT ++ {"ILLEGAL_BITSTRING_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BITSTRING_FORMAT}, ++ #else ++ {"ILLEGAL_BITSTRING_FORMAT", 13, 175}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_BOOLEAN ++ {"ILLEGAL_BOOLEAN", ERR_LIB_ASN1, ASN1_R_ILLEGAL_BOOLEAN}, ++ #else ++ {"ILLEGAL_BOOLEAN", 13, 176}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_CHARACTERS ++ {"ILLEGAL_CHARACTERS", ERR_LIB_ASN1, ASN1_R_ILLEGAL_CHARACTERS}, ++ #else ++ {"ILLEGAL_CHARACTERS", 13, 124}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_FORMAT ++ {"ILLEGAL_FORMAT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_FORMAT}, ++ #else ++ {"ILLEGAL_FORMAT", 13, 177}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_HEX ++ {"ILLEGAL_HEX", ERR_LIB_ASN1, ASN1_R_ILLEGAL_HEX}, ++ #else ++ {"ILLEGAL_HEX", 13, 178}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_IMPLICIT_TAG ++ {"ILLEGAL_IMPLICIT_TAG", ERR_LIB_ASN1, ASN1_R_ILLEGAL_IMPLICIT_TAG}, ++ #else ++ {"ILLEGAL_IMPLICIT_TAG", 13, 179}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_INTEGER ++ {"ILLEGAL_INTEGER", ERR_LIB_ASN1, ASN1_R_ILLEGAL_INTEGER}, ++ #else ++ {"ILLEGAL_INTEGER", 13, 180}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NEGATIVE_VALUE ++ {"ILLEGAL_NEGATIVE_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NEGATIVE_VALUE}, ++ #else ++ {"ILLEGAL_NEGATIVE_VALUE", 13, 226}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NESTED_TAGGING ++ {"ILLEGAL_NESTED_TAGGING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NESTED_TAGGING}, ++ #else ++ {"ILLEGAL_NESTED_TAGGING", 13, 181}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL ++ {"ILLEGAL_NULL", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL}, ++ #else ++ {"ILLEGAL_NULL", 13, 125}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_NULL_VALUE ++ {"ILLEGAL_NULL_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_NULL_VALUE}, ++ #else ++ {"ILLEGAL_NULL_VALUE", 13, 182}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OBJECT ++ {"ILLEGAL_OBJECT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OBJECT}, ++ #else ++ {"ILLEGAL_OBJECT", 13, 183}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONAL_ANY ++ {"ILLEGAL_OPTIONAL_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONAL_ANY}, ++ #else ++ {"ILLEGAL_OPTIONAL_ANY", 13, 126}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE}, ++ #else ++ {"ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE", 13, 170}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_PADDING ++ {"ILLEGAL_PADDING", ERR_LIB_ASN1, ASN1_R_ILLEGAL_PADDING}, ++ #else ++ {"ILLEGAL_PADDING", 13, 221}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TAGGED_ANY ++ {"ILLEGAL_TAGGED_ANY", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TAGGED_ANY}, ++ #else ++ {"ILLEGAL_TAGGED_ANY", 13, 127}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_TIME_VALUE ++ {"ILLEGAL_TIME_VALUE", ERR_LIB_ASN1, ASN1_R_ILLEGAL_TIME_VALUE}, ++ #else ++ {"ILLEGAL_TIME_VALUE", 13, 184}, ++ #endif ++ #ifdef ASN1_R_ILLEGAL_ZERO_CONTENT ++ {"ILLEGAL_ZERO_CONTENT", ERR_LIB_ASN1, ASN1_R_ILLEGAL_ZERO_CONTENT}, ++ #else ++ {"ILLEGAL_ZERO_CONTENT", 13, 222}, ++ #endif ++ #ifdef ASN1_R_INTEGER_NOT_ASCII_FORMAT ++ {"INTEGER_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_INTEGER_NOT_ASCII_FORMAT}, ++ #else ++ {"INTEGER_NOT_ASCII_FORMAT", 13, 185}, ++ #endif ++ #ifdef ASN1_R_INTEGER_TOO_LARGE_FOR_LONG ++ {"INTEGER_TOO_LARGE_FOR_LONG", ERR_LIB_ASN1, ASN1_R_INTEGER_TOO_LARGE_FOR_LONG}, ++ #else ++ {"INTEGER_TOO_LARGE_FOR_LONG", 13, 128}, ++ #endif ++ #ifdef ASN1_R_INVALID_BIT_STRING_BITS_LEFT ++ {"INVALID_BIT_STRING_BITS_LEFT", ERR_LIB_ASN1, ASN1_R_INVALID_BIT_STRING_BITS_LEFT}, ++ #else ++ {"INVALID_BIT_STRING_BITS_LEFT", 13, 220}, ++ #endif ++ #ifdef ASN1_R_INVALID_BMPSTRING_LENGTH ++ {"INVALID_BMPSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_BMPSTRING_LENGTH}, ++ #else ++ {"INVALID_BMPSTRING_LENGTH", 13, 129}, ++ #endif ++ #ifdef ASN1_R_INVALID_DIGIT ++ {"INVALID_DIGIT", ERR_LIB_ASN1, ASN1_R_INVALID_DIGIT}, ++ #else ++ {"INVALID_DIGIT", 13, 130}, ++ #endif ++ #ifdef ASN1_R_INVALID_MIME_TYPE ++ {"INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_INVALID_MIME_TYPE}, ++ #else ++ {"INVALID_MIME_TYPE", 13, 205}, ++ #endif ++ #ifdef ASN1_R_INVALID_MODIFIER ++ {"INVALID_MODIFIER", ERR_LIB_ASN1, ASN1_R_INVALID_MODIFIER}, ++ #else ++ {"INVALID_MODIFIER", 13, 186}, ++ #endif ++ #ifdef ASN1_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_ASN1, ASN1_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 13, 187}, ++ #endif ++ #ifdef ASN1_R_INVALID_OBJECT_ENCODING ++ {"INVALID_OBJECT_ENCODING", ERR_LIB_ASN1, ASN1_R_INVALID_OBJECT_ENCODING}, ++ #else ++ {"INVALID_OBJECT_ENCODING", 13, 216}, ++ #endif ++ #ifdef ASN1_R_INVALID_SCRYPT_PARAMETERS ++ {"INVALID_SCRYPT_PARAMETERS", ERR_LIB_ASN1, ASN1_R_INVALID_SCRYPT_PARAMETERS}, ++ #else ++ {"INVALID_SCRYPT_PARAMETERS", 13, 227}, ++ #endif ++ #ifdef ASN1_R_INVALID_SEPARATOR ++ {"INVALID_SEPARATOR", ERR_LIB_ASN1, ASN1_R_INVALID_SEPARATOR}, ++ #else ++ {"INVALID_SEPARATOR", 13, 131}, ++ #endif ++ #ifdef ASN1_R_INVALID_STRING_TABLE_VALUE ++ {"INVALID_STRING_TABLE_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_STRING_TABLE_VALUE}, ++ #else ++ {"INVALID_STRING_TABLE_VALUE", 13, 218}, ++ #endif ++ #ifdef ASN1_R_INVALID_UNIVERSALSTRING_LENGTH ++ {"INVALID_UNIVERSALSTRING_LENGTH", ERR_LIB_ASN1, ASN1_R_INVALID_UNIVERSALSTRING_LENGTH}, ++ #else ++ {"INVALID_UNIVERSALSTRING_LENGTH", 13, 133}, ++ #endif ++ #ifdef ASN1_R_INVALID_UTF8STRING ++ {"INVALID_UTF8STRING", ERR_LIB_ASN1, ASN1_R_INVALID_UTF8STRING}, ++ #else ++ {"INVALID_UTF8STRING", 13, 134}, ++ #endif ++ #ifdef ASN1_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_ASN1, ASN1_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 13, 219}, ++ #endif ++ #ifdef ASN1_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_ASN1, ASN1_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 13, 231}, ++ #endif ++ #ifdef ASN1_R_LIST_ERROR ++ {"LIST_ERROR", ERR_LIB_ASN1, ASN1_R_LIST_ERROR}, ++ #else ++ {"LIST_ERROR", 13, 188}, ++ #endif ++ #ifdef ASN1_R_MIME_NO_CONTENT_TYPE ++ {"MIME_NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_MIME_NO_CONTENT_TYPE}, ++ #else ++ {"MIME_NO_CONTENT_TYPE", 13, 206}, ++ #endif ++ #ifdef ASN1_R_MIME_PARSE_ERROR ++ {"MIME_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_PARSE_ERROR}, ++ #else ++ {"MIME_PARSE_ERROR", 13, 207}, ++ #endif ++ #ifdef ASN1_R_MIME_SIG_PARSE_ERROR ++ {"MIME_SIG_PARSE_ERROR", ERR_LIB_ASN1, ASN1_R_MIME_SIG_PARSE_ERROR}, ++ #else ++ {"MIME_SIG_PARSE_ERROR", 13, 208}, ++ #endif ++ #ifdef ASN1_R_MISSING_EOC ++ {"MISSING_EOC", ERR_LIB_ASN1, ASN1_R_MISSING_EOC}, ++ #else ++ {"MISSING_EOC", 13, 137}, ++ #endif ++ #ifdef ASN1_R_MISSING_SECOND_NUMBER ++ {"MISSING_SECOND_NUMBER", ERR_LIB_ASN1, ASN1_R_MISSING_SECOND_NUMBER}, ++ #else ++ {"MISSING_SECOND_NUMBER", 13, 138}, ++ #endif ++ #ifdef ASN1_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_ASN1, ASN1_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 13, 189}, ++ #endif ++ #ifdef ASN1_R_MSTRING_NOT_UNIVERSAL ++ {"MSTRING_NOT_UNIVERSAL", ERR_LIB_ASN1, ASN1_R_MSTRING_NOT_UNIVERSAL}, ++ #else ++ {"MSTRING_NOT_UNIVERSAL", 13, 139}, ++ #endif ++ #ifdef ASN1_R_MSTRING_WRONG_TAG ++ {"MSTRING_WRONG_TAG", ERR_LIB_ASN1, ASN1_R_MSTRING_WRONG_TAG}, ++ #else ++ {"MSTRING_WRONG_TAG", 13, 140}, ++ #endif ++ #ifdef ASN1_R_NESTED_ASN1_STRING ++ {"NESTED_ASN1_STRING", ERR_LIB_ASN1, ASN1_R_NESTED_ASN1_STRING}, ++ #else ++ {"NESTED_ASN1_STRING", 13, 197}, ++ #endif ++ #ifdef ASN1_R_NESTED_TOO_DEEP ++ {"NESTED_TOO_DEEP", ERR_LIB_ASN1, ASN1_R_NESTED_TOO_DEEP}, ++ #else ++ {"NESTED_TOO_DEEP", 13, 201}, ++ #endif ++ #ifdef ASN1_R_NON_HEX_CHARACTERS ++ {"NON_HEX_CHARACTERS", ERR_LIB_ASN1, ASN1_R_NON_HEX_CHARACTERS}, ++ #else ++ {"NON_HEX_CHARACTERS", 13, 141}, ++ #endif ++ #ifdef ASN1_R_NOT_ASCII_FORMAT ++ {"NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_NOT_ASCII_FORMAT}, ++ #else ++ {"NOT_ASCII_FORMAT", 13, 190}, ++ #endif ++ #ifdef ASN1_R_NOT_ENOUGH_DATA ++ {"NOT_ENOUGH_DATA", ERR_LIB_ASN1, ASN1_R_NOT_ENOUGH_DATA}, ++ #else ++ {"NOT_ENOUGH_DATA", 13, 142}, ++ #endif ++ #ifdef ASN1_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 13, 209}, ++ #endif ++ #ifdef ASN1_R_NO_MATCHING_CHOICE_TYPE ++ {"NO_MATCHING_CHOICE_TYPE", ERR_LIB_ASN1, ASN1_R_NO_MATCHING_CHOICE_TYPE}, ++ #else ++ {"NO_MATCHING_CHOICE_TYPE", 13, 143}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BODY_FAILURE ++ {"NO_MULTIPART_BODY_FAILURE", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BODY_FAILURE}, ++ #else ++ {"NO_MULTIPART_BODY_FAILURE", 13, 210}, ++ #endif ++ #ifdef ASN1_R_NO_MULTIPART_BOUNDARY ++ {"NO_MULTIPART_BOUNDARY", ERR_LIB_ASN1, ASN1_R_NO_MULTIPART_BOUNDARY}, ++ #else ++ {"NO_MULTIPART_BOUNDARY", 13, 211}, ++ #endif ++ #ifdef ASN1_R_NO_SIG_CONTENT_TYPE ++ {"NO_SIG_CONTENT_TYPE", ERR_LIB_ASN1, ASN1_R_NO_SIG_CONTENT_TYPE}, ++ #else ++ {"NO_SIG_CONTENT_TYPE", 13, 212}, ++ #endif ++ #ifdef ASN1_R_NULL_IS_WRONG_LENGTH ++ {"NULL_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_NULL_IS_WRONG_LENGTH}, ++ #else ++ {"NULL_IS_WRONG_LENGTH", 13, 144}, ++ #endif ++ #ifdef ASN1_R_OBJECT_NOT_ASCII_FORMAT ++ {"OBJECT_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_OBJECT_NOT_ASCII_FORMAT}, ++ #else ++ {"OBJECT_NOT_ASCII_FORMAT", 13, 191}, ++ #endif ++ #ifdef ASN1_R_ODD_NUMBER_OF_CHARS ++ {"ODD_NUMBER_OF_CHARS", ERR_LIB_ASN1, ASN1_R_ODD_NUMBER_OF_CHARS}, ++ #else ++ {"ODD_NUMBER_OF_CHARS", 13, 145}, ++ #endif ++ #ifdef ASN1_R_SECOND_NUMBER_TOO_LARGE ++ {"SECOND_NUMBER_TOO_LARGE", ERR_LIB_ASN1, ASN1_R_SECOND_NUMBER_TOO_LARGE}, ++ #else ++ {"SECOND_NUMBER_TOO_LARGE", 13, 147}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_LENGTH_MISMATCH ++ {"SEQUENCE_LENGTH_MISMATCH", ERR_LIB_ASN1, ASN1_R_SEQUENCE_LENGTH_MISMATCH}, ++ #else ++ {"SEQUENCE_LENGTH_MISMATCH", 13, 148}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_NOT_CONSTRUCTED ++ {"SEQUENCE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_SEQUENCE_NOT_CONSTRUCTED}, ++ #else ++ {"SEQUENCE_NOT_CONSTRUCTED", 13, 149}, ++ #endif ++ #ifdef ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", ERR_LIB_ASN1, ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG}, ++ #else ++ {"SEQUENCE_OR_SET_NEEDS_CONFIG", 13, 192}, ++ #endif ++ #ifdef ASN1_R_SHORT_LINE ++ {"SHORT_LINE", ERR_LIB_ASN1, ASN1_R_SHORT_LINE}, ++ #else ++ {"SHORT_LINE", 13, 150}, ++ #endif ++ #ifdef ASN1_R_SIG_INVALID_MIME_TYPE ++ {"SIG_INVALID_MIME_TYPE", ERR_LIB_ASN1, ASN1_R_SIG_INVALID_MIME_TYPE}, ++ #else ++ {"SIG_INVALID_MIME_TYPE", 13, 213}, ++ #endif ++ #ifdef ASN1_R_STREAMING_NOT_SUPPORTED ++ {"STREAMING_NOT_SUPPORTED", ERR_LIB_ASN1, ASN1_R_STREAMING_NOT_SUPPORTED}, ++ #else ++ {"STREAMING_NOT_SUPPORTED", 13, 202}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_ASN1, ASN1_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 13, 151}, ++ #endif ++ #ifdef ASN1_R_STRING_TOO_SHORT ++ {"STRING_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_STRING_TOO_SHORT}, ++ #else ++ {"STRING_TOO_SHORT", 13, 152}, ++ #endif ++ #ifdef ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_ASN1, ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 13, 154}, ++ #endif ++ #ifdef ASN1_R_TIME_NOT_ASCII_FORMAT ++ {"TIME_NOT_ASCII_FORMAT", ERR_LIB_ASN1, ASN1_R_TIME_NOT_ASCII_FORMAT}, ++ #else ++ {"TIME_NOT_ASCII_FORMAT", 13, 193}, ++ #endif ++ #ifdef ASN1_R_TOO_LARGE ++ {"TOO_LARGE", ERR_LIB_ASN1, ASN1_R_TOO_LARGE}, ++ #else ++ {"TOO_LARGE", 13, 223}, ++ #endif ++ #ifdef ASN1_R_TOO_LONG ++ {"TOO_LONG", ERR_LIB_ASN1, ASN1_R_TOO_LONG}, ++ #else ++ {"TOO_LONG", 13, 155}, ++ #endif ++ #ifdef ASN1_R_TOO_SMALL ++ {"TOO_SMALL", ERR_LIB_ASN1, ASN1_R_TOO_SMALL}, ++ #else ++ {"TOO_SMALL", 13, 224}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_CONSTRUCTED ++ {"TYPE_NOT_CONSTRUCTED", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_CONSTRUCTED}, ++ #else ++ {"TYPE_NOT_CONSTRUCTED", 13, 156}, ++ #endif ++ #ifdef ASN1_R_TYPE_NOT_PRIMITIVE ++ {"TYPE_NOT_PRIMITIVE", ERR_LIB_ASN1, ASN1_R_TYPE_NOT_PRIMITIVE}, ++ #else ++ {"TYPE_NOT_PRIMITIVE", 13, 195}, ++ #endif ++ #ifdef ASN1_R_UNEXPECTED_EOC ++ {"UNEXPECTED_EOC", ERR_LIB_ASN1, ASN1_R_UNEXPECTED_EOC}, ++ #else ++ {"UNEXPECTED_EOC", 13, 159}, ++ #endif ++ #ifdef ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", ERR_LIB_ASN1, ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH}, ++ #else ++ {"UNIVERSALSTRING_IS_WRONG_LENGTH", 13, 215}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_ASN1, ASN1_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 13, 229}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_FORMAT ++ {"UNKNOWN_FORMAT", ERR_LIB_ASN1, ASN1_R_UNKNOWN_FORMAT}, ++ #else ++ {"UNKNOWN_FORMAT", 13, 160}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST_ALGORITHM", 13, 161}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_OBJECT_TYPE ++ {"UNKNOWN_OBJECT_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_OBJECT_TYPE}, ++ #else ++ {"UNKNOWN_OBJECT_TYPE", 13, 162}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE ++ {"UNKNOWN_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNKNOWN_PUBLIC_KEY_TYPE", 13, 163}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM ++ {"UNKNOWN_SIGNATURE_ALGORITHM", ERR_LIB_ASN1, ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNKNOWN_SIGNATURE_ALGORITHM", 13, 199}, ++ #endif ++ #ifdef ASN1_R_UNKNOWN_TAG ++ {"UNKNOWN_TAG", ERR_LIB_ASN1, ASN1_R_UNKNOWN_TAG}, ++ #else ++ {"UNKNOWN_TAG", 13, 194}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE}, ++ #else ++ {"UNSUPPORTED_ANY_DEFINED_BY_TYPE", 13, 164}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 13, 228}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 13, 167}, ++ #endif ++ #ifdef ASN1_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_ASN1, ASN1_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 13, 196}, ++ #endif ++ #ifdef ASN1_R_UTCTIME_IS_TOO_SHORT ++ {"UTCTIME_IS_TOO_SHORT", ERR_LIB_ASN1, ASN1_R_UTCTIME_IS_TOO_SHORT}, ++ #else ++ {"UTCTIME_IS_TOO_SHORT", 13, 233}, ++ #endif ++ #ifdef ASN1_R_WRONG_INTEGER_TYPE ++ {"WRONG_INTEGER_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_INTEGER_TYPE}, ++ #else ++ {"WRONG_INTEGER_TYPE", 13, 225}, ++ #endif ++ #ifdef ASN1_R_WRONG_PUBLIC_KEY_TYPE ++ {"WRONG_PUBLIC_KEY_TYPE", ERR_LIB_ASN1, ASN1_R_WRONG_PUBLIC_KEY_TYPE}, ++ #else ++ {"WRONG_PUBLIC_KEY_TYPE", 13, 200}, ++ #endif ++ #ifdef ASN1_R_WRONG_TAG ++ {"WRONG_TAG", ERR_LIB_ASN1, ASN1_R_WRONG_TAG}, ++ #else ++ {"WRONG_TAG", 13, 168}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SET_POOL ++ {"FAILED_TO_SET_POOL", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SET_POOL}, ++ #else ++ {"FAILED_TO_SET_POOL", 51, 101}, ++ #endif ++ #ifdef ASYNC_R_FAILED_TO_SWAP_CONTEXT ++ {"FAILED_TO_SWAP_CONTEXT", ERR_LIB_ASYNC, ASYNC_R_FAILED_TO_SWAP_CONTEXT}, ++ #else ++ {"FAILED_TO_SWAP_CONTEXT", 51, 102}, ++ #endif ++ #ifdef ASYNC_R_INIT_FAILED ++ {"INIT_FAILED", ERR_LIB_ASYNC, ASYNC_R_INIT_FAILED}, ++ #else ++ {"INIT_FAILED", 51, 105}, ++ #endif ++ #ifdef ASYNC_R_INVALID_POOL_SIZE ++ {"INVALID_POOL_SIZE", ERR_LIB_ASYNC, ASYNC_R_INVALID_POOL_SIZE}, ++ #else ++ {"INVALID_POOL_SIZE", 51, 103}, ++ #endif ++ #ifdef BIO_R_ACCEPT_ERROR ++ {"ACCEPT_ERROR", ERR_LIB_BIO, BIO_R_ACCEPT_ERROR}, ++ #else ++ {"ACCEPT_ERROR", 32, 100}, ++ #endif ++ #ifdef BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"ADDRINFO_ADDR_IS_NOT_AF_INET", 32, 141}, ++ #endif ++ #ifdef BIO_R_AMBIGUOUS_HOST_OR_SERVICE ++ {"AMBIGUOUS_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_AMBIGUOUS_HOST_OR_SERVICE}, ++ #else ++ {"AMBIGUOUS_HOST_OR_SERVICE", 32, 129}, ++ #endif ++ #ifdef BIO_R_BAD_FOPEN_MODE ++ {"BAD_FOPEN_MODE", ERR_LIB_BIO, BIO_R_BAD_FOPEN_MODE}, ++ #else ++ {"BAD_FOPEN_MODE", 32, 101}, ++ #endif ++ #ifdef BIO_R_BROKEN_PIPE ++ {"BROKEN_PIPE", ERR_LIB_BIO, BIO_R_BROKEN_PIPE}, ++ #else ++ {"BROKEN_PIPE", 32, 124}, ++ #endif ++ #ifdef BIO_R_CONNECT_ERROR ++ {"CONNECT_ERROR", ERR_LIB_BIO, BIO_R_CONNECT_ERROR}, ++ #else ++ {"CONNECT_ERROR", 32, 103}, ++ #endif ++ #ifdef BIO_R_CONNECT_TIMEOUT ++ {"CONNECT_TIMEOUT", ERR_LIB_BIO, BIO_R_CONNECT_TIMEOUT}, ++ #else ++ {"CONNECT_TIMEOUT", 32, 147}, ++ #endif ++ #ifdef BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", ERR_LIB_BIO, BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET}, ++ #else ++ {"GETHOSTBYNAME_ADDR_IS_NOT_AF_INET", 32, 107}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_ERROR ++ {"GETSOCKNAME_ERROR", ERR_LIB_BIO, BIO_R_GETSOCKNAME_ERROR}, ++ #else ++ {"GETSOCKNAME_ERROR", 32, 132}, ++ #endif ++ #ifdef BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", ERR_LIB_BIO, BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS}, ++ #else ++ {"GETSOCKNAME_TRUNCATED_ADDRESS", 32, 133}, ++ #endif ++ #ifdef BIO_R_GETTING_SOCKTYPE ++ {"GETTING_SOCKTYPE", ERR_LIB_BIO, BIO_R_GETTING_SOCKTYPE}, ++ #else ++ {"GETTING_SOCKTYPE", 32, 134}, ++ #endif ++ #ifdef BIO_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_BIO, BIO_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 32, 125}, ++ #endif ++ #ifdef BIO_R_INVALID_SOCKET ++ {"INVALID_SOCKET", ERR_LIB_BIO, BIO_R_INVALID_SOCKET}, ++ #else ++ {"INVALID_SOCKET", 32, 135}, ++ #endif ++ #ifdef BIO_R_IN_USE ++ {"IN_USE", ERR_LIB_BIO, BIO_R_IN_USE}, ++ #else ++ {"IN_USE", 32, 123}, ++ #endif ++ #ifdef BIO_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_BIO, BIO_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 32, 102}, ++ #endif ++ #ifdef BIO_R_LISTEN_V6_ONLY ++ {"LISTEN_V6_ONLY", ERR_LIB_BIO, BIO_R_LISTEN_V6_ONLY}, ++ #else ++ {"LISTEN_V6_ONLY", 32, 136}, ++ #endif ++ #ifdef BIO_R_LOCAL_ADDR_NOT_AVAILABLE ++ {"LOCAL_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_LOCAL_ADDR_NOT_AVAILABLE}, ++ #else ++ {"LOCAL_ADDR_NOT_AVAILABLE", 32, 111}, ++ #endif ++ #ifdef BIO_R_LOOKUP_RETURNED_NOTHING ++ {"LOOKUP_RETURNED_NOTHING", ERR_LIB_BIO, BIO_R_LOOKUP_RETURNED_NOTHING}, ++ #else ++ {"LOOKUP_RETURNED_NOTHING", 32, 142}, ++ #endif ++ #ifdef BIO_R_MALFORMED_HOST_OR_SERVICE ++ {"MALFORMED_HOST_OR_SERVICE", ERR_LIB_BIO, BIO_R_MALFORMED_HOST_OR_SERVICE}, ++ #else ++ {"MALFORMED_HOST_OR_SERVICE", 32, 130}, ++ #endif ++ #ifdef BIO_R_NBIO_CONNECT_ERROR ++ {"NBIO_CONNECT_ERROR", ERR_LIB_BIO, BIO_R_NBIO_CONNECT_ERROR}, ++ #else ++ {"NBIO_CONNECT_ERROR", 32, 110}, ++ #endif ++ #ifdef BIO_R_NON_FATAL ++ {"NON_FATAL", ERR_LIB_BIO, BIO_R_NON_FATAL}, ++ #else ++ {"NON_FATAL", 32, 112}, ++ #endif ++ #ifdef BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED", 32, 143}, ++ #endif ++ #ifdef BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", ERR_LIB_BIO, BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED}, ++ #else ++ {"NO_HOSTNAME_OR_SERVICE_SPECIFIED", 32, 144}, ++ #endif ++ #ifdef BIO_R_NO_PORT_DEFINED ++ {"NO_PORT_DEFINED", ERR_LIB_BIO, BIO_R_NO_PORT_DEFINED}, ++ #else ++ {"NO_PORT_DEFINED", 32, 113}, ++ #endif ++ #ifdef BIO_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_BIO, BIO_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 32, 128}, ++ #endif ++ #ifdef BIO_R_PEER_ADDR_NOT_AVAILABLE ++ {"PEER_ADDR_NOT_AVAILABLE", ERR_LIB_BIO, BIO_R_PEER_ADDR_NOT_AVAILABLE}, ++ #else ++ {"PEER_ADDR_NOT_AVAILABLE", 32, 114}, ++ #endif ++ #ifdef BIO_R_PORT_MISMATCH ++ {"PORT_MISMATCH", ERR_LIB_BIO, BIO_R_PORT_MISMATCH}, ++ #else ++ {"PORT_MISMATCH", 32, 150}, ++ #endif ++ #ifdef BIO_R_TFO_DISABLED ++ {"TFO_DISABLED", ERR_LIB_BIO, BIO_R_TFO_DISABLED}, ++ #else ++ {"TFO_DISABLED", 32, 106}, ++ #endif ++ #ifdef BIO_R_TFO_NO_KERNEL_SUPPORT ++ {"TFO_NO_KERNEL_SUPPORT", ERR_LIB_BIO, BIO_R_TFO_NO_KERNEL_SUPPORT}, ++ #else ++ {"TFO_NO_KERNEL_SUPPORT", 32, 108}, ++ #endif ++ #ifdef BIO_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_BIO, BIO_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 32, 104}, ++ #endif ++ #ifdef BIO_R_TRANSFER_TIMEOUT ++ {"TRANSFER_TIMEOUT", ERR_LIB_BIO, BIO_R_TRANSFER_TIMEOUT}, ++ #else ++ {"TRANSFER_TIMEOUT", 32, 105}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_BIND_SOCKET ++ {"UNABLE_TO_BIND_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_BIND_SOCKET}, ++ #else ++ {"UNABLE_TO_BIND_SOCKET", 32, 117}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_CREATE_SOCKET ++ {"UNABLE_TO_CREATE_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_CREATE_SOCKET}, ++ #else ++ {"UNABLE_TO_CREATE_SOCKET", 32, 118}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_KEEPALIVE ++ {"UNABLE_TO_KEEPALIVE", ERR_LIB_BIO, BIO_R_UNABLE_TO_KEEPALIVE}, ++ #else ++ {"UNABLE_TO_KEEPALIVE", 32, 137}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_LISTEN_SOCKET ++ {"UNABLE_TO_LISTEN_SOCKET", ERR_LIB_BIO, BIO_R_UNABLE_TO_LISTEN_SOCKET}, ++ #else ++ {"UNABLE_TO_LISTEN_SOCKET", 32, 119}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_NODELAY ++ {"UNABLE_TO_NODELAY", ERR_LIB_BIO, BIO_R_UNABLE_TO_NODELAY}, ++ #else ++ {"UNABLE_TO_NODELAY", 32, 138}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_REUSEADDR ++ {"UNABLE_TO_REUSEADDR", ERR_LIB_BIO, BIO_R_UNABLE_TO_REUSEADDR}, ++ #else ++ {"UNABLE_TO_REUSEADDR", 32, 139}, ++ #endif ++ #ifdef BIO_R_UNABLE_TO_TFO ++ {"UNABLE_TO_TFO", ERR_LIB_BIO, BIO_R_UNABLE_TO_TFO}, ++ #else ++ {"UNABLE_TO_TFO", 32, 109}, ++ #endif ++ #ifdef BIO_R_UNAVAILABLE_IP_FAMILY ++ {"UNAVAILABLE_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNAVAILABLE_IP_FAMILY}, ++ #else ++ {"UNAVAILABLE_IP_FAMILY", 32, 145}, ++ #endif ++ #ifdef BIO_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_BIO, BIO_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 32, 120}, ++ #endif ++ #ifdef BIO_R_UNKNOWN_INFO_TYPE ++ {"UNKNOWN_INFO_TYPE", ERR_LIB_BIO, BIO_R_UNKNOWN_INFO_TYPE}, ++ #else ++ {"UNKNOWN_INFO_TYPE", 32, 140}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_IP_FAMILY ++ {"UNSUPPORTED_IP_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_IP_FAMILY}, ++ #else ++ {"UNSUPPORTED_IP_FAMILY", 32, 146}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_METHOD ++ {"UNSUPPORTED_METHOD", ERR_LIB_BIO, BIO_R_UNSUPPORTED_METHOD}, ++ #else ++ {"UNSUPPORTED_METHOD", 32, 121}, ++ #endif ++ #ifdef BIO_R_UNSUPPORTED_PROTOCOL_FAMILY ++ {"UNSUPPORTED_PROTOCOL_FAMILY", ERR_LIB_BIO, BIO_R_UNSUPPORTED_PROTOCOL_FAMILY}, ++ #else ++ {"UNSUPPORTED_PROTOCOL_FAMILY", 32, 131}, ++ #endif ++ #ifdef BIO_R_WRITE_TO_READ_ONLY_BIO ++ {"WRITE_TO_READ_ONLY_BIO", ERR_LIB_BIO, BIO_R_WRITE_TO_READ_ONLY_BIO}, ++ #else ++ {"WRITE_TO_READ_ONLY_BIO", 32, 126}, ++ #endif ++ #ifdef BIO_R_WSASTARTUP ++ {"WSASTARTUP", ERR_LIB_BIO, BIO_R_WSASTARTUP}, ++ #else ++ {"WSASTARTUP", 32, 122}, ++ #endif ++ #ifdef BN_R_ARG2_LT_ARG3 ++ {"ARG2_LT_ARG3", ERR_LIB_BN, BN_R_ARG2_LT_ARG3}, ++ #else ++ {"ARG2_LT_ARG3", 3, 100}, ++ #endif ++ #ifdef BN_R_BAD_RECIPROCAL ++ {"BAD_RECIPROCAL", ERR_LIB_BN, BN_R_BAD_RECIPROCAL}, ++ #else ++ {"BAD_RECIPROCAL", 3, 101}, ++ #endif ++ #ifdef BN_R_BIGNUM_TOO_LONG ++ {"BIGNUM_TOO_LONG", ERR_LIB_BN, BN_R_BIGNUM_TOO_LONG}, ++ #else ++ {"BIGNUM_TOO_LONG", 3, 114}, ++ #endif ++ #ifdef BN_R_BITS_TOO_SMALL ++ {"BITS_TOO_SMALL", ERR_LIB_BN, BN_R_BITS_TOO_SMALL}, ++ #else ++ {"BITS_TOO_SMALL", 3, 118}, ++ #endif ++ #ifdef BN_R_CALLED_WITH_EVEN_MODULUS ++ {"CALLED_WITH_EVEN_MODULUS", ERR_LIB_BN, BN_R_CALLED_WITH_EVEN_MODULUS}, ++ #else ++ {"CALLED_WITH_EVEN_MODULUS", 3, 102}, ++ #endif ++ #ifdef BN_R_DIV_BY_ZERO ++ {"DIV_BY_ZERO", ERR_LIB_BN, BN_R_DIV_BY_ZERO}, ++ #else ++ {"DIV_BY_ZERO", 3, 103}, ++ #endif ++ #ifdef BN_R_ENCODING_ERROR ++ {"ENCODING_ERROR", ERR_LIB_BN, BN_R_ENCODING_ERROR}, ++ #else ++ {"ENCODING_ERROR", 3, 104}, ++ #endif ++ #ifdef BN_R_EXPAND_ON_STATIC_BIGNUM_DATA ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", ERR_LIB_BN, BN_R_EXPAND_ON_STATIC_BIGNUM_DATA}, ++ #else ++ {"EXPAND_ON_STATIC_BIGNUM_DATA", 3, 105}, ++ #endif ++ #ifdef BN_R_INPUT_NOT_REDUCED ++ {"INPUT_NOT_REDUCED", ERR_LIB_BN, BN_R_INPUT_NOT_REDUCED}, ++ #else ++ {"INPUT_NOT_REDUCED", 3, 110}, ++ #endif ++ #ifdef BN_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_BN, BN_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 3, 106}, ++ #endif ++ #ifdef BN_R_INVALID_RANGE ++ {"INVALID_RANGE", ERR_LIB_BN, BN_R_INVALID_RANGE}, ++ #else ++ {"INVALID_RANGE", 3, 115}, ++ #endif ++ #ifdef BN_R_INVALID_SHIFT ++ {"INVALID_SHIFT", ERR_LIB_BN, BN_R_INVALID_SHIFT}, ++ #else ++ {"INVALID_SHIFT", 3, 119}, ++ #endif ++ #ifdef BN_R_NOT_A_SQUARE ++ {"NOT_A_SQUARE", ERR_LIB_BN, BN_R_NOT_A_SQUARE}, ++ #else ++ {"NOT_A_SQUARE", 3, 111}, ++ #endif ++ #ifdef BN_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_BN, BN_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 3, 107}, ++ #endif ++ #ifdef BN_R_NO_INVERSE ++ {"NO_INVERSE", ERR_LIB_BN, BN_R_NO_INVERSE}, ++ #else ++ {"NO_INVERSE", 3, 108}, ++ #endif ++ #ifdef BN_R_NO_PRIME_CANDIDATE ++ {"NO_PRIME_CANDIDATE", ERR_LIB_BN, BN_R_NO_PRIME_CANDIDATE}, ++ #else ++ {"NO_PRIME_CANDIDATE", 3, 121}, ++ #endif ++ #ifdef BN_R_NO_SOLUTION ++ {"NO_SOLUTION", ERR_LIB_BN, BN_R_NO_SOLUTION}, ++ #else ++ {"NO_SOLUTION", 3, 116}, ++ #endif ++ #ifdef BN_R_NO_SUITABLE_DIGEST ++ {"NO_SUITABLE_DIGEST", ERR_LIB_BN, BN_R_NO_SUITABLE_DIGEST}, ++ #else ++ {"NO_SUITABLE_DIGEST", 3, 120}, ++ #endif ++ #ifdef BN_R_PRIVATE_KEY_TOO_LARGE ++ {"PRIVATE_KEY_TOO_LARGE", ERR_LIB_BN, BN_R_PRIVATE_KEY_TOO_LARGE}, ++ #else ++ {"PRIVATE_KEY_TOO_LARGE", 3, 117}, ++ #endif ++ #ifdef BN_R_P_IS_NOT_PRIME ++ {"P_IS_NOT_PRIME", ERR_LIB_BN, BN_R_P_IS_NOT_PRIME}, ++ #else ++ {"P_IS_NOT_PRIME", 3, 112}, ++ #endif ++ #ifdef BN_R_TOO_MANY_ITERATIONS ++ {"TOO_MANY_ITERATIONS", ERR_LIB_BN, BN_R_TOO_MANY_ITERATIONS}, ++ #else ++ {"TOO_MANY_ITERATIONS", 3, 113}, ++ #endif ++ #ifdef BN_R_TOO_MANY_TEMPORARY_VARIABLES ++ {"TOO_MANY_TEMPORARY_VARIABLES", ERR_LIB_BN, BN_R_TOO_MANY_TEMPORARY_VARIABLES}, ++ #else ++ {"TOO_MANY_TEMPORARY_VARIABLES", 3, 109}, ++ #endif ++ #ifdef CMP_R_ALGORITHM_NOT_SUPPORTED ++ {"ALGORITHM_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_ALGORITHM_NOT_SUPPORTED}, ++ #else ++ {"ALGORITHM_NOT_SUPPORTED", 58, 139}, ++ #endif ++ #ifdef CMP_R_BAD_CHECKAFTER_IN_POLLREP ++ {"BAD_CHECKAFTER_IN_POLLREP", ERR_LIB_CMP, CMP_R_BAD_CHECKAFTER_IN_POLLREP}, ++ #else ++ {"BAD_CHECKAFTER_IN_POLLREP", 58, 167}, ++ #endif ++ #ifdef CMP_R_BAD_REQUEST_ID ++ {"BAD_REQUEST_ID", ERR_LIB_CMP, CMP_R_BAD_REQUEST_ID}, ++ #else ++ {"BAD_REQUEST_ID", 58, 108}, ++ #endif ++ #ifdef CMP_R_CERTHASH_UNMATCHED ++ {"CERTHASH_UNMATCHED", ERR_LIB_CMP, CMP_R_CERTHASH_UNMATCHED}, ++ #else ++ {"CERTHASH_UNMATCHED", 58, 156}, ++ #endif ++ #ifdef CMP_R_CERTID_NOT_FOUND ++ {"CERTID_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTID_NOT_FOUND}, ++ #else ++ {"CERTID_NOT_FOUND", 58, 109}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_ACCEPTED ++ {"CERTIFICATE_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_ACCEPTED}, ++ #else ++ {"CERTIFICATE_NOT_ACCEPTED", 58, 169}, ++ #endif ++ #ifdef CMP_R_CERTIFICATE_NOT_FOUND ++ {"CERTIFICATE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"CERTIFICATE_NOT_FOUND", 58, 112}, ++ #endif ++ #ifdef CMP_R_CERTREQMSG_NOT_FOUND ++ {"CERTREQMSG_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTREQMSG_NOT_FOUND}, ++ #else ++ {"CERTREQMSG_NOT_FOUND", 58, 157}, ++ #endif ++ #ifdef CMP_R_CERTRESPONSE_NOT_FOUND ++ {"CERTRESPONSE_NOT_FOUND", ERR_LIB_CMP, CMP_R_CERTRESPONSE_NOT_FOUND}, ++ #else ++ {"CERTRESPONSE_NOT_FOUND", 58, 113}, ++ #endif ++ #ifdef CMP_R_CERT_AND_KEY_DO_NOT_MATCH ++ {"CERT_AND_KEY_DO_NOT_MATCH", ERR_LIB_CMP, CMP_R_CERT_AND_KEY_DO_NOT_MATCH}, ++ #else ++ {"CERT_AND_KEY_DO_NOT_MATCH", 58, 114}, ++ #endif ++ #ifdef CMP_R_CHECKAFTER_OUT_OF_RANGE ++ {"CHECKAFTER_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_CHECKAFTER_OUT_OF_RANGE}, ++ #else ++ {"CHECKAFTER_OUT_OF_RANGE", 58, 181}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_KEYUPDATEWARNING ++ {"ENCOUNTERED_KEYUPDATEWARNING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_KEYUPDATEWARNING}, ++ #else ++ {"ENCOUNTERED_KEYUPDATEWARNING", 58, 176}, ++ #endif ++ #ifdef CMP_R_ENCOUNTERED_WAITING ++ {"ENCOUNTERED_WAITING", ERR_LIB_CMP, CMP_R_ENCOUNTERED_WAITING}, ++ #else ++ {"ENCOUNTERED_WAITING", 58, 162}, ++ #endif ++ #ifdef CMP_R_ERROR_CALCULATING_PROTECTION ++ {"ERROR_CALCULATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_CALCULATING_PROTECTION}, ++ #else ++ {"ERROR_CALCULATING_PROTECTION", 58, 115}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTCONF ++ {"ERROR_CREATING_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTCONF}, ++ #else ++ {"ERROR_CREATING_CERTCONF", 58, 116}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREP ++ {"ERROR_CREATING_CERTREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREP}, ++ #else ++ {"ERROR_CREATING_CERTREP", 58, 117}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_CERTREQ ++ {"ERROR_CREATING_CERTREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_CERTREQ}, ++ #else ++ {"ERROR_CREATING_CERTREQ", 58, 163}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_ERROR ++ {"ERROR_CREATING_ERROR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_ERROR}, ++ #else ++ {"ERROR_CREATING_ERROR", 58, 118}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENM ++ {"ERROR_CREATING_GENM", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENM}, ++ #else ++ {"ERROR_CREATING_GENM", 58, 119}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_GENP ++ {"ERROR_CREATING_GENP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_GENP}, ++ #else ++ {"ERROR_CREATING_GENP", 58, 120}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_PKICONF ++ {"ERROR_CREATING_PKICONF", ERR_LIB_CMP, CMP_R_ERROR_CREATING_PKICONF}, ++ #else ++ {"ERROR_CREATING_PKICONF", 58, 122}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREP ++ {"ERROR_CREATING_POLLREP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREP}, ++ #else ++ {"ERROR_CREATING_POLLREP", 58, 123}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_POLLREQ ++ {"ERROR_CREATING_POLLREQ", ERR_LIB_CMP, CMP_R_ERROR_CREATING_POLLREQ}, ++ #else ++ {"ERROR_CREATING_POLLREQ", 58, 124}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RP ++ {"ERROR_CREATING_RP", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RP}, ++ #else ++ {"ERROR_CREATING_RP", 58, 125}, ++ #endif ++ #ifdef CMP_R_ERROR_CREATING_RR ++ {"ERROR_CREATING_RR", ERR_LIB_CMP, CMP_R_ERROR_CREATING_RR}, ++ #else ++ {"ERROR_CREATING_RR", 58, 126}, ++ #endif ++ #ifdef CMP_R_ERROR_PARSING_PKISTATUS ++ {"ERROR_PARSING_PKISTATUS", ERR_LIB_CMP, CMP_R_ERROR_PARSING_PKISTATUS}, ++ #else ++ {"ERROR_PARSING_PKISTATUS", 58, 107}, ++ #endif ++ #ifdef CMP_R_ERROR_PROCESSING_MESSAGE ++ {"ERROR_PROCESSING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROCESSING_MESSAGE}, ++ #else ++ {"ERROR_PROCESSING_MESSAGE", 58, 158}, ++ #endif ++ #ifdef CMP_R_ERROR_PROTECTING_MESSAGE ++ {"ERROR_PROTECTING_MESSAGE", ERR_LIB_CMP, CMP_R_ERROR_PROTECTING_MESSAGE}, ++ #else ++ {"ERROR_PROTECTING_MESSAGE", 58, 127}, ++ #endif ++ #ifdef CMP_R_ERROR_SETTING_CERTHASH ++ {"ERROR_SETTING_CERTHASH", ERR_LIB_CMP, CMP_R_ERROR_SETTING_CERTHASH}, ++ #else ++ {"ERROR_SETTING_CERTHASH", 58, 128}, ++ #endif ++ #ifdef CMP_R_ERROR_UNEXPECTED_CERTCONF ++ {"ERROR_UNEXPECTED_CERTCONF", ERR_LIB_CMP, CMP_R_ERROR_UNEXPECTED_CERTCONF}, ++ #else ++ {"ERROR_UNEXPECTED_CERTCONF", 58, 160}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_PROTECTION ++ {"ERROR_VALIDATING_PROTECTION", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_PROTECTION}, ++ #else ++ {"ERROR_VALIDATING_PROTECTION", 58, 140}, ++ #endif ++ #ifdef CMP_R_ERROR_VALIDATING_SIGNATURE ++ {"ERROR_VALIDATING_SIGNATURE", ERR_LIB_CMP, CMP_R_ERROR_VALIDATING_SIGNATURE}, ++ #else ++ {"ERROR_VALIDATING_SIGNATURE", 58, 171}, ++ #endif ++ #ifdef CMP_R_EXPECTED_POLLREQ ++ {"EXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_EXPECTED_POLLREQ}, ++ #else ++ {"EXPECTED_POLLREQ", 58, 104}, ++ #endif ++ #ifdef CMP_R_FAILED_BUILDING_OWN_CHAIN ++ {"FAILED_BUILDING_OWN_CHAIN", ERR_LIB_CMP, CMP_R_FAILED_BUILDING_OWN_CHAIN}, ++ #else ++ {"FAILED_BUILDING_OWN_CHAIN", 58, 164}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_CENTRAL_GEN_KEY}, ++ #else ++ {"FAILED_EXTRACTING_CENTRAL_GEN_KEY", 58, 203}, ++ #endif ++ #ifdef CMP_R_FAILED_EXTRACTING_PUBKEY ++ {"FAILED_EXTRACTING_PUBKEY", ERR_LIB_CMP, CMP_R_FAILED_EXTRACTING_PUBKEY}, ++ #else ++ {"FAILED_EXTRACTING_PUBKEY", 58, 141}, ++ #endif ++ #ifdef CMP_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CMP, CMP_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 58, 110}, ++ #endif ++ #ifdef CMP_R_FAIL_INFO_OUT_OF_RANGE ++ {"FAIL_INFO_OUT_OF_RANGE", ERR_LIB_CMP, CMP_R_FAIL_INFO_OUT_OF_RANGE}, ++ #else ++ {"FAIL_INFO_OUT_OF_RANGE", 58, 129}, ++ #endif ++ #ifdef CMP_R_GENERATE_CERTREQTEMPLATE ++ {"GENERATE_CERTREQTEMPLATE", ERR_LIB_CMP, CMP_R_GENERATE_CERTREQTEMPLATE}, ++ #else ++ {"GENERATE_CERTREQTEMPLATE", 58, 197}, ++ #endif ++ #ifdef CMP_R_GENERATE_CRLSTATUS ++ {"GENERATE_CRLSTATUS", ERR_LIB_CMP, CMP_R_GENERATE_CRLSTATUS}, ++ #else ++ {"GENERATE_CRLSTATUS", 58, 198}, ++ #endif ++ #ifdef CMP_R_GETTING_GENP ++ {"GETTING_GENP", ERR_LIB_CMP, CMP_R_GETTING_GENP}, ++ #else ++ {"GETTING_GENP", 58, 192}, ++ #endif ++ #ifdef CMP_R_GET_ITAV ++ {"GET_ITAV", ERR_LIB_CMP, CMP_R_GET_ITAV}, ++ #else ++ {"GET_ITAV", 58, 199}, ++ #endif ++ #ifdef CMP_R_INVALID_ARGS ++ {"INVALID_ARGS", ERR_LIB_CMP, CMP_R_INVALID_ARGS}, ++ #else ++ {"INVALID_ARGS", 58, 100}, ++ #endif ++ #ifdef CMP_R_INVALID_GENP ++ {"INVALID_GENP", ERR_LIB_CMP, CMP_R_INVALID_GENP}, ++ #else ++ {"INVALID_GENP", 58, 193}, ++ #endif ++ #ifdef CMP_R_INVALID_KEYSPEC ++ {"INVALID_KEYSPEC", ERR_LIB_CMP, CMP_R_INVALID_KEYSPEC}, ++ #else ++ {"INVALID_KEYSPEC", 58, 202}, ++ #endif ++ #ifdef CMP_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_CMP, CMP_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 58, 174}, ++ #endif ++ #ifdef CMP_R_INVALID_ROOTCAKEYUPDATE ++ {"INVALID_ROOTCAKEYUPDATE", ERR_LIB_CMP, CMP_R_INVALID_ROOTCAKEYUPDATE}, ++ #else ++ {"INVALID_ROOTCAKEYUPDATE", 58, 195}, ++ #endif ++ #ifdef CMP_R_MISSING_CENTRAL_GEN_KEY ++ {"MISSING_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_MISSING_CENTRAL_GEN_KEY}, ++ #else ++ {"MISSING_CENTRAL_GEN_KEY", 58, 204}, ++ #endif ++ #ifdef CMP_R_MISSING_CERTID ++ {"MISSING_CERTID", ERR_LIB_CMP, CMP_R_MISSING_CERTID}, ++ #else ++ {"MISSING_CERTID", 58, 165}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_KEY_INPUT_FOR_CREATING_PROTECTION}, ++ #else ++ {"MISSING_KEY_INPUT_FOR_CREATING_PROTECTION", 58, 130}, ++ #endif ++ #ifdef CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", ERR_LIB_CMP, CMP_R_MISSING_KEY_USAGE_DIGITALSIGNATURE}, ++ #else ++ {"MISSING_KEY_USAGE_DIGITALSIGNATURE", 58, 142}, ++ #endif ++ #ifdef CMP_R_MISSING_P10CSR ++ {"MISSING_P10CSR", ERR_LIB_CMP, CMP_R_MISSING_P10CSR}, ++ #else ++ {"MISSING_P10CSR", 58, 121}, ++ #endif ++ #ifdef CMP_R_MISSING_PBM_SECRET ++ {"MISSING_PBM_SECRET", ERR_LIB_CMP, CMP_R_MISSING_PBM_SECRET}, ++ #else ++ {"MISSING_PBM_SECRET", 58, 166}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 58, 131}, ++ #endif ++ #ifdef CMP_R_MISSING_PRIVATE_KEY_FOR_POPO ++ {"MISSING_PRIVATE_KEY_FOR_POPO", ERR_LIB_CMP, CMP_R_MISSING_PRIVATE_KEY_FOR_POPO}, ++ #else ++ {"MISSING_PRIVATE_KEY_FOR_POPO", 58, 190}, ++ #endif ++ #ifdef CMP_R_MISSING_PROTECTION ++ {"MISSING_PROTECTION", ERR_LIB_CMP, CMP_R_MISSING_PROTECTION}, ++ #else ++ {"MISSING_PROTECTION", 58, 143}, ++ #endif ++ #ifdef CMP_R_MISSING_PUBLIC_KEY ++ {"MISSING_PUBLIC_KEY", ERR_LIB_CMP, CMP_R_MISSING_PUBLIC_KEY}, ++ #else ++ {"MISSING_PUBLIC_KEY", 58, 183}, ++ #endif ++ #ifdef CMP_R_MISSING_REFERENCE_CERT ++ {"MISSING_REFERENCE_CERT", ERR_LIB_CMP, CMP_R_MISSING_REFERENCE_CERT}, ++ #else ++ {"MISSING_REFERENCE_CERT", 58, 168}, ++ #endif ++ #ifdef CMP_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_CMP, CMP_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 58, 178}, ++ #endif ++ #ifdef CMP_R_MISSING_SENDER_IDENTIFICATION ++ {"MISSING_SENDER_IDENTIFICATION", ERR_LIB_CMP, CMP_R_MISSING_SENDER_IDENTIFICATION}, ++ #else ++ {"MISSING_SENDER_IDENTIFICATION", 58, 111}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_ANCHOR ++ {"MISSING_TRUST_ANCHOR", ERR_LIB_CMP, CMP_R_MISSING_TRUST_ANCHOR}, ++ #else ++ {"MISSING_TRUST_ANCHOR", 58, 179}, ++ #endif ++ #ifdef CMP_R_MISSING_TRUST_STORE ++ {"MISSING_TRUST_STORE", ERR_LIB_CMP, CMP_R_MISSING_TRUST_STORE}, ++ #else ++ {"MISSING_TRUST_STORE", 58, 144}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_REQUESTS_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_REQUESTS_NOT_SUPPORTED", 58, 161}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_MULTIPLE_RESPONSES_NOT_SUPPORTED}, ++ #else ++ {"MULTIPLE_RESPONSES_NOT_SUPPORTED", 58, 170}, ++ #endif ++ #ifdef CMP_R_MULTIPLE_SAN_SOURCES ++ {"MULTIPLE_SAN_SOURCES", ERR_LIB_CMP, CMP_R_MULTIPLE_SAN_SOURCES}, ++ #else ++ {"MULTIPLE_SAN_SOURCES", 58, 102}, ++ #endif ++ #ifdef CMP_R_NO_STDIO ++ {"NO_STDIO", ERR_LIB_CMP, CMP_R_NO_STDIO}, ++ #else ++ {"NO_STDIO", 58, 194}, ++ #endif ++ #ifdef CMP_R_NO_SUITABLE_SENDER_CERT ++ {"NO_SUITABLE_SENDER_CERT", ERR_LIB_CMP, CMP_R_NO_SUITABLE_SENDER_CERT}, ++ #else ++ {"NO_SUITABLE_SENDER_CERT", 58, 145}, ++ #endif ++ #ifdef CMP_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CMP, CMP_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 58, 103}, ++ #endif ++ #ifdef CMP_R_PKIBODY_ERROR ++ {"PKIBODY_ERROR", ERR_LIB_CMP, CMP_R_PKIBODY_ERROR}, ++ #else ++ {"PKIBODY_ERROR", 58, 146}, ++ #endif ++ #ifdef CMP_R_PKISTATUSINFO_NOT_FOUND ++ {"PKISTATUSINFO_NOT_FOUND", ERR_LIB_CMP, CMP_R_PKISTATUSINFO_NOT_FOUND}, ++ #else ++ {"PKISTATUSINFO_NOT_FOUND", 58, 132}, ++ #endif ++ #ifdef CMP_R_POLLING_FAILED ++ {"POLLING_FAILED", ERR_LIB_CMP, CMP_R_POLLING_FAILED}, ++ #else ++ {"POLLING_FAILED", 58, 172}, ++ #endif ++ #ifdef CMP_R_POTENTIALLY_INVALID_CERTIFICATE ++ {"POTENTIALLY_INVALID_CERTIFICATE", ERR_LIB_CMP, CMP_R_POTENTIALLY_INVALID_CERTIFICATE}, ++ #else ++ {"POTENTIALLY_INVALID_CERTIFICATE", 58, 147}, ++ #endif ++ #ifdef CMP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_CMP, CMP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 58, 180}, ++ #endif ++ #ifdef CMP_R_RECIPNONCE_UNMATCHED ++ {"RECIPNONCE_UNMATCHED", ERR_LIB_CMP, CMP_R_RECIPNONCE_UNMATCHED}, ++ #else ++ {"RECIPNONCE_UNMATCHED", 58, 148}, ++ #endif ++ #ifdef CMP_R_REQUEST_NOT_ACCEPTED ++ {"REQUEST_NOT_ACCEPTED", ERR_LIB_CMP, CMP_R_REQUEST_NOT_ACCEPTED}, ++ #else ++ {"REQUEST_NOT_ACCEPTED", 58, 149}, ++ #endif ++ #ifdef CMP_R_REQUEST_REJECTED_BY_SERVER ++ {"REQUEST_REJECTED_BY_SERVER", ERR_LIB_CMP, CMP_R_REQUEST_REJECTED_BY_SERVER}, ++ #else ++ {"REQUEST_REJECTED_BY_SERVER", 58, 182}, ++ #endif ++ #ifdef CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", ERR_LIB_CMP, CMP_R_SENDER_GENERALNAME_TYPE_NOT_SUPPORTED}, ++ #else ++ {"SENDER_GENERALNAME_TYPE_NOT_SUPPORTED", 58, 150}, ++ #endif ++ #ifdef CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", ERR_LIB_CMP, CMP_R_SRVCERT_DOES_NOT_VALIDATE_MSG}, ++ #else ++ {"SRVCERT_DOES_NOT_VALIDATE_MSG", 58, 151}, ++ #endif ++ #ifdef CMP_R_TOTAL_TIMEOUT ++ {"TOTAL_TIMEOUT", ERR_LIB_CMP, CMP_R_TOTAL_TIMEOUT}, ++ #else ++ {"TOTAL_TIMEOUT", 58, 184}, ++ #endif ++ #ifdef CMP_R_TRANSACTIONID_UNMATCHED ++ {"TRANSACTIONID_UNMATCHED", ERR_LIB_CMP, CMP_R_TRANSACTIONID_UNMATCHED}, ++ #else ++ {"TRANSACTIONID_UNMATCHED", 58, 152}, ++ #endif ++ #ifdef CMP_R_TRANSFER_ERROR ++ {"TRANSFER_ERROR", ERR_LIB_CMP, CMP_R_TRANSFER_ERROR}, ++ #else ++ {"TRANSFER_ERROR", 58, 159}, ++ #endif ++ #ifdef CMP_R_UNCLEAN_CTX ++ {"UNCLEAN_CTX", ERR_LIB_CMP, CMP_R_UNCLEAN_CTX}, ++ #else ++ {"UNCLEAN_CTX", 58, 191}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CENTRAL_GEN_KEY ++ {"UNEXPECTED_CENTRAL_GEN_KEY", ERR_LIB_CMP, CMP_R_UNEXPECTED_CENTRAL_GEN_KEY}, ++ #else ++ {"UNEXPECTED_CENTRAL_GEN_KEY", 58, 205}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CERTPROFILE ++ {"UNEXPECTED_CERTPROFILE", ERR_LIB_CMP, CMP_R_UNEXPECTED_CERTPROFILE}, ++ #else ++ {"UNEXPECTED_CERTPROFILE", 58, 196}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_CRLSTATUSLIST ++ {"UNEXPECTED_CRLSTATUSLIST", ERR_LIB_CMP, CMP_R_UNEXPECTED_CRLSTATUSLIST}, ++ #else ++ {"UNEXPECTED_CRLSTATUSLIST", 58, 201}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKIBODY ++ {"UNEXPECTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKIBODY}, ++ #else ++ {"UNEXPECTED_PKIBODY", 58, 133}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PKISTATUS ++ {"UNEXPECTED_PKISTATUS", ERR_LIB_CMP, CMP_R_UNEXPECTED_PKISTATUS}, ++ #else ++ {"UNEXPECTED_PKISTATUS", 58, 185}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_POLLREQ ++ {"UNEXPECTED_POLLREQ", ERR_LIB_CMP, CMP_R_UNEXPECTED_POLLREQ}, ++ #else ++ {"UNEXPECTED_POLLREQ", 58, 105}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_PVNO ++ {"UNEXPECTED_PVNO", ERR_LIB_CMP, CMP_R_UNEXPECTED_PVNO}, ++ #else ++ {"UNEXPECTED_PVNO", 58, 153}, ++ #endif ++ #ifdef CMP_R_UNEXPECTED_SENDER ++ {"UNEXPECTED_SENDER", ERR_LIB_CMP, CMP_R_UNEXPECTED_SENDER}, ++ #else ++ {"UNEXPECTED_SENDER", 58, 106}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_ALGORITHM_ID ++ {"UNKNOWN_ALGORITHM_ID", ERR_LIB_CMP, CMP_R_UNKNOWN_ALGORITHM_ID}, ++ #else ++ {"UNKNOWN_ALGORITHM_ID", 58, 134}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CERT_TYPE ++ {"UNKNOWN_CERT_TYPE", ERR_LIB_CMP, CMP_R_UNKNOWN_CERT_TYPE}, ++ #else ++ {"UNKNOWN_CERT_TYPE", 58, 135}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_CRL_ISSUER ++ {"UNKNOWN_CRL_ISSUER", ERR_LIB_CMP, CMP_R_UNKNOWN_CRL_ISSUER}, ++ #else ++ {"UNKNOWN_CRL_ISSUER", 58, 200}, ++ #endif ++ #ifdef CMP_R_UNKNOWN_PKISTATUS ++ {"UNKNOWN_PKISTATUS", ERR_LIB_CMP, CMP_R_UNKNOWN_PKISTATUS}, ++ #else ++ {"UNKNOWN_PKISTATUS", 58, 186}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CMP, CMP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 58, 136}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_CMP, CMP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 58, 137}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PKIBODY ++ {"UNSUPPORTED_PKIBODY", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PKIBODY}, ++ #else ++ {"UNSUPPORTED_PKIBODY", 58, 101}, ++ #endif ++ #ifdef CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", ERR_LIB_CMP, CMP_R_UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC}, ++ #else ++ {"UNSUPPORTED_PROTECTION_ALG_DHBASEDMAC", 58, 154}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_LARGE ++ {"VALUE_TOO_LARGE", ERR_LIB_CMP, CMP_R_VALUE_TOO_LARGE}, ++ #else ++ {"VALUE_TOO_LARGE", 58, 175}, ++ #endif ++ #ifdef CMP_R_VALUE_TOO_SMALL ++ {"VALUE_TOO_SMALL", ERR_LIB_CMP, CMP_R_VALUE_TOO_SMALL}, ++ #else ++ {"VALUE_TOO_SMALL", 58, 177}, ++ #endif ++ #ifdef CMP_R_WRONG_ALGORITHM_OID ++ {"WRONG_ALGORITHM_OID", ERR_LIB_CMP, CMP_R_WRONG_ALGORITHM_OID}, ++ #else ++ {"WRONG_ALGORITHM_OID", 58, 138}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID ++ {"WRONG_CERTID", ERR_LIB_CMP, CMP_R_WRONG_CERTID}, ++ #else ++ {"WRONG_CERTID", 58, 189}, ++ #endif ++ #ifdef CMP_R_WRONG_CERTID_IN_RP ++ {"WRONG_CERTID_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_CERTID_IN_RP}, ++ #else ++ {"WRONG_CERTID_IN_RP", 58, 187}, ++ #endif ++ #ifdef CMP_R_WRONG_PBM_VALUE ++ {"WRONG_PBM_VALUE", ERR_LIB_CMP, CMP_R_WRONG_PBM_VALUE}, ++ #else ++ {"WRONG_PBM_VALUE", 58, 155}, ++ #endif ++ #ifdef CMP_R_WRONG_RP_COMPONENT_COUNT ++ {"WRONG_RP_COMPONENT_COUNT", ERR_LIB_CMP, CMP_R_WRONG_RP_COMPONENT_COUNT}, ++ #else ++ {"WRONG_RP_COMPONENT_COUNT", 58, 188}, ++ #endif ++ #ifdef CMP_R_WRONG_SERIAL_IN_RP ++ {"WRONG_SERIAL_IN_RP", ERR_LIB_CMP, CMP_R_WRONG_SERIAL_IN_RP}, ++ #else ++ {"WRONG_SERIAL_IN_RP", 58, 173}, ++ #endif ++ #ifdef CMS_R_ADD_SIGNER_ERROR ++ {"ADD_SIGNER_ERROR", ERR_LIB_CMS, CMS_R_ADD_SIGNER_ERROR}, ++ #else ++ {"ADD_SIGNER_ERROR", 46, 99}, ++ #endif ++ #ifdef CMS_R_ATTRIBUTE_ERROR ++ {"ATTRIBUTE_ERROR", ERR_LIB_CMS, CMS_R_ATTRIBUTE_ERROR}, ++ #else ++ {"ATTRIBUTE_ERROR", 46, 161}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_ALREADY_PRESENT ++ {"CERTIFICATE_ALREADY_PRESENT", ERR_LIB_CMS, CMS_R_CERTIFICATE_ALREADY_PRESENT}, ++ #else ++ {"CERTIFICATE_ALREADY_PRESENT", 46, 175}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_HAS_NO_KEYID ++ {"CERTIFICATE_HAS_NO_KEYID", ERR_LIB_CMS, CMS_R_CERTIFICATE_HAS_NO_KEYID}, ++ #else ++ {"CERTIFICATE_HAS_NO_KEYID", 46, 160}, ++ #endif ++ #ifdef CMS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 46, 100}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_IN_ENVELOPED_DATA}, ++ #else ++ {"CIPHER_AEAD_IN_ENVELOPED_DATA", 46, 200}, ++ #endif ++ #ifdef CMS_R_CIPHER_AEAD_SET_TAG_ERROR ++ {"CIPHER_AEAD_SET_TAG_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_AEAD_SET_TAG_ERROR}, ++ #else ++ {"CIPHER_AEAD_SET_TAG_ERROR", 46, 184}, ++ #endif ++ #ifdef CMS_R_CIPHER_GET_TAG ++ {"CIPHER_GET_TAG", ERR_LIB_CMS, CMS_R_CIPHER_GET_TAG}, ++ #else ++ {"CIPHER_GET_TAG", 46, 185}, ++ #endif ++ #ifdef CMS_R_CIPHER_INITIALISATION_ERROR ++ {"CIPHER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_INITIALISATION_ERROR", 46, 101}, ++ #endif ++ #ifdef CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", ERR_LIB_CMS, CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_INITIALISATION_ERROR", 46, 102}, ++ #endif ++ #ifdef CMS_R_CMS_DATAFINAL_ERROR ++ {"CMS_DATAFINAL_ERROR", ERR_LIB_CMS, CMS_R_CMS_DATAFINAL_ERROR}, ++ #else ++ {"CMS_DATAFINAL_ERROR", 46, 103}, ++ #endif ++ #ifdef CMS_R_CMS_LIB ++ {"CMS_LIB", ERR_LIB_CMS, CMS_R_CMS_LIB}, ++ #else ++ {"CMS_LIB", 46, 104}, ++ #endif ++ #ifdef CMS_R_CONTENTIDENTIFIER_MISMATCH ++ {"CONTENTIDENTIFIER_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENTIDENTIFIER_MISMATCH}, ++ #else ++ {"CONTENTIDENTIFIER_MISMATCH", 46, 170}, ++ #endif ++ #ifdef CMS_R_CONTENT_NOT_FOUND ++ {"CONTENT_NOT_FOUND", ERR_LIB_CMS, CMS_R_CONTENT_NOT_FOUND}, ++ #else ++ {"CONTENT_NOT_FOUND", 46, 105}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 46, 171}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_COMPRESSED_DATA", 46, 106}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_ENVELOPED_DATA", 46, 107}, ++ #endif ++ #ifdef CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", ERR_LIB_CMS, CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_SIGNED_DATA", 46, 108}, ++ #endif ++ #ifdef CMS_R_CONTENT_VERIFY_ERROR ++ {"CONTENT_VERIFY_ERROR", ERR_LIB_CMS, CMS_R_CONTENT_VERIFY_ERROR}, ++ #else ++ {"CONTENT_VERIFY_ERROR", 46, 109}, ++ #endif ++ #ifdef CMS_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_CMS, CMS_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 46, 110}, ++ #endif ++ #ifdef CMS_R_CTRL_FAILURE ++ {"CTRL_FAILURE", ERR_LIB_CMS, CMS_R_CTRL_FAILURE}, ++ #else ++ {"CTRL_FAILURE", 46, 111}, ++ #endif ++ #ifdef CMS_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_CMS, CMS_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 46, 187}, ++ #endif ++ #ifdef CMS_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_CMS, CMS_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 46, 112}, ++ #endif ++ #ifdef CMS_R_ERROR_GETTING_PUBLIC_KEY ++ {"ERROR_GETTING_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_ERROR_GETTING_PUBLIC_KEY}, ++ #else ++ {"ERROR_GETTING_PUBLIC_KEY", 46, 113}, ++ #endif ++ #ifdef CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", ERR_LIB_CMS, CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE}, ++ #else ++ {"ERROR_READING_MESSAGEDIGEST_ATTRIBUTE", 46, 114}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_KEY ++ {"ERROR_SETTING_KEY", ERR_LIB_CMS, CMS_R_ERROR_SETTING_KEY}, ++ #else ++ {"ERROR_SETTING_KEY", 46, 115}, ++ #endif ++ #ifdef CMS_R_ERROR_SETTING_RECIPIENTINFO ++ {"ERROR_SETTING_RECIPIENTINFO", ERR_LIB_CMS, CMS_R_ERROR_SETTING_RECIPIENTINFO}, ++ #else ++ {"ERROR_SETTING_RECIPIENTINFO", 46, 116}, ++ #endif ++ #ifdef CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT}, ++ #else ++ {"ERROR_UNSUPPORTED_STATIC_KEY_AGREEMENT", 46, 196}, ++ #endif ++ #ifdef CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", ERR_LIB_CMS, CMS_R_ESS_SIGNING_CERTID_MISMATCH_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTID_MISMATCH_ERROR", 46, 183}, ++ #endif ++ #ifdef CMS_R_INVALID_ENCRYPTED_KEY_LENGTH ++ {"INVALID_ENCRYPTED_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_ENCRYPTED_KEY_LENGTH}, ++ #else ++ {"INVALID_ENCRYPTED_KEY_LENGTH", 46, 117}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", ERR_LIB_CMS, CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER}, ++ #else ++ {"INVALID_KEY_ENCRYPTION_PARAMETER", 46, 176}, ++ #endif ++ #ifdef CMS_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_CMS, CMS_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 46, 118}, ++ #endif ++ #ifdef CMS_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_CMS, CMS_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 46, 190}, ++ #endif ++ #ifdef CMS_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_CMS, CMS_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 46, 191}, ++ #endif ++ #ifdef CMS_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_CMS, CMS_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 46, 186}, ++ #endif ++ #ifdef CMS_R_MD_BIO_INIT_ERROR ++ {"MD_BIO_INIT_ERROR", ERR_LIB_CMS, CMS_R_MD_BIO_INIT_ERROR}, ++ #else ++ {"MD_BIO_INIT_ERROR", 46, 119}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH", 46, 120}, ++ #endif ++ #ifdef CMS_R_MESSAGEDIGEST_WRONG_LENGTH ++ {"MESSAGEDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MESSAGEDIGEST_WRONG_LENGTH}, ++ #else ++ {"MESSAGEDIGEST_WRONG_LENGTH", 46, 121}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_ERROR ++ {"MSGSIGDIGEST_ERROR", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_ERROR}, ++ #else ++ {"MSGSIGDIGEST_ERROR", 46, 172}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE}, ++ #else ++ {"MSGSIGDIGEST_VERIFICATION_FAILURE", 46, 162}, ++ #endif ++ #ifdef CMS_R_MSGSIGDIGEST_WRONG_LENGTH ++ {"MSGSIGDIGEST_WRONG_LENGTH", ERR_LIB_CMS, CMS_R_MSGSIGDIGEST_WRONG_LENGTH}, ++ #else ++ {"MSGSIGDIGEST_WRONG_LENGTH", 46, 163}, ++ #endif ++ #ifdef CMS_R_NEED_ONE_SIGNER ++ {"NEED_ONE_SIGNER", ERR_LIB_CMS, CMS_R_NEED_ONE_SIGNER}, ++ #else ++ {"NEED_ONE_SIGNER", 46, 164}, ++ #endif ++ #ifdef CMS_R_NOT_A_SIGNED_RECEIPT ++ {"NOT_A_SIGNED_RECEIPT", ERR_LIB_CMS, CMS_R_NOT_A_SIGNED_RECEIPT}, ++ #else ++ {"NOT_A_SIGNED_RECEIPT", 46, 165}, ++ #endif ++ #ifdef CMS_R_NOT_ENCRYPTED_DATA ++ {"NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_NOT_ENCRYPTED_DATA}, ++ #else ++ {"NOT_ENCRYPTED_DATA", 46, 122}, ++ #endif ++ #ifdef CMS_R_NOT_KEK ++ {"NOT_KEK", ERR_LIB_CMS, CMS_R_NOT_KEK}, ++ #else ++ {"NOT_KEK", 46, 123}, ++ #endif ++ #ifdef CMS_R_NOT_KEM ++ {"NOT_KEM", ERR_LIB_CMS, CMS_R_NOT_KEM}, ++ #else ++ {"NOT_KEM", 46, 197}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_AGREEMENT ++ {"NOT_KEY_AGREEMENT", ERR_LIB_CMS, CMS_R_NOT_KEY_AGREEMENT}, ++ #else ++ {"NOT_KEY_AGREEMENT", 46, 181}, ++ #endif ++ #ifdef CMS_R_NOT_KEY_TRANSPORT ++ {"NOT_KEY_TRANSPORT", ERR_LIB_CMS, CMS_R_NOT_KEY_TRANSPORT}, ++ #else ++ {"NOT_KEY_TRANSPORT", 46, 124}, ++ #endif ++ #ifdef CMS_R_NOT_PWRI ++ {"NOT_PWRI", ERR_LIB_CMS, CMS_R_NOT_PWRI}, ++ #else ++ {"NOT_PWRI", 46, 177}, ++ #endif ++ #ifdef CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_CMS, CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 46, 125}, ++ #endif ++ #ifdef CMS_R_NO_CIPHER ++ {"NO_CIPHER", ERR_LIB_CMS, CMS_R_NO_CIPHER}, ++ #else ++ {"NO_CIPHER", 46, 126}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_CMS, CMS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 46, 127}, ++ #endif ++ #ifdef CMS_R_NO_CONTENT_TYPE ++ {"NO_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_NO_CONTENT_TYPE}, ++ #else ++ {"NO_CONTENT_TYPE", 46, 173}, ++ #endif ++ #ifdef CMS_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_CMS, CMS_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 46, 128}, ++ #endif ++ #ifdef CMS_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_CMS, CMS_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 46, 129}, ++ #endif ++ #ifdef CMS_R_NO_KEY ++ {"NO_KEY", ERR_LIB_CMS, CMS_R_NO_KEY}, ++ #else ++ {"NO_KEY", 46, 130}, ++ #endif ++ #ifdef CMS_R_NO_KEY_OR_CERT ++ {"NO_KEY_OR_CERT", ERR_LIB_CMS, CMS_R_NO_KEY_OR_CERT}, ++ #else ++ {"NO_KEY_OR_CERT", 46, 174}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_DIGEST ++ {"NO_MATCHING_DIGEST", ERR_LIB_CMS, CMS_R_NO_MATCHING_DIGEST}, ++ #else ++ {"NO_MATCHING_DIGEST", 46, 131}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_RECIPIENT ++ {"NO_MATCHING_RECIPIENT", ERR_LIB_CMS, CMS_R_NO_MATCHING_RECIPIENT}, ++ #else ++ {"NO_MATCHING_RECIPIENT", 46, 132}, ++ #endif ++ #ifdef CMS_R_NO_MATCHING_SIGNATURE ++ {"NO_MATCHING_SIGNATURE", ERR_LIB_CMS, CMS_R_NO_MATCHING_SIGNATURE}, ++ #else ++ {"NO_MATCHING_SIGNATURE", 46, 166}, ++ #endif ++ #ifdef CMS_R_NO_MSGSIGDIGEST ++ {"NO_MSGSIGDIGEST", ERR_LIB_CMS, CMS_R_NO_MSGSIGDIGEST}, ++ #else ++ {"NO_MSGSIGDIGEST", 46, 167}, ++ #endif ++ #ifdef CMS_R_NO_PASSWORD ++ {"NO_PASSWORD", ERR_LIB_CMS, CMS_R_NO_PASSWORD}, ++ #else ++ {"NO_PASSWORD", 46, 178}, ++ #endif ++ #ifdef CMS_R_NO_PRIVATE_KEY ++ {"NO_PRIVATE_KEY", ERR_LIB_CMS, CMS_R_NO_PRIVATE_KEY}, ++ #else ++ {"NO_PRIVATE_KEY", 46, 133}, ++ #endif ++ #ifdef CMS_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_CMS, CMS_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 46, 134}, ++ #endif ++ #ifdef CMS_R_NO_RECEIPT_REQUEST ++ {"NO_RECEIPT_REQUEST", ERR_LIB_CMS, CMS_R_NO_RECEIPT_REQUEST}, ++ #else ++ {"NO_RECEIPT_REQUEST", 46, 168}, ++ #endif ++ #ifdef CMS_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_CMS, CMS_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 46, 135}, ++ #endif ++ #ifdef CMS_R_OPERATION_UNSUPPORTED ++ {"OPERATION_UNSUPPORTED", ERR_LIB_CMS, CMS_R_OPERATION_UNSUPPORTED}, ++ #else ++ {"OPERATION_UNSUPPORTED", 46, 182}, ++ #endif ++ #ifdef CMS_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_CMS, CMS_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 46, 188}, ++ #endif ++ #ifdef CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_CMS, CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 46, 136}, ++ #endif ++ #ifdef CMS_R_RECEIPT_DECODE_ERROR ++ {"RECEIPT_DECODE_ERROR", ERR_LIB_CMS, CMS_R_RECEIPT_DECODE_ERROR}, ++ #else ++ {"RECEIPT_DECODE_ERROR", 46, 169}, ++ #endif ++ #ifdef CMS_R_RECIPIENT_ERROR ++ {"RECIPIENT_ERROR", ERR_LIB_CMS, CMS_R_RECIPIENT_ERROR}, ++ #else ++ {"RECIPIENT_ERROR", 46, 137}, ++ #endif ++ #ifdef CMS_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_CMS, CMS_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 46, 189}, ++ #endif ++ #ifdef CMS_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_CMS, CMS_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 46, 138}, ++ #endif ++ #ifdef CMS_R_SIGNFINAL_ERROR ++ {"SIGNFINAL_ERROR", ERR_LIB_CMS, CMS_R_SIGNFINAL_ERROR}, ++ #else ++ {"SIGNFINAL_ERROR", 46, 139}, ++ #endif ++ #ifdef CMS_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_CMS, CMS_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 46, 140}, ++ #endif ++ #ifdef CMS_R_STORE_INIT_ERROR ++ {"STORE_INIT_ERROR", ERR_LIB_CMS, CMS_R_STORE_INIT_ERROR}, ++ #else ++ {"STORE_INIT_ERROR", 46, 141}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_COMPRESSED_DATA ++ {"TYPE_NOT_COMPRESSED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_COMPRESSED_DATA}, ++ #else ++ {"TYPE_NOT_COMPRESSED_DATA", 46, 142}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DATA ++ {"TYPE_NOT_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DATA}, ++ #else ++ {"TYPE_NOT_DATA", 46, 143}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_DIGESTED_DATA ++ {"TYPE_NOT_DIGESTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_DIGESTED_DATA}, ++ #else ++ {"TYPE_NOT_DIGESTED_DATA", 46, 144}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENCRYPTED_DATA ++ {"TYPE_NOT_ENCRYPTED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENCRYPTED_DATA}, ++ #else ++ {"TYPE_NOT_ENCRYPTED_DATA", 46, 145}, ++ #endif ++ #ifdef CMS_R_TYPE_NOT_ENVELOPED_DATA ++ {"TYPE_NOT_ENVELOPED_DATA", ERR_LIB_CMS, CMS_R_TYPE_NOT_ENVELOPED_DATA}, ++ #else ++ {"TYPE_NOT_ENVELOPED_DATA", 46, 146}, ++ #endif ++ #ifdef CMS_R_UNABLE_TO_FINALIZE_CONTEXT ++ {"UNABLE_TO_FINALIZE_CONTEXT", ERR_LIB_CMS, CMS_R_UNABLE_TO_FINALIZE_CONTEXT}, ++ #else ++ {"UNABLE_TO_FINALIZE_CONTEXT", 46, 147}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_CMS, CMS_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 46, 148}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 46, 149}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_ID ++ {"UNKNOWN_ID", ERR_LIB_CMS, CMS_R_UNKNOWN_ID}, ++ #else ++ {"UNKNOWN_ID", 46, 150}, ++ #endif ++ #ifdef CMS_R_UNKNOWN_KDF_ALGORITHM ++ {"UNKNOWN_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNKNOWN_KDF_ALGORITHM}, ++ #else ++ {"UNKNOWN_KDF_ALGORITHM", 46, 198}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 46, 151}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_CONTENT_ENCRYPTION_ALGORITHM", 46, 194}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 46, 152}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 46, 192}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KDF_ALGORITHM ++ {"UNSUPPORTED_KDF_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KDF_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KDF_ALGORITHM", 46, 199}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEK_ALGORITHM ++ {"UNSUPPORTED_KEK_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEK_ALGORITHM", 46, 153}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM", 46, 179}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 46, 193}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENTINFO_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENTINFO_TYPE", 46, 155}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_RECIPIENT_TYPE ++ {"UNSUPPORTED_RECIPIENT_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_RECIPIENT_TYPE}, ++ #else ++ {"UNSUPPORTED_RECIPIENT_TYPE", 46, 154}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", ERR_LIB_CMS, CMS_R_UNSUPPORTED_SIGNATURE_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_ALGORITHM", 46, 195}, ++ #endif ++ #ifdef CMS_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_CMS, CMS_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 46, 156}, ++ #endif ++ #ifdef CMS_R_UNWRAP_ERROR ++ {"UNWRAP_ERROR", ERR_LIB_CMS, CMS_R_UNWRAP_ERROR}, ++ #else ++ {"UNWRAP_ERROR", 46, 157}, ++ #endif ++ #ifdef CMS_R_UNWRAP_FAILURE ++ {"UNWRAP_FAILURE", ERR_LIB_CMS, CMS_R_UNWRAP_FAILURE}, ++ #else ++ {"UNWRAP_FAILURE", 46, 180}, ++ #endif ++ #ifdef CMS_R_VERIFICATION_FAILURE ++ {"VERIFICATION_FAILURE", ERR_LIB_CMS, CMS_R_VERIFICATION_FAILURE}, ++ #else ++ {"VERIFICATION_FAILURE", 46, 158}, ++ #endif ++ #ifdef CMS_R_WRAP_ERROR ++ {"WRAP_ERROR", ERR_LIB_CMS, CMS_R_WRAP_ERROR}, ++ #else ++ {"WRAP_ERROR", 46, 159}, ++ #endif ++ #ifdef COMP_R_BROTLI_DECODE_ERROR ++ {"BROTLI_DECODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_DECODE_ERROR}, ++ #else ++ {"BROTLI_DECODE_ERROR", 41, 102}, ++ #endif ++ #ifdef COMP_R_BROTLI_ENCODE_ERROR ++ {"BROTLI_ENCODE_ERROR", ERR_LIB_COMP, COMP_R_BROTLI_ENCODE_ERROR}, ++ #else ++ {"BROTLI_ENCODE_ERROR", 41, 103}, ++ #endif ++ #ifdef COMP_R_BROTLI_NOT_SUPPORTED ++ {"BROTLI_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_BROTLI_NOT_SUPPORTED}, ++ #else ++ {"BROTLI_NOT_SUPPORTED", 41, 104}, ++ #endif ++ #ifdef COMP_R_ZLIB_DEFLATE_ERROR ++ {"ZLIB_DEFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_DEFLATE_ERROR}, ++ #else ++ {"ZLIB_DEFLATE_ERROR", 41, 99}, ++ #endif ++ #ifdef COMP_R_ZLIB_INFLATE_ERROR ++ {"ZLIB_INFLATE_ERROR", ERR_LIB_COMP, COMP_R_ZLIB_INFLATE_ERROR}, ++ #else ++ {"ZLIB_INFLATE_ERROR", 41, 100}, ++ #endif ++ #ifdef COMP_R_ZLIB_NOT_SUPPORTED ++ {"ZLIB_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZLIB_NOT_SUPPORTED}, ++ #else ++ {"ZLIB_NOT_SUPPORTED", 41, 101}, ++ #endif ++ #ifdef COMP_R_ZSTD_COMPRESS_ERROR ++ {"ZSTD_COMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_COMPRESS_ERROR}, ++ #else ++ {"ZSTD_COMPRESS_ERROR", 41, 105}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECODE_ERROR ++ {"ZSTD_DECODE_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECODE_ERROR}, ++ #else ++ {"ZSTD_DECODE_ERROR", 41, 106}, ++ #endif ++ #ifdef COMP_R_ZSTD_DECOMPRESS_ERROR ++ {"ZSTD_DECOMPRESS_ERROR", ERR_LIB_COMP, COMP_R_ZSTD_DECOMPRESS_ERROR}, ++ #else ++ {"ZSTD_DECOMPRESS_ERROR", 41, 107}, ++ #endif ++ #ifdef COMP_R_ZSTD_NOT_SUPPORTED ++ {"ZSTD_NOT_SUPPORTED", ERR_LIB_COMP, COMP_R_ZSTD_NOT_SUPPORTED}, ++ #else ++ {"ZSTD_NOT_SUPPORTED", 41, 108}, ++ #endif ++ #ifdef CONF_R_ERROR_LOADING_DSO ++ {"ERROR_LOADING_DSO", ERR_LIB_CONF, CONF_R_ERROR_LOADING_DSO}, ++ #else ++ {"ERROR_LOADING_DSO", 14, 110}, ++ #endif ++ #ifdef CONF_R_INVALID_PRAGMA ++ {"INVALID_PRAGMA", ERR_LIB_CONF, CONF_R_INVALID_PRAGMA}, ++ #else ++ {"INVALID_PRAGMA", 14, 122}, ++ #endif ++ #ifdef CONF_R_LIST_CANNOT_BE_NULL ++ {"LIST_CANNOT_BE_NULL", ERR_LIB_CONF, CONF_R_LIST_CANNOT_BE_NULL}, ++ #else ++ {"LIST_CANNOT_BE_NULL", 14, 115}, ++ #endif ++ #ifdef CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", ERR_LIB_CONF, CONF_R_MANDATORY_BRACES_IN_VARIABLE_EXPANSION}, ++ #else ++ {"MANDATORY_BRACES_IN_VARIABLE_EXPANSION", 14, 123}, ++ #endif ++ #ifdef CONF_R_MISSING_CLOSE_SQUARE_BRACKET ++ {"MISSING_CLOSE_SQUARE_BRACKET", ERR_LIB_CONF, CONF_R_MISSING_CLOSE_SQUARE_BRACKET}, ++ #else ++ {"MISSING_CLOSE_SQUARE_BRACKET", 14, 100}, ++ #endif ++ #ifdef CONF_R_MISSING_EQUAL_SIGN ++ {"MISSING_EQUAL_SIGN", ERR_LIB_CONF, CONF_R_MISSING_EQUAL_SIGN}, ++ #else ++ {"MISSING_EQUAL_SIGN", 14, 101}, ++ #endif ++ #ifdef CONF_R_MISSING_INIT_FUNCTION ++ {"MISSING_INIT_FUNCTION", ERR_LIB_CONF, CONF_R_MISSING_INIT_FUNCTION}, ++ #else ++ {"MISSING_INIT_FUNCTION", 14, 112}, ++ #endif ++ #ifdef CONF_R_MODULE_INITIALIZATION_ERROR ++ {"MODULE_INITIALIZATION_ERROR", ERR_LIB_CONF, CONF_R_MODULE_INITIALIZATION_ERROR}, ++ #else ++ {"MODULE_INITIALIZATION_ERROR", 14, 109}, ++ #endif ++ #ifdef CONF_R_NO_CLOSE_BRACE ++ {"NO_CLOSE_BRACE", ERR_LIB_CONF, CONF_R_NO_CLOSE_BRACE}, ++ #else ++ {"NO_CLOSE_BRACE", 14, 102}, ++ #endif ++ #ifdef CONF_R_NO_CONF ++ {"NO_CONF", ERR_LIB_CONF, CONF_R_NO_CONF}, ++ #else ++ {"NO_CONF", 14, 105}, ++ #endif ++ #ifdef CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", ERR_LIB_CONF, CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE}, ++ #else ++ {"NO_CONF_OR_ENVIRONMENT_VARIABLE", 14, 106}, ++ #endif ++ #ifdef CONF_R_NO_SECTION ++ {"NO_SECTION", ERR_LIB_CONF, CONF_R_NO_SECTION}, ++ #else ++ {"NO_SECTION", 14, 107}, ++ #endif ++ #ifdef CONF_R_NO_SUCH_FILE ++ {"NO_SUCH_FILE", ERR_LIB_CONF, CONF_R_NO_SUCH_FILE}, ++ #else ++ {"NO_SUCH_FILE", 14, 114}, ++ #endif ++ #ifdef CONF_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_CONF, CONF_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 14, 108}, ++ #endif ++ #ifdef CONF_R_NUMBER_TOO_LARGE ++ {"NUMBER_TOO_LARGE", ERR_LIB_CONF, CONF_R_NUMBER_TOO_LARGE}, ++ #else ++ {"NUMBER_TOO_LARGE", 14, 121}, ++ #endif ++ #ifdef CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", ERR_LIB_CONF, CONF_R_OPENSSL_CONF_REFERENCES_MISSING_SECTION}, ++ #else ++ {"OPENSSL_CONF_REFERENCES_MISSING_SECTION", 14, 124}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_DIRECTORY_INCLUDE ++ {"RECURSIVE_DIRECTORY_INCLUDE", ERR_LIB_CONF, CONF_R_RECURSIVE_DIRECTORY_INCLUDE}, ++ #else ++ {"RECURSIVE_DIRECTORY_INCLUDE", 14, 111}, ++ #endif ++ #ifdef CONF_R_RECURSIVE_SECTION_REFERENCE ++ {"RECURSIVE_SECTION_REFERENCE", ERR_LIB_CONF, CONF_R_RECURSIVE_SECTION_REFERENCE}, ++ #else ++ {"RECURSIVE_SECTION_REFERENCE", 14, 126}, ++ #endif ++ #ifdef CONF_R_RELATIVE_PATH ++ {"RELATIVE_PATH", ERR_LIB_CONF, CONF_R_RELATIVE_PATH}, ++ #else ++ {"RELATIVE_PATH", 14, 125}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 14, 117}, ++ #endif ++ #ifdef CONF_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 14, 118}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_CONF, CONF_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 14, 119}, ++ #endif ++ #ifdef CONF_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_CONF, CONF_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 14, 120}, ++ #endif ++ #ifdef CONF_R_UNABLE_TO_CREATE_NEW_SECTION ++ {"UNABLE_TO_CREATE_NEW_SECTION", ERR_LIB_CONF, CONF_R_UNABLE_TO_CREATE_NEW_SECTION}, ++ #else ++ {"UNABLE_TO_CREATE_NEW_SECTION", 14, 103}, ++ #endif ++ #ifdef CONF_R_UNKNOWN_MODULE_NAME ++ {"UNKNOWN_MODULE_NAME", ERR_LIB_CONF, CONF_R_UNKNOWN_MODULE_NAME}, ++ #else ++ {"UNKNOWN_MODULE_NAME", 14, 113}, ++ #endif ++ #ifdef CONF_R_VARIABLE_EXPANSION_TOO_LONG ++ {"VARIABLE_EXPANSION_TOO_LONG", ERR_LIB_CONF, CONF_R_VARIABLE_EXPANSION_TOO_LONG}, ++ #else ++ {"VARIABLE_EXPANSION_TOO_LONG", 14, 116}, ++ #endif ++ #ifdef CONF_R_VARIABLE_HAS_NO_VALUE ++ {"VARIABLE_HAS_NO_VALUE", ERR_LIB_CONF, CONF_R_VARIABLE_HAS_NO_VALUE}, ++ #else ++ {"VARIABLE_HAS_NO_VALUE", 14, 104}, ++ #endif ++ #ifdef CRMF_R_BAD_PBM_ITERATIONCOUNT ++ {"BAD_PBM_ITERATIONCOUNT", ERR_LIB_CRMF, CRMF_R_BAD_PBM_ITERATIONCOUNT}, ++ #else ++ {"BAD_PBM_ITERATIONCOUNT", 56, 100}, ++ #endif ++ #ifdef CRMF_R_CMS_NOT_SUPPORTED ++ {"CMS_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_CMS_NOT_SUPPORTED}, ++ #else ++ {"CMS_NOT_SUPPORTED", 56, 122}, ++ #endif ++ #ifdef CRMF_R_CRMFERROR ++ {"CRMFERROR", ERR_LIB_CRMF, CRMF_R_CRMFERROR}, ++ #else ++ {"CRMFERROR", 56, 102}, ++ #endif ++ #ifdef CRMF_R_ERROR ++ {"ERROR", ERR_LIB_CRMF, CRMF_R_ERROR}, ++ #else ++ {"ERROR", 56, 103}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_CERTIFICATE ++ {"ERROR_DECODING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_CERTIFICATE}, ++ #else ++ {"ERROR_DECODING_CERTIFICATE", 56, 104}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECODING_ENCRYPTEDKEY ++ {"ERROR_DECODING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECODING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECODING_ENCRYPTEDKEY", 56, 123}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_CERTIFICATE ++ {"ERROR_DECRYPTING_CERTIFICATE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_CERTIFICATE}, ++ #else ++ {"ERROR_DECRYPTING_CERTIFICATE", 56, 105}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDKEY", 56, 124}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_ENCRYPTEDVALUE}, ++ #else ++ {"ERROR_DECRYPTING_ENCRYPTEDVALUE", 56, 125}, ++ #endif ++ #ifdef CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", ERR_LIB_CRMF, CRMF_R_ERROR_DECRYPTING_SYMMETRIC_KEY}, ++ #else ++ {"ERROR_DECRYPTING_SYMMETRIC_KEY", 56, 106}, ++ #endif ++ #ifdef CRMF_R_ERROR_SETTING_PURPOSE ++ {"ERROR_SETTING_PURPOSE", ERR_LIB_CRMF, CRMF_R_ERROR_SETTING_PURPOSE}, ++ #else ++ {"ERROR_SETTING_PURPOSE", 56, 126}, ++ #endif ++ #ifdef CRMF_R_ERROR_SIGNING_POPO ++ {"ERROR_SIGNING_POPO", ERR_LIB_CRMF, CRMF_R_ERROR_SIGNING_POPO}, ++ #else ++ {"ERROR_SIGNING_POPO", 56, 129}, ++ #endif ++ #ifdef CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", ERR_LIB_CRMF, CRMF_R_ERROR_VERIFYING_ENCRYPTEDKEY}, ++ #else ++ {"ERROR_VERIFYING_ENCRYPTEDKEY", 56, 127}, ++ #endif ++ #ifdef CRMF_R_FAILURE_OBTAINING_RANDOM ++ {"FAILURE_OBTAINING_RANDOM", ERR_LIB_CRMF, CRMF_R_FAILURE_OBTAINING_RANDOM}, ++ #else ++ {"FAILURE_OBTAINING_RANDOM", 56, 107}, ++ #endif ++ #ifdef CRMF_R_ITERATIONCOUNT_BELOW_100 ++ {"ITERATIONCOUNT_BELOW_100", ERR_LIB_CRMF, CRMF_R_ITERATIONCOUNT_BELOW_100}, ++ #else ++ {"ITERATIONCOUNT_BELOW_100", 56, 108}, ++ #endif ++ #ifdef CRMF_R_MALFORMED_IV ++ {"MALFORMED_IV", ERR_LIB_CRMF, CRMF_R_MALFORMED_IV}, ++ #else ++ {"MALFORMED_IV", 56, 101}, ++ #endif ++ #ifdef CRMF_R_NULL_ARGUMENT ++ {"NULL_ARGUMENT", ERR_LIB_CRMF, CRMF_R_NULL_ARGUMENT}, ++ #else ++ {"NULL_ARGUMENT", 56, 109}, ++ #endif ++ #ifdef CRMF_R_POPOSKINPUT_NOT_SUPPORTED ++ {"POPOSKINPUT_NOT_SUPPORTED", ERR_LIB_CRMF, CRMF_R_POPOSKINPUT_NOT_SUPPORTED}, ++ #else ++ {"POPOSKINPUT_NOT_SUPPORTED", 56, 113}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_CENTRAL_KEYGEN}, ++ #else ++ {"POPO_INCONSISTENT_CENTRAL_KEYGEN", 56, 128}, ++ #endif ++ #ifdef CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY ++ {"POPO_INCONSISTENT_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_INCONSISTENT_PUBLIC_KEY}, ++ #else ++ {"POPO_INCONSISTENT_PUBLIC_KEY", 56, 117}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING ++ {"POPO_MISSING", ERR_LIB_CRMF, CRMF_R_POPO_MISSING}, ++ #else ++ {"POPO_MISSING", 56, 121}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_PUBLIC_KEY ++ {"POPO_MISSING_PUBLIC_KEY", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_PUBLIC_KEY}, ++ #else ++ {"POPO_MISSING_PUBLIC_KEY", 56, 118}, ++ #endif ++ #ifdef CRMF_R_POPO_MISSING_SUBJECT ++ {"POPO_MISSING_SUBJECT", ERR_LIB_CRMF, CRMF_R_POPO_MISSING_SUBJECT}, ++ #else ++ {"POPO_MISSING_SUBJECT", 56, 119}, ++ #endif ++ #ifdef CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", ERR_LIB_CRMF, CRMF_R_POPO_RAVERIFIED_NOT_ACCEPTED}, ++ #else ++ {"POPO_RAVERIFIED_NOT_ACCEPTED", 56, 120}, ++ #endif ++ #ifdef CRMF_R_SETTING_MAC_ALGOR_FAILURE ++ {"SETTING_MAC_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_MAC_ALGOR_FAILURE}, ++ #else ++ {"SETTING_MAC_ALGOR_FAILURE", 56, 110}, ++ #endif ++ #ifdef CRMF_R_SETTING_OWF_ALGOR_FAILURE ++ {"SETTING_OWF_ALGOR_FAILURE", ERR_LIB_CRMF, CRMF_R_SETTING_OWF_ALGOR_FAILURE}, ++ #else ++ {"SETTING_OWF_ALGOR_FAILURE", 56, 111}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 56, 112}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 56, 114}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_METHOD_FOR_CREATING_POPO}, ++ #else ++ {"UNSUPPORTED_METHOD_FOR_CREATING_POPO", 56, 115}, ++ #endif ++ #ifdef CRMF_R_UNSUPPORTED_POPO_METHOD ++ {"UNSUPPORTED_POPO_METHOD", ERR_LIB_CRMF, CRMF_R_UNSUPPORTED_POPO_METHOD}, ++ #else ++ {"UNSUPPORTED_POPO_METHOD", 56, 116}, ++ #endif ++ #ifdef CRYPTO_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_CRYPTO, CRYPTO_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 15, 117}, ++ #endif ++ #ifdef CRYPTO_R_CONFLICTING_NAMES ++ {"CONFLICTING_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_CONFLICTING_NAMES}, ++ #else ++ {"CONFLICTING_NAMES", 15, 118}, ++ #endif ++ #ifdef CRYPTO_R_HEX_STRING_TOO_SHORT ++ {"HEX_STRING_TOO_SHORT", ERR_LIB_CRYPTO, CRYPTO_R_HEX_STRING_TOO_SHORT}, ++ #else ++ {"HEX_STRING_TOO_SHORT", 15, 121}, ++ #endif ++ #ifdef CRYPTO_R_ILLEGAL_HEX_DIGIT ++ {"ILLEGAL_HEX_DIGIT", ERR_LIB_CRYPTO, CRYPTO_R_ILLEGAL_HEX_DIGIT}, ++ #else ++ {"ILLEGAL_HEX_DIGIT", 15, 102}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_DATA_SPACE ++ {"INSUFFICIENT_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_DATA_SPACE", 15, 106}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_PARAM_SIZE ++ {"INSUFFICIENT_PARAM_SIZE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_PARAM_SIZE}, ++ #else ++ {"INSUFFICIENT_PARAM_SIZE", 15, 107}, ++ #endif ++ #ifdef CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE ++ {"INSUFFICIENT_SECURE_DATA_SPACE", ERR_LIB_CRYPTO, CRYPTO_R_INSUFFICIENT_SECURE_DATA_SPACE}, ++ #else ++ {"INSUFFICIENT_SECURE_DATA_SPACE", 15, 108}, ++ #endif ++ #ifdef CRYPTO_R_INTEGER_OVERFLOW ++ {"INTEGER_OVERFLOW", ERR_LIB_CRYPTO, CRYPTO_R_INTEGER_OVERFLOW}, ++ #else ++ {"INTEGER_OVERFLOW", 15, 127}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NEGATIVE_VALUE ++ {"INVALID_NEGATIVE_VALUE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NEGATIVE_VALUE}, ++ #else ++ {"INVALID_NEGATIVE_VALUE", 15, 122}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 15, 109}, ++ #endif ++ #ifdef CRYPTO_R_INVALID_OSSL_PARAM_TYPE ++ {"INVALID_OSSL_PARAM_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_INVALID_OSSL_PARAM_TYPE}, ++ #else ++ {"INVALID_OSSL_PARAM_TYPE", 15, 110}, ++ #endif ++ #ifdef CRYPTO_R_NO_PARAMS_TO_MERGE ++ {"NO_PARAMS_TO_MERGE", ERR_LIB_CRYPTO, CRYPTO_R_NO_PARAMS_TO_MERGE}, ++ #else ++ {"NO_PARAMS_TO_MERGE", 15, 131}, ++ #endif ++ #ifdef CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL ++ {"NO_SPACE_FOR_TERMINATING_NULL", ERR_LIB_CRYPTO, CRYPTO_R_NO_SPACE_FOR_TERMINATING_NULL}, ++ #else ++ {"NO_SPACE_FOR_TERMINATING_NULL", 15, 128}, ++ #endif ++ #ifdef CRYPTO_R_ODD_NUMBER_OF_DIGITS ++ {"ODD_NUMBER_OF_DIGITS", ERR_LIB_CRYPTO, CRYPTO_R_ODD_NUMBER_OF_DIGITS}, ++ #else ++ {"ODD_NUMBER_OF_DIGITS", 15, 103}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_CANNOT_BE_REPRESENTED_EXACTLY}, ++ #else ++ {"PARAM_CANNOT_BE_REPRESENTED_EXACTLY", 15, 123}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_NOT_INTEGER_TYPE ++ {"PARAM_NOT_INTEGER_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_NOT_INTEGER_TYPE}, ++ #else ++ {"PARAM_NOT_INTEGER_TYPE", 15, 124}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE ++ {"PARAM_OF_INCOMPATIBLE_TYPE", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_OF_INCOMPATIBLE_TYPE}, ++ #else ++ {"PARAM_OF_INCOMPATIBLE_TYPE", 15, 129}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED}, ++ #else ++ {"PARAM_UNSIGNED_INTEGER_NEGATIVE_VALUE_UNSUPPORTED", 15, 125}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT}, ++ #else ++ {"PARAM_UNSUPPORTED_FLOATING_POINT_FORMAT", 15, 130}, ++ #endif ++ #ifdef CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", ERR_LIB_CRYPTO, CRYPTO_R_PARAM_VALUE_TOO_LARGE_FOR_DESTINATION}, ++ #else ++ {"PARAM_VALUE_TOO_LARGE_FOR_DESTINATION", 15, 126}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_ALREADY_EXISTS ++ {"PROVIDER_ALREADY_EXISTS", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_ALREADY_EXISTS}, ++ #else ++ {"PROVIDER_ALREADY_EXISTS", 15, 104}, ++ #endif ++ #ifdef CRYPTO_R_PROVIDER_SECTION_ERROR ++ {"PROVIDER_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_PROVIDER_SECTION_ERROR}, ++ #else ++ {"PROVIDER_SECTION_ERROR", 15, 105}, ++ #endif ++ #ifdef CRYPTO_R_RANDOM_SECTION_ERROR ++ {"RANDOM_SECTION_ERROR", ERR_LIB_CRYPTO, CRYPTO_R_RANDOM_SECTION_ERROR}, ++ #else ++ {"RANDOM_SECTION_ERROR", 15, 119}, ++ #endif ++ #ifdef CRYPTO_R_SECURE_MALLOC_FAILURE ++ {"SECURE_MALLOC_FAILURE", ERR_LIB_CRYPTO, CRYPTO_R_SECURE_MALLOC_FAILURE}, ++ #else ++ {"SECURE_MALLOC_FAILURE", 15, 111}, ++ #endif ++ #ifdef CRYPTO_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_CRYPTO, CRYPTO_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 15, 112}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_BYTES ++ {"TOO_MANY_BYTES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_BYTES}, ++ #else ++ {"TOO_MANY_BYTES", 15, 113}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_NAMES ++ {"TOO_MANY_NAMES", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_NAMES}, ++ #else ++ {"TOO_MANY_NAMES", 15, 132}, ++ #endif ++ #ifdef CRYPTO_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_CRYPTO, CRYPTO_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 15, 114}, ++ #endif ++ #ifdef CRYPTO_R_TOO_SMALL_BUFFER ++ {"TOO_SMALL_BUFFER", ERR_LIB_CRYPTO, CRYPTO_R_TOO_SMALL_BUFFER}, ++ #else ++ {"TOO_SMALL_BUFFER", 15, 116}, ++ #endif ++ #ifdef CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", ERR_LIB_CRYPTO, CRYPTO_R_UNKNOWN_NAME_IN_RANDOM_SECTION}, ++ #else ++ {"UNKNOWN_NAME_IN_RANDOM_SECTION", 15, 120}, ++ #endif ++ #ifdef CRYPTO_R_ZERO_LENGTH_NUMBER ++ {"ZERO_LENGTH_NUMBER", ERR_LIB_CRYPTO, CRYPTO_R_ZERO_LENGTH_NUMBER}, ++ #else ++ {"ZERO_LENGTH_NUMBER", 15, 115}, ++ #endif ++ #ifdef CT_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_CT, CT_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 50, 108}, ++ #endif ++ #ifdef CT_R_INVALID_LOG_ID_LENGTH ++ {"INVALID_LOG_ID_LENGTH", ERR_LIB_CT, CT_R_INVALID_LOG_ID_LENGTH}, ++ #else ++ {"INVALID_LOG_ID_LENGTH", 50, 100}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID ++ {"LOG_CONF_INVALID", ERR_LIB_CT, CT_R_LOG_CONF_INVALID}, ++ #else ++ {"LOG_CONF_INVALID", 50, 109}, ++ #endif ++ #ifdef CT_R_LOG_CONF_INVALID_KEY ++ {"LOG_CONF_INVALID_KEY", ERR_LIB_CT, CT_R_LOG_CONF_INVALID_KEY}, ++ #else ++ {"LOG_CONF_INVALID_KEY", 50, 110}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_DESCRIPTION ++ {"LOG_CONF_MISSING_DESCRIPTION", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_DESCRIPTION}, ++ #else ++ {"LOG_CONF_MISSING_DESCRIPTION", 50, 111}, ++ #endif ++ #ifdef CT_R_LOG_CONF_MISSING_KEY ++ {"LOG_CONF_MISSING_KEY", ERR_LIB_CT, CT_R_LOG_CONF_MISSING_KEY}, ++ #else ++ {"LOG_CONF_MISSING_KEY", 50, 112}, ++ #endif ++ #ifdef CT_R_LOG_KEY_INVALID ++ {"LOG_KEY_INVALID", ERR_LIB_CT, CT_R_LOG_KEY_INVALID}, ++ #else ++ {"LOG_KEY_INVALID", 50, 113}, ++ #endif ++ #ifdef CT_R_SCT_FUTURE_TIMESTAMP ++ {"SCT_FUTURE_TIMESTAMP", ERR_LIB_CT, CT_R_SCT_FUTURE_TIMESTAMP}, ++ #else ++ {"SCT_FUTURE_TIMESTAMP", 50, 116}, ++ #endif ++ #ifdef CT_R_SCT_INVALID ++ {"SCT_INVALID", ERR_LIB_CT, CT_R_SCT_INVALID}, ++ #else ++ {"SCT_INVALID", 50, 104}, ++ #endif ++ #ifdef CT_R_SCT_INVALID_SIGNATURE ++ {"SCT_INVALID_SIGNATURE", ERR_LIB_CT, CT_R_SCT_INVALID_SIGNATURE}, ++ #else ++ {"SCT_INVALID_SIGNATURE", 50, 107}, ++ #endif ++ #ifdef CT_R_SCT_LIST_INVALID ++ {"SCT_LIST_INVALID", ERR_LIB_CT, CT_R_SCT_LIST_INVALID}, ++ #else ++ {"SCT_LIST_INVALID", 50, 105}, ++ #endif ++ #ifdef CT_R_SCT_LOG_ID_MISMATCH ++ {"SCT_LOG_ID_MISMATCH", ERR_LIB_CT, CT_R_SCT_LOG_ID_MISMATCH}, ++ #else ++ {"SCT_LOG_ID_MISMATCH", 50, 114}, ++ #endif ++ #ifdef CT_R_SCT_NOT_SET ++ {"SCT_NOT_SET", ERR_LIB_CT, CT_R_SCT_NOT_SET}, ++ #else ++ {"SCT_NOT_SET", 50, 106}, ++ #endif ++ #ifdef CT_R_SCT_UNSUPPORTED_VERSION ++ {"SCT_UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_SCT_UNSUPPORTED_VERSION}, ++ #else ++ {"SCT_UNSUPPORTED_VERSION", 50, 115}, ++ #endif ++ #ifdef CT_R_UNRECOGNIZED_SIGNATURE_NID ++ {"UNRECOGNIZED_SIGNATURE_NID", ERR_LIB_CT, CT_R_UNRECOGNIZED_SIGNATURE_NID}, ++ #else ++ {"UNRECOGNIZED_SIGNATURE_NID", 50, 101}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_ENTRY_TYPE ++ {"UNSUPPORTED_ENTRY_TYPE", ERR_LIB_CT, CT_R_UNSUPPORTED_ENTRY_TYPE}, ++ #else ++ {"UNSUPPORTED_ENTRY_TYPE", 50, 102}, ++ #endif ++ #ifdef CT_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_CT, CT_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 50, 103}, ++ #endif ++ #ifdef DH_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DH, DH_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 5, 127}, ++ #endif ++ #ifdef DH_R_BAD_GENERATOR ++ {"BAD_GENERATOR", ERR_LIB_DH, DH_R_BAD_GENERATOR}, ++ #else ++ {"BAD_GENERATOR", 5, 101}, ++ #endif ++ #ifdef DH_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DH, DH_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 5, 109}, ++ #endif ++ #ifdef DH_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DH, DH_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 5, 106}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_J_VALUE ++ {"CHECK_INVALID_J_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_J_VALUE}, ++ #else ++ {"CHECK_INVALID_J_VALUE", 5, 115}, ++ #endif ++ #ifdef DH_R_CHECK_INVALID_Q_VALUE ++ {"CHECK_INVALID_Q_VALUE", ERR_LIB_DH, DH_R_CHECK_INVALID_Q_VALUE}, ++ #else ++ {"CHECK_INVALID_Q_VALUE", 5, 116}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_INVALID ++ {"CHECK_PUBKEY_INVALID", ERR_LIB_DH, DH_R_CHECK_PUBKEY_INVALID}, ++ #else ++ {"CHECK_PUBKEY_INVALID", 5, 122}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_LARGE ++ {"CHECK_PUBKEY_TOO_LARGE", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_LARGE}, ++ #else ++ {"CHECK_PUBKEY_TOO_LARGE", 5, 123}, ++ #endif ++ #ifdef DH_R_CHECK_PUBKEY_TOO_SMALL ++ {"CHECK_PUBKEY_TOO_SMALL", ERR_LIB_DH, DH_R_CHECK_PUBKEY_TOO_SMALL}, ++ #else ++ {"CHECK_PUBKEY_TOO_SMALL", 5, 124}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_PRIME ++ {"CHECK_P_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_PRIME}, ++ #else ++ {"CHECK_P_NOT_PRIME", 5, 117}, ++ #endif ++ #ifdef DH_R_CHECK_P_NOT_SAFE_PRIME ++ {"CHECK_P_NOT_SAFE_PRIME", ERR_LIB_DH, DH_R_CHECK_P_NOT_SAFE_PRIME}, ++ #else ++ {"CHECK_P_NOT_SAFE_PRIME", 5, 118}, ++ #endif ++ #ifdef DH_R_CHECK_Q_NOT_PRIME ++ {"CHECK_Q_NOT_PRIME", ERR_LIB_DH, DH_R_CHECK_Q_NOT_PRIME}, ++ #else ++ {"CHECK_Q_NOT_PRIME", 5, 119}, ++ #endif ++ #ifdef DH_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DH, DH_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 5, 104}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NAME ++ {"INVALID_PARAMETER_NAME", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NAME}, ++ #else ++ {"INVALID_PARAMETER_NAME", 5, 110}, ++ #endif ++ #ifdef DH_R_INVALID_PARAMETER_NID ++ {"INVALID_PARAMETER_NID", ERR_LIB_DH, DH_R_INVALID_PARAMETER_NID}, ++ #else ++ {"INVALID_PARAMETER_NID", 5, 114}, ++ #endif ++ #ifdef DH_R_INVALID_PUBKEY ++ {"INVALID_PUBKEY", ERR_LIB_DH, DH_R_INVALID_PUBKEY}, ++ #else ++ {"INVALID_PUBKEY", 5, 102}, ++ #endif ++ #ifdef DH_R_INVALID_SECRET ++ {"INVALID_SECRET", ERR_LIB_DH, DH_R_INVALID_SECRET}, ++ #else ++ {"INVALID_SECRET", 5, 128}, ++ #endif ++ #ifdef DH_R_INVALID_SIZE ++ {"INVALID_SIZE", ERR_LIB_DH, DH_R_INVALID_SIZE}, ++ #else ++ {"INVALID_SIZE", 5, 129}, ++ #endif ++ #ifdef DH_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_DH, DH_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 5, 112}, ++ #endif ++ #ifdef DH_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_DH, DH_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 5, 108}, ++ #endif ++ #ifdef DH_R_MISSING_PUBKEY ++ {"MISSING_PUBKEY", ERR_LIB_DH, DH_R_MISSING_PUBKEY}, ++ #else ++ {"MISSING_PUBKEY", 5, 125}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DH, DH_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 5, 103}, ++ #endif ++ #ifdef DH_R_MODULUS_TOO_SMALL ++ {"MODULUS_TOO_SMALL", ERR_LIB_DH, DH_R_MODULUS_TOO_SMALL}, ++ #else ++ {"MODULUS_TOO_SMALL", 5, 126}, ++ #endif ++ #ifdef DH_R_NOT_SUITABLE_GENERATOR ++ {"NOT_SUITABLE_GENERATOR", ERR_LIB_DH, DH_R_NOT_SUITABLE_GENERATOR}, ++ #else ++ {"NOT_SUITABLE_GENERATOR", 5, 120}, ++ #endif ++ #ifdef DH_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DH, DH_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 5, 107}, ++ #endif ++ #ifdef DH_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_DH, DH_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 5, 100}, ++ #endif ++ #ifdef DH_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DH, DH_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 5, 105}, ++ #endif ++ #ifdef DH_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_DH, DH_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 5, 111}, ++ #endif ++ #ifdef DH_R_Q_TOO_LARGE ++ {"Q_TOO_LARGE", ERR_LIB_DH, DH_R_Q_TOO_LARGE}, ++ #else ++ {"Q_TOO_LARGE", 5, 130}, ++ #endif ++ #ifdef DH_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_DH, DH_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 5, 113}, ++ #endif ++ #ifdef DH_R_UNABLE_TO_CHECK_GENERATOR ++ {"UNABLE_TO_CHECK_GENERATOR", ERR_LIB_DH, DH_R_UNABLE_TO_CHECK_GENERATOR}, ++ #else ++ {"UNABLE_TO_CHECK_GENERATOR", 5, 121}, ++ #endif ++ #ifdef DSA_R_BAD_FFC_PARAMETERS ++ {"BAD_FFC_PARAMETERS", ERR_LIB_DSA, DSA_R_BAD_FFC_PARAMETERS}, ++ #else ++ {"BAD_FFC_PARAMETERS", 10, 114}, ++ #endif ++ #ifdef DSA_R_BAD_Q_VALUE ++ {"BAD_Q_VALUE", ERR_LIB_DSA, DSA_R_BAD_Q_VALUE}, ++ #else ++ {"BAD_Q_VALUE", 10, 102}, ++ #endif ++ #ifdef DSA_R_BN_DECODE_ERROR ++ {"BN_DECODE_ERROR", ERR_LIB_DSA, DSA_R_BN_DECODE_ERROR}, ++ #else ++ {"BN_DECODE_ERROR", 10, 108}, ++ #endif ++ #ifdef DSA_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_DSA, DSA_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 10, 109}, ++ #endif ++ #ifdef DSA_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_DSA, DSA_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 10, 104}, ++ #endif ++ #ifdef DSA_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_DSA, DSA_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 10, 106}, ++ #endif ++ #ifdef DSA_R_INVALID_PARAMETERS ++ {"INVALID_PARAMETERS", ERR_LIB_DSA, DSA_R_INVALID_PARAMETERS}, ++ #else ++ {"INVALID_PARAMETERS", 10, 112}, ++ #endif ++ #ifdef DSA_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_DSA, DSA_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 10, 101}, ++ #endif ++ #ifdef DSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_DSA, DSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 10, 111}, ++ #endif ++ #ifdef DSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_DSA, DSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 10, 103}, ++ #endif ++ #ifdef DSA_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_DSA, DSA_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 10, 107}, ++ #endif ++ #ifdef DSA_R_PARAMETER_ENCODING_ERROR ++ {"PARAMETER_ENCODING_ERROR", ERR_LIB_DSA, DSA_R_PARAMETER_ENCODING_ERROR}, ++ #else ++ {"PARAMETER_ENCODING_ERROR", 10, 105}, ++ #endif ++ #ifdef DSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_DSA, DSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 10, 115}, ++ #endif ++ #ifdef DSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_DSA, DSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 10, 113}, ++ #endif ++ #ifdef DSA_R_SEED_LEN_SMALL ++ {"SEED_LEN_SMALL", ERR_LIB_DSA, DSA_R_SEED_LEN_SMALL}, ++ #else ++ {"SEED_LEN_SMALL", 10, 110}, ++ #endif ++ #ifdef DSA_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_DSA, DSA_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 10, 116}, ++ #endif ++ #ifdef DSO_R_CTRL_FAILED ++ {"CTRL_FAILED", ERR_LIB_DSO, DSO_R_CTRL_FAILED}, ++ #else ++ {"CTRL_FAILED", 37, 100}, ++ #endif ++ #ifdef DSO_R_DSO_ALREADY_LOADED ++ {"DSO_ALREADY_LOADED", ERR_LIB_DSO, DSO_R_DSO_ALREADY_LOADED}, ++ #else ++ {"DSO_ALREADY_LOADED", 37, 110}, ++ #endif ++ #ifdef DSO_R_EMPTY_FILE_STRUCTURE ++ {"EMPTY_FILE_STRUCTURE", ERR_LIB_DSO, DSO_R_EMPTY_FILE_STRUCTURE}, ++ #else ++ {"EMPTY_FILE_STRUCTURE", 37, 113}, ++ #endif ++ #ifdef DSO_R_FAILURE ++ {"FAILURE", ERR_LIB_DSO, DSO_R_FAILURE}, ++ #else ++ {"FAILURE", 37, 114}, ++ #endif ++ #ifdef DSO_R_FILENAME_TOO_BIG ++ {"FILENAME_TOO_BIG", ERR_LIB_DSO, DSO_R_FILENAME_TOO_BIG}, ++ #else ++ {"FILENAME_TOO_BIG", 37, 101}, ++ #endif ++ #ifdef DSO_R_FINISH_FAILED ++ {"FINISH_FAILED", ERR_LIB_DSO, DSO_R_FINISH_FAILED}, ++ #else ++ {"FINISH_FAILED", 37, 102}, ++ #endif ++ #ifdef DSO_R_INCORRECT_FILE_SYNTAX ++ {"INCORRECT_FILE_SYNTAX", ERR_LIB_DSO, DSO_R_INCORRECT_FILE_SYNTAX}, ++ #else ++ {"INCORRECT_FILE_SYNTAX", 37, 115}, ++ #endif ++ #ifdef DSO_R_LOAD_FAILED ++ {"LOAD_FAILED", ERR_LIB_DSO, DSO_R_LOAD_FAILED}, ++ #else ++ {"LOAD_FAILED", 37, 103}, ++ #endif ++ #ifdef DSO_R_NAME_TRANSLATION_FAILED ++ {"NAME_TRANSLATION_FAILED", ERR_LIB_DSO, DSO_R_NAME_TRANSLATION_FAILED}, ++ #else ++ {"NAME_TRANSLATION_FAILED", 37, 109}, ++ #endif ++ #ifdef DSO_R_NO_FILENAME ++ {"NO_FILENAME", ERR_LIB_DSO, DSO_R_NO_FILENAME}, ++ #else ++ {"NO_FILENAME", 37, 111}, ++ #endif ++ #ifdef DSO_R_NULL_HANDLE ++ {"NULL_HANDLE", ERR_LIB_DSO, DSO_R_NULL_HANDLE}, ++ #else ++ {"NULL_HANDLE", 37, 104}, ++ #endif ++ #ifdef DSO_R_SET_FILENAME_FAILED ++ {"SET_FILENAME_FAILED", ERR_LIB_DSO, DSO_R_SET_FILENAME_FAILED}, ++ #else ++ {"SET_FILENAME_FAILED", 37, 112}, ++ #endif ++ #ifdef DSO_R_STACK_ERROR ++ {"STACK_ERROR", ERR_LIB_DSO, DSO_R_STACK_ERROR}, ++ #else ++ {"STACK_ERROR", 37, 105}, ++ #endif ++ #ifdef DSO_R_SYM_FAILURE ++ {"SYM_FAILURE", ERR_LIB_DSO, DSO_R_SYM_FAILURE}, ++ #else ++ {"SYM_FAILURE", 37, 106}, ++ #endif ++ #ifdef DSO_R_UNLOAD_FAILED ++ {"UNLOAD_FAILED", ERR_LIB_DSO, DSO_R_UNLOAD_FAILED}, ++ #else ++ {"UNLOAD_FAILED", 37, 107}, ++ #endif ++ #ifdef DSO_R_UNSUPPORTED ++ {"UNSUPPORTED", ERR_LIB_DSO, DSO_R_UNSUPPORTED}, ++ #else ++ {"UNSUPPORTED", 37, 108}, ++ #endif ++ #ifdef EC_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_EC, EC_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 16, 115}, ++ #endif ++ #ifdef EC_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_EC, EC_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 16, 156}, ++ #endif ++ #ifdef EC_R_BIGNUM_OUT_OF_RANGE ++ {"BIGNUM_OUT_OF_RANGE", ERR_LIB_EC, EC_R_BIGNUM_OUT_OF_RANGE}, ++ #else ++ {"BIGNUM_OUT_OF_RANGE", 16, 144}, ++ #endif ++ #ifdef EC_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EC, EC_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 16, 100}, ++ #endif ++ #ifdef EC_R_CANNOT_INVERT ++ {"CANNOT_INVERT", ERR_LIB_EC, EC_R_CANNOT_INVERT}, ++ #else ++ {"CANNOT_INVERT", 16, 165}, ++ #endif ++ #ifdef EC_R_COORDINATES_OUT_OF_RANGE ++ {"COORDINATES_OUT_OF_RANGE", ERR_LIB_EC, EC_R_COORDINATES_OUT_OF_RANGE}, ++ #else ++ {"COORDINATES_OUT_OF_RANGE", 16, 146}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDH ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDH}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDH", 16, 160}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_ECDSA}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_ECDSA", 16, 170}, ++ #endif ++ #ifdef EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", ERR_LIB_EC, EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING}, ++ #else ++ {"CURVE_DOES_NOT_SUPPORT_SIGNING", 16, 159}, ++ #endif ++ #ifdef EC_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EC, EC_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 16, 142}, ++ #endif ++ #ifdef EC_R_DISCRIMINANT_IS_ZERO ++ {"DISCRIMINANT_IS_ZERO", ERR_LIB_EC, EC_R_DISCRIMINANT_IS_ZERO}, ++ #else ++ {"DISCRIMINANT_IS_ZERO", 16, 118}, ++ #endif ++ #ifdef EC_R_EC_GROUP_NEW_BY_NAME_FAILURE ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", ERR_LIB_EC, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE}, ++ #else ++ {"EC_GROUP_NEW_BY_NAME_FAILURE", 16, 119}, ++ #endif ++ #ifdef EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"EXPLICIT_PARAMS_NOT_SUPPORTED", 16, 127}, ++ #endif ++ #ifdef EC_R_FAILED_MAKING_PUBLIC_KEY ++ {"FAILED_MAKING_PUBLIC_KEY", ERR_LIB_EC, EC_R_FAILED_MAKING_PUBLIC_KEY}, ++ #else ++ {"FAILED_MAKING_PUBLIC_KEY", 16, 166}, ++ #endif ++ #ifdef EC_R_FIELD_TOO_LARGE ++ {"FIELD_TOO_LARGE", ERR_LIB_EC, EC_R_FIELD_TOO_LARGE}, ++ #else ++ {"FIELD_TOO_LARGE", 16, 143}, ++ #endif ++ #ifdef EC_R_GF2M_NOT_SUPPORTED ++ {"GF2M_NOT_SUPPORTED", ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED}, ++ #else ++ {"GF2M_NOT_SUPPORTED", 16, 147}, ++ #endif ++ #ifdef EC_R_GROUP2PKPARAMETERS_FAILURE ++ {"GROUP2PKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_GROUP2PKPARAMETERS_FAILURE}, ++ #else ++ {"GROUP2PKPARAMETERS_FAILURE", 16, 120}, ++ #endif ++ #ifdef EC_R_I2D_ECPKPARAMETERS_FAILURE ++ {"I2D_ECPKPARAMETERS_FAILURE", ERR_LIB_EC, EC_R_I2D_ECPKPARAMETERS_FAILURE}, ++ #else ++ {"I2D_ECPKPARAMETERS_FAILURE", 16, 121}, ++ #endif ++ #ifdef EC_R_INCOMPATIBLE_OBJECTS ++ {"INCOMPATIBLE_OBJECTS", ERR_LIB_EC, EC_R_INCOMPATIBLE_OBJECTS}, ++ #else ++ {"INCOMPATIBLE_OBJECTS", 16, 101}, ++ #endif ++ #ifdef EC_R_INVALID_A ++ {"INVALID_A", ERR_LIB_EC, EC_R_INVALID_A}, ++ #else ++ {"INVALID_A", 16, 168}, ++ #endif ++ #ifdef EC_R_INVALID_ARGUMENT ++ {"INVALID_ARGUMENT", ERR_LIB_EC, EC_R_INVALID_ARGUMENT}, ++ #else ++ {"INVALID_ARGUMENT", 16, 112}, ++ #endif ++ #ifdef EC_R_INVALID_B ++ {"INVALID_B", ERR_LIB_EC, EC_R_INVALID_B}, ++ #else ++ {"INVALID_B", 16, 169}, ++ #endif ++ #ifdef EC_R_INVALID_COFACTOR ++ {"INVALID_COFACTOR", ERR_LIB_EC, EC_R_INVALID_COFACTOR}, ++ #else ++ {"INVALID_COFACTOR", 16, 171}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSED_POINT ++ {"INVALID_COMPRESSED_POINT", ERR_LIB_EC, EC_R_INVALID_COMPRESSED_POINT}, ++ #else ++ {"INVALID_COMPRESSED_POINT", 16, 110}, ++ #endif ++ #ifdef EC_R_INVALID_COMPRESSION_BIT ++ {"INVALID_COMPRESSION_BIT", ERR_LIB_EC, EC_R_INVALID_COMPRESSION_BIT}, ++ #else ++ {"INVALID_COMPRESSION_BIT", 16, 109}, ++ #endif ++ #ifdef EC_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_EC, EC_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 16, 141}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EC, EC_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 16, 151}, ++ #endif ++ #ifdef EC_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_EC, EC_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 16, 138}, ++ #endif ++ #ifdef EC_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_EC, EC_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 16, 102}, ++ #endif ++ #ifdef EC_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_EC, EC_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 16, 103}, ++ #endif ++ #ifdef EC_R_INVALID_FORM ++ {"INVALID_FORM", ERR_LIB_EC, EC_R_INVALID_FORM}, ++ #else ++ {"INVALID_FORM", 16, 104}, ++ #endif ++ #ifdef EC_R_INVALID_GENERATOR ++ {"INVALID_GENERATOR", ERR_LIB_EC, EC_R_INVALID_GENERATOR}, ++ #else ++ {"INVALID_GENERATOR", 16, 173}, ++ #endif ++ #ifdef EC_R_INVALID_GROUP_ORDER ++ {"INVALID_GROUP_ORDER", ERR_LIB_EC, EC_R_INVALID_GROUP_ORDER}, ++ #else ++ {"INVALID_GROUP_ORDER", 16, 122}, ++ #endif ++ #ifdef EC_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EC, EC_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 16, 116}, ++ #endif ++ #ifdef EC_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EC, EC_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 16, 117}, ++ #endif ++ #ifdef EC_R_INVALID_NAMED_GROUP_CONVERSION ++ {"INVALID_NAMED_GROUP_CONVERSION", ERR_LIB_EC, EC_R_INVALID_NAMED_GROUP_CONVERSION}, ++ #else ++ {"INVALID_NAMED_GROUP_CONVERSION", 16, 174}, ++ #endif ++ #ifdef EC_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_EC, EC_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 16, 161}, ++ #endif ++ #ifdef EC_R_INVALID_P ++ {"INVALID_P", ERR_LIB_EC, EC_R_INVALID_P}, ++ #else ++ {"INVALID_P", 16, 172}, ++ #endif ++ #ifdef EC_R_INVALID_PEER_KEY ++ {"INVALID_PEER_KEY", ERR_LIB_EC, EC_R_INVALID_PEER_KEY}, ++ #else ++ {"INVALID_PEER_KEY", 16, 133}, ++ #endif ++ #ifdef EC_R_INVALID_PENTANOMIAL_BASIS ++ {"INVALID_PENTANOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_PENTANOMIAL_BASIS}, ++ #else ++ {"INVALID_PENTANOMIAL_BASIS", 16, 132}, ++ #endif ++ #ifdef EC_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_EC, EC_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 16, 123}, ++ #endif ++ #ifdef EC_R_INVALID_SEED ++ {"INVALID_SEED", ERR_LIB_EC, EC_R_INVALID_SEED}, ++ #else ++ {"INVALID_SEED", 16, 175}, ++ #endif ++ #ifdef EC_R_INVALID_TRINOMIAL_BASIS ++ {"INVALID_TRINOMIAL_BASIS", ERR_LIB_EC, EC_R_INVALID_TRINOMIAL_BASIS}, ++ #else ++ {"INVALID_TRINOMIAL_BASIS", 16, 137}, ++ #endif ++ #ifdef EC_R_KDF_PARAMETER_ERROR ++ {"KDF_PARAMETER_ERROR", ERR_LIB_EC, EC_R_KDF_PARAMETER_ERROR}, ++ #else ++ {"KDF_PARAMETER_ERROR", 16, 148}, ++ #endif ++ #ifdef EC_R_KEYS_NOT_SET ++ {"KEYS_NOT_SET", ERR_LIB_EC, EC_R_KEYS_NOT_SET}, ++ #else ++ {"KEYS_NOT_SET", 16, 140}, ++ #endif ++ #ifdef EC_R_LADDER_POST_FAILURE ++ {"LADDER_POST_FAILURE", ERR_LIB_EC, EC_R_LADDER_POST_FAILURE}, ++ #else ++ {"LADDER_POST_FAILURE", 16, 136}, ++ #endif ++ #ifdef EC_R_LADDER_PRE_FAILURE ++ {"LADDER_PRE_FAILURE", ERR_LIB_EC, EC_R_LADDER_PRE_FAILURE}, ++ #else ++ {"LADDER_PRE_FAILURE", 16, 153}, ++ #endif ++ #ifdef EC_R_LADDER_STEP_FAILURE ++ {"LADDER_STEP_FAILURE", ERR_LIB_EC, EC_R_LADDER_STEP_FAILURE}, ++ #else ++ {"LADDER_STEP_FAILURE", 16, 162}, ++ #endif ++ #ifdef EC_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_EC, EC_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 16, 167}, ++ #endif ++ #ifdef EC_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EC, EC_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 16, 124}, ++ #endif ++ #ifdef EC_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_EC, EC_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 16, 125}, ++ #endif ++ #ifdef EC_R_NEED_NEW_SETUP_VALUES ++ {"NEED_NEW_SETUP_VALUES", ERR_LIB_EC, EC_R_NEED_NEW_SETUP_VALUES}, ++ #else ++ {"NEED_NEW_SETUP_VALUES", 16, 157}, ++ #endif ++ #ifdef EC_R_NOT_A_NIST_PRIME ++ {"NOT_A_NIST_PRIME", ERR_LIB_EC, EC_R_NOT_A_NIST_PRIME}, ++ #else ++ {"NOT_A_NIST_PRIME", 16, 135}, ++ #endif ++ #ifdef EC_R_NOT_IMPLEMENTED ++ {"NOT_IMPLEMENTED", ERR_LIB_EC, EC_R_NOT_IMPLEMENTED}, ++ #else ++ {"NOT_IMPLEMENTED", 16, 126}, ++ #endif ++ #ifdef EC_R_NOT_INITIALIZED ++ {"NOT_INITIALIZED", ERR_LIB_EC, EC_R_NOT_INITIALIZED}, ++ #else ++ {"NOT_INITIALIZED", 16, 111}, ++ #endif ++ #ifdef EC_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_EC, EC_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 16, 139}, ++ #endif ++ #ifdef EC_R_NO_PRIVATE_VALUE ++ {"NO_PRIVATE_VALUE", ERR_LIB_EC, EC_R_NO_PRIVATE_VALUE}, ++ #else ++ {"NO_PRIVATE_VALUE", 16, 154}, ++ #endif ++ #ifdef EC_R_OPERATION_NOT_SUPPORTED ++ {"OPERATION_NOT_SUPPORTED", ERR_LIB_EC, EC_R_OPERATION_NOT_SUPPORTED}, ++ #else ++ {"OPERATION_NOT_SUPPORTED", 16, 152}, ++ #endif ++ #ifdef EC_R_PASSED_NULL_PARAMETER ++ {"PASSED_NULL_PARAMETER", ERR_LIB_EC, EC_R_PASSED_NULL_PARAMETER}, ++ #else ++ {"PASSED_NULL_PARAMETER", 16, 134}, ++ #endif ++ #ifdef EC_R_PEER_KEY_ERROR ++ {"PEER_KEY_ERROR", ERR_LIB_EC, EC_R_PEER_KEY_ERROR}, ++ #else ++ {"PEER_KEY_ERROR", 16, 149}, ++ #endif ++ #ifdef EC_R_POINT_ARITHMETIC_FAILURE ++ {"POINT_ARITHMETIC_FAILURE", ERR_LIB_EC, EC_R_POINT_ARITHMETIC_FAILURE}, ++ #else ++ {"POINT_ARITHMETIC_FAILURE", 16, 155}, ++ #endif ++ #ifdef EC_R_POINT_AT_INFINITY ++ {"POINT_AT_INFINITY", ERR_LIB_EC, EC_R_POINT_AT_INFINITY}, ++ #else ++ {"POINT_AT_INFINITY", 16, 106}, ++ #endif ++ #ifdef EC_R_POINT_COORDINATES_BLIND_FAILURE ++ {"POINT_COORDINATES_BLIND_FAILURE", ERR_LIB_EC, EC_R_POINT_COORDINATES_BLIND_FAILURE}, ++ #else ++ {"POINT_COORDINATES_BLIND_FAILURE", 16, 163}, ++ #endif ++ #ifdef EC_R_POINT_IS_NOT_ON_CURVE ++ {"POINT_IS_NOT_ON_CURVE", ERR_LIB_EC, EC_R_POINT_IS_NOT_ON_CURVE}, ++ #else ++ {"POINT_IS_NOT_ON_CURVE", 16, 107}, ++ #endif ++ #ifdef EC_R_RANDOM_NUMBER_GENERATION_FAILED ++ {"RANDOM_NUMBER_GENERATION_FAILED", ERR_LIB_EC, EC_R_RANDOM_NUMBER_GENERATION_FAILED}, ++ #else ++ {"RANDOM_NUMBER_GENERATION_FAILED", 16, 158}, ++ #endif ++ #ifdef EC_R_SHARED_INFO_ERROR ++ {"SHARED_INFO_ERROR", ERR_LIB_EC, EC_R_SHARED_INFO_ERROR}, ++ #else ++ {"SHARED_INFO_ERROR", 16, 150}, ++ #endif ++ #ifdef EC_R_SLOT_FULL ++ {"SLOT_FULL", ERR_LIB_EC, EC_R_SLOT_FULL}, ++ #else ++ {"SLOT_FULL", 16, 108}, ++ #endif ++ #ifdef EC_R_TOO_MANY_RETRIES ++ {"TOO_MANY_RETRIES", ERR_LIB_EC, EC_R_TOO_MANY_RETRIES}, ++ #else ++ {"TOO_MANY_RETRIES", 16, 176}, ++ #endif ++ #ifdef EC_R_UNDEFINED_GENERATOR ++ {"UNDEFINED_GENERATOR", ERR_LIB_EC, EC_R_UNDEFINED_GENERATOR}, ++ #else ++ {"UNDEFINED_GENERATOR", 16, 113}, ++ #endif ++ #ifdef EC_R_UNDEFINED_ORDER ++ {"UNDEFINED_ORDER", ERR_LIB_EC, EC_R_UNDEFINED_ORDER}, ++ #else ++ {"UNDEFINED_ORDER", 16, 128}, ++ #endif ++ #ifdef EC_R_UNKNOWN_COFACTOR ++ {"UNKNOWN_COFACTOR", ERR_LIB_EC, EC_R_UNKNOWN_COFACTOR}, ++ #else ++ {"UNKNOWN_COFACTOR", 16, 164}, ++ #endif ++ #ifdef EC_R_UNKNOWN_GROUP ++ {"UNKNOWN_GROUP", ERR_LIB_EC, EC_R_UNKNOWN_GROUP}, ++ #else ++ {"UNKNOWN_GROUP", 16, 129}, ++ #endif ++ #ifdef EC_R_UNKNOWN_ORDER ++ {"UNKNOWN_ORDER", ERR_LIB_EC, EC_R_UNKNOWN_ORDER}, ++ #else ++ {"UNKNOWN_ORDER", 16, 114}, ++ #endif ++ #ifdef EC_R_UNSUPPORTED_FIELD ++ {"UNSUPPORTED_FIELD", ERR_LIB_EC, EC_R_UNSUPPORTED_FIELD}, ++ #else ++ {"UNSUPPORTED_FIELD", 16, 131}, ++ #endif ++ #ifdef EC_R_WRONG_CURVE_PARAMETERS ++ {"WRONG_CURVE_PARAMETERS", ERR_LIB_EC, EC_R_WRONG_CURVE_PARAMETERS}, ++ #else ++ {"WRONG_CURVE_PARAMETERS", 16, 145}, ++ #endif ++ #ifdef EC_R_WRONG_ORDER ++ {"WRONG_ORDER", ERR_LIB_EC, EC_R_WRONG_ORDER}, ++ #else ++ {"WRONG_ORDER", 16, 130}, ++ #endif ++ #ifdef ESS_R_EMPTY_ESS_CERT_ID_LIST ++ {"EMPTY_ESS_CERT_ID_LIST", ERR_LIB_ESS, ESS_R_EMPTY_ESS_CERT_ID_LIST}, ++ #else ++ {"EMPTY_ESS_CERT_ID_LIST", 54, 107}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_DIGEST_ERROR ++ {"ESS_CERT_DIGEST_ERROR", ERR_LIB_ESS, ESS_R_ESS_CERT_DIGEST_ERROR}, ++ #else ++ {"ESS_CERT_DIGEST_ERROR", 54, 103}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_NOT_FOUND ++ {"ESS_CERT_ID_NOT_FOUND", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_NOT_FOUND}, ++ #else ++ {"ESS_CERT_ID_NOT_FOUND", 54, 104}, ++ #endif ++ #ifdef ESS_R_ESS_CERT_ID_WRONG_ORDER ++ {"ESS_CERT_ID_WRONG_ORDER", ERR_LIB_ESS, ESS_R_ESS_CERT_ID_WRONG_ORDER}, ++ #else ++ {"ESS_CERT_ID_WRONG_ORDER", 54, 105}, ++ #endif ++ #ifdef ESS_R_ESS_DIGEST_ALG_UNKNOWN ++ {"ESS_DIGEST_ALG_UNKNOWN", ERR_LIB_ESS, ESS_R_ESS_DIGEST_ALG_UNKNOWN}, ++ #else ++ {"ESS_DIGEST_ALG_UNKNOWN", 54, 106}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 54, 102}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_ADD_ERROR ++ {"ESS_SIGNING_CERT_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_ADD_ERROR", 54, 100}, ++ #endif ++ #ifdef ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", ERR_LIB_ESS, ESS_R_ESS_SIGNING_CERT_V2_ADD_ERROR}, ++ #else ++ {"ESS_SIGNING_CERT_V2_ADD_ERROR", 54, 101}, ++ #endif ++ #ifdef ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", ERR_LIB_ESS, ESS_R_MISSING_SIGNING_CERTIFICATE_ATTRIBUTE}, ++ #else ++ {"MISSING_SIGNING_CERTIFICATE_ATTRIBUTE", 54, 108}, ++ #endif ++ #ifdef EVP_R_AES_KEY_SETUP_FAILED ++ {"AES_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_AES_KEY_SETUP_FAILED}, ++ #else ++ {"AES_KEY_SETUP_FAILED", 6, 143}, ++ #endif ++ #ifdef EVP_R_ARIA_KEY_SETUP_FAILED ++ {"ARIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_ARIA_KEY_SETUP_FAILED}, ++ #else ++ {"ARIA_KEY_SETUP_FAILED", 6, 176}, ++ #endif ++ #ifdef EVP_R_BAD_ALGORITHM_NAME ++ {"BAD_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_BAD_ALGORITHM_NAME}, ++ #else ++ {"BAD_ALGORITHM_NAME", 6, 200}, ++ #endif ++ #ifdef EVP_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_EVP, EVP_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 6, 100}, ++ #endif ++ #ifdef EVP_R_BAD_KEY_LENGTH ++ {"BAD_KEY_LENGTH", ERR_LIB_EVP, EVP_R_BAD_KEY_LENGTH}, ++ #else ++ {"BAD_KEY_LENGTH", 6, 195}, ++ #endif ++ #ifdef EVP_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_EVP, EVP_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 6, 155}, ++ #endif ++ #ifdef EVP_R_CACHE_CONSTANTS_FAILED ++ {"CACHE_CONSTANTS_FAILED", ERR_LIB_EVP, EVP_R_CACHE_CONSTANTS_FAILED}, ++ #else ++ {"CACHE_CONSTANTS_FAILED", 6, 225}, ++ #endif ++ #ifdef EVP_R_CAMELLIA_KEY_SETUP_FAILED ++ {"CAMELLIA_KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_CAMELLIA_KEY_SETUP_FAILED}, ++ #else ++ {"CAMELLIA_KEY_SETUP_FAILED", 6, 157}, ++ #endif ++ #ifdef EVP_R_CANNOT_GET_PARAMETERS ++ {"CANNOT_GET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_GET_PARAMETERS}, ++ #else ++ {"CANNOT_GET_PARAMETERS", 6, 197}, ++ #endif ++ #ifdef EVP_R_CANNOT_SET_PARAMETERS ++ {"CANNOT_SET_PARAMETERS", ERR_LIB_EVP, EVP_R_CANNOT_SET_PARAMETERS}, ++ #else ++ {"CANNOT_SET_PARAMETERS", 6, 198}, ++ #endif ++ #ifdef EVP_R_CIPHER_NOT_GCM_MODE ++ {"CIPHER_NOT_GCM_MODE", ERR_LIB_EVP, EVP_R_CIPHER_NOT_GCM_MODE}, ++ #else ++ {"CIPHER_NOT_GCM_MODE", 6, 184}, ++ #endif ++ #ifdef EVP_R_CIPHER_PARAMETER_ERROR ++ {"CIPHER_PARAMETER_ERROR", ERR_LIB_EVP, EVP_R_CIPHER_PARAMETER_ERROR}, ++ #else ++ {"CIPHER_PARAMETER_ERROR", 6, 122}, ++ #endif ++ #ifdef EVP_R_COMMAND_NOT_SUPPORTED ++ {"COMMAND_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_COMMAND_NOT_SUPPORTED}, ++ #else ++ {"COMMAND_NOT_SUPPORTED", 6, 147}, ++ #endif ++ #ifdef EVP_R_CONFLICTING_ALGORITHM_NAME ++ {"CONFLICTING_ALGORITHM_NAME", ERR_LIB_EVP, EVP_R_CONFLICTING_ALGORITHM_NAME}, ++ #else ++ {"CONFLICTING_ALGORITHM_NAME", 6, 201}, ++ #endif ++ #ifdef EVP_R_CONTEXT_FINALIZED ++ {"CONTEXT_FINALIZED", ERR_LIB_EVP, EVP_R_CONTEXT_FINALIZED}, ++ #else ++ {"CONTEXT_FINALIZED", 6, 239}, ++ #endif ++ #ifdef EVP_R_COPY_ERROR ++ {"COPY_ERROR", ERR_LIB_EVP, EVP_R_COPY_ERROR}, ++ #else ++ {"COPY_ERROR", 6, 173}, ++ #endif ++ #ifdef EVP_R_CTRL_NOT_IMPLEMENTED ++ {"CTRL_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_NOT_IMPLEMENTED", 6, 132}, ++ #endif ++ #ifdef EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", ERR_LIB_EVP, EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED}, ++ #else ++ {"CTRL_OPERATION_NOT_IMPLEMENTED", 6, 133}, ++ #endif ++ #ifdef EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH}, ++ #else ++ {"DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH", 6, 138}, ++ #endif ++ #ifdef EVP_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_EVP, EVP_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 6, 114}, ++ #endif ++ #ifdef EVP_R_DEFAULT_QUERY_PARSE_ERROR ++ {"DEFAULT_QUERY_PARSE_ERROR", ERR_LIB_EVP, EVP_R_DEFAULT_QUERY_PARSE_ERROR}, ++ #else ++ {"DEFAULT_QUERY_PARSE_ERROR", 6, 210}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_KEY_TYPES ++ {"DIFFERENT_KEY_TYPES", ERR_LIB_EVP, EVP_R_DIFFERENT_KEY_TYPES}, ++ #else ++ {"DIFFERENT_KEY_TYPES", 6, 101}, ++ #endif ++ #ifdef EVP_R_DIFFERENT_PARAMETERS ++ {"DIFFERENT_PARAMETERS", ERR_LIB_EVP, EVP_R_DIFFERENT_PARAMETERS}, ++ #else ++ {"DIFFERENT_PARAMETERS", 6, 153}, ++ #endif ++ #ifdef EVP_R_ERROR_LOADING_SECTION ++ {"ERROR_LOADING_SECTION", ERR_LIB_EVP, EVP_R_ERROR_LOADING_SECTION}, ++ #else ++ {"ERROR_LOADING_SECTION", 6, 165}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_HMAC_KEY ++ {"EXPECTING_AN_HMAC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_HMAC_KEY}, ++ #else ++ {"EXPECTING_AN_HMAC_KEY", 6, 174}, ++ #endif ++ #ifdef EVP_R_EXPECTING_AN_RSA_KEY ++ {"EXPECTING_AN_RSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_AN_RSA_KEY}, ++ #else ++ {"EXPECTING_AN_RSA_KEY", 6, 127}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DH_KEY ++ {"EXPECTING_A_DH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DH_KEY}, ++ #else ++ {"EXPECTING_A_DH_KEY", 6, 128}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_DSA_KEY ++ {"EXPECTING_A_DSA_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_DSA_KEY}, ++ #else ++ {"EXPECTING_A_DSA_KEY", 6, 129}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_ECX_KEY ++ {"EXPECTING_A_ECX_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_ECX_KEY}, ++ #else ++ {"EXPECTING_A_ECX_KEY", 6, 219}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_EC_KEY ++ {"EXPECTING_A_EC_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_EC_KEY}, ++ #else ++ {"EXPECTING_A_EC_KEY", 6, 142}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_POLY1305_KEY ++ {"EXPECTING_A_POLY1305_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_POLY1305_KEY}, ++ #else ++ {"EXPECTING_A_POLY1305_KEY", 6, 164}, ++ #endif ++ #ifdef EVP_R_EXPECTING_A_SIPHASH_KEY ++ {"EXPECTING_A_SIPHASH_KEY", ERR_LIB_EVP, EVP_R_EXPECTING_A_SIPHASH_KEY}, ++ #else ++ {"EXPECTING_A_SIPHASH_KEY", 6, 175}, ++ #endif ++ #ifdef EVP_R_FINAL_ERROR ++ {"FINAL_ERROR", ERR_LIB_EVP, EVP_R_FINAL_ERROR}, ++ #else ++ {"FINAL_ERROR", 6, 188}, ++ #endif ++ #ifdef EVP_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_EVP, EVP_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 6, 214}, ++ #endif ++ #ifdef EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED}, ++ #else ++ {"GETTING_ALGORITHMIDENTIFIER_NOT_SUPPORTED", 6, 229}, ++ #endif ++ #ifdef EVP_R_GET_RAW_KEY_FAILED ++ {"GET_RAW_KEY_FAILED", ERR_LIB_EVP, EVP_R_GET_RAW_KEY_FAILED}, ++ #else ++ {"GET_RAW_KEY_FAILED", 6, 182}, ++ #endif ++ #ifdef EVP_R_ILLEGAL_SCRYPT_PARAMETERS ++ {"ILLEGAL_SCRYPT_PARAMETERS", ERR_LIB_EVP, EVP_R_ILLEGAL_SCRYPT_PARAMETERS}, ++ #else ++ {"ILLEGAL_SCRYPT_PARAMETERS", 6, 171}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", ERR_LIB_EVP, EVP_R_INACCESSIBLE_DOMAIN_PARAMETERS}, ++ #else ++ {"INACCESSIBLE_DOMAIN_PARAMETERS", 6, 204}, ++ #endif ++ #ifdef EVP_R_INACCESSIBLE_KEY ++ {"INACCESSIBLE_KEY", ERR_LIB_EVP, EVP_R_INACCESSIBLE_KEY}, ++ #else ++ {"INACCESSIBLE_KEY", 6, 203}, ++ #endif ++ #ifdef EVP_R_INITIALIZATION_ERROR ++ {"INITIALIZATION_ERROR", ERR_LIB_EVP, EVP_R_INITIALIZATION_ERROR}, ++ #else ++ {"INITIALIZATION_ERROR", 6, 134}, ++ #endif ++ #ifdef EVP_R_INPUT_NOT_INITIALIZED ++ {"INPUT_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_INPUT_NOT_INITIALIZED}, ++ #else ++ {"INPUT_NOT_INITIALIZED", 6, 111}, ++ #endif ++ #ifdef EVP_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 6, 185}, ++ #endif ++ #ifdef EVP_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_EVP, EVP_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 6, 152}, ++ #endif ++ #ifdef EVP_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 6, 194}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_EVP, EVP_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 6, 163}, ++ #endif ++ #ifdef EVP_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 6, 130}, ++ #endif ++ #ifdef EVP_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 6, 221}, ++ #endif ++ #ifdef EVP_R_INVALID_NULL_ALGORITHM ++ {"INVALID_NULL_ALGORITHM", ERR_LIB_EVP, EVP_R_INVALID_NULL_ALGORITHM}, ++ #else ++ {"INVALID_NULL_ALGORITHM", 6, 218}, ++ #endif ++ #ifdef EVP_R_INVALID_OPERATION ++ {"INVALID_OPERATION", ERR_LIB_EVP, EVP_R_INVALID_OPERATION}, ++ #else ++ {"INVALID_OPERATION", 6, 148}, ++ #endif ++ #ifdef EVP_R_INVALID_PROVIDER_FUNCTIONS ++ {"INVALID_PROVIDER_FUNCTIONS", ERR_LIB_EVP, EVP_R_INVALID_PROVIDER_FUNCTIONS}, ++ #else ++ {"INVALID_PROVIDER_FUNCTIONS", 6, 193}, ++ #endif ++ #ifdef EVP_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 6, 186}, ++ #endif ++ #ifdef EVP_R_INVALID_SECRET_LENGTH ++ {"INVALID_SECRET_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SECRET_LENGTH}, ++ #else ++ {"INVALID_SECRET_LENGTH", 6, 223}, ++ #endif ++ #ifdef EVP_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_EVP, EVP_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 6, 220}, ++ #endif ++ #ifdef EVP_R_INVALID_VALUE ++ {"INVALID_VALUE", ERR_LIB_EVP, EVP_R_INVALID_VALUE}, ++ #else ++ {"INVALID_VALUE", 6, 222}, ++ #endif ++ #ifdef EVP_R_KEYMGMT_EXPORT_FAILURE ++ {"KEYMGMT_EXPORT_FAILURE", ERR_LIB_EVP, EVP_R_KEYMGMT_EXPORT_FAILURE}, ++ #else ++ {"KEYMGMT_EXPORT_FAILURE", 6, 205}, ++ #endif ++ #ifdef EVP_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_EVP, EVP_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 6, 180}, ++ #endif ++ #ifdef EVP_R_LOCKING_NOT_SUPPORTED ++ {"LOCKING_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_LOCKING_NOT_SUPPORTED}, ++ #else ++ {"LOCKING_NOT_SUPPORTED", 6, 213}, ++ #endif ++ #ifdef EVP_R_MEMORY_LIMIT_EXCEEDED ++ {"MEMORY_LIMIT_EXCEEDED", ERR_LIB_EVP, EVP_R_MEMORY_LIMIT_EXCEEDED}, ++ #else ++ {"MEMORY_LIMIT_EXCEEDED", 6, 172}, ++ #endif ++ #ifdef EVP_R_MESSAGE_DIGEST_IS_NULL ++ {"MESSAGE_DIGEST_IS_NULL", ERR_LIB_EVP, EVP_R_MESSAGE_DIGEST_IS_NULL}, ++ #else ++ {"MESSAGE_DIGEST_IS_NULL", 6, 159}, ++ #endif ++ #ifdef EVP_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 6, 144}, ++ #endif ++ #ifdef EVP_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_EVP, EVP_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 6, 103}, ++ #endif ++ #ifdef EVP_R_NOT_ABLE_TO_COPY_CTX ++ {"NOT_ABLE_TO_COPY_CTX", ERR_LIB_EVP, EVP_R_NOT_ABLE_TO_COPY_CTX}, ++ #else ++ {"NOT_ABLE_TO_COPY_CTX", 6, 190}, ++ #endif ++ #ifdef EVP_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_EVP, EVP_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 6, 178}, ++ #endif ++ #ifdef EVP_R_NO_CIPHER_SET ++ {"NO_CIPHER_SET", ERR_LIB_EVP, EVP_R_NO_CIPHER_SET}, ++ #else ++ {"NO_CIPHER_SET", 6, 131}, ++ #endif ++ #ifdef EVP_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_EVP, EVP_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 6, 158}, ++ #endif ++ #ifdef EVP_R_NO_DIGEST_SET ++ {"NO_DIGEST_SET", ERR_LIB_EVP, EVP_R_NO_DIGEST_SET}, ++ #else ++ {"NO_DIGEST_SET", 6, 139}, ++ #endif ++ #ifdef EVP_R_NO_IMPORT_FUNCTION ++ {"NO_IMPORT_FUNCTION", ERR_LIB_EVP, EVP_R_NO_IMPORT_FUNCTION}, ++ #else ++ {"NO_IMPORT_FUNCTION", 6, 206}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_AVAILABLE ++ {"NO_KEYMGMT_AVAILABLE", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_AVAILABLE}, ++ #else ++ {"NO_KEYMGMT_AVAILABLE", 6, 199}, ++ #endif ++ #ifdef EVP_R_NO_KEYMGMT_PRESENT ++ {"NO_KEYMGMT_PRESENT", ERR_LIB_EVP, EVP_R_NO_KEYMGMT_PRESENT}, ++ #else ++ {"NO_KEYMGMT_PRESENT", 6, 196}, ++ #endif ++ #ifdef EVP_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_EVP, EVP_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 6, 154}, ++ #endif ++ #ifdef EVP_R_NO_OPERATION_SET ++ {"NO_OPERATION_SET", ERR_LIB_EVP, EVP_R_NO_OPERATION_SET}, ++ #else ++ {"NO_OPERATION_SET", 6, 149}, ++ #endif ++ #ifdef EVP_R_NULL_MAC_PKEY_CTX ++ {"NULL_MAC_PKEY_CTX", ERR_LIB_EVP, EVP_R_NULL_MAC_PKEY_CTX}, ++ #else ++ {"NULL_MAC_PKEY_CTX", 6, 208}, ++ #endif ++ #ifdef EVP_R_ONLY_ONESHOT_SUPPORTED ++ {"ONLY_ONESHOT_SUPPORTED", ERR_LIB_EVP, EVP_R_ONLY_ONESHOT_SUPPORTED}, ++ #else ++ {"ONLY_ONESHOT_SUPPORTED", 6, 177}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_INITIALIZED ++ {"OPERATION_NOT_INITIALIZED", ERR_LIB_EVP, EVP_R_OPERATION_NOT_INITIALIZED}, ++ #else ++ {"OPERATION_NOT_INITIALIZED", 6, 151}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 6, 150}, ++ #endif ++ #ifdef EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", ERR_LIB_EVP, EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_SIGNATURE_TYPE", 6, 226}, ++ #endif ++ #ifdef EVP_R_OUTPUT_WOULD_OVERFLOW ++ {"OUTPUT_WOULD_OVERFLOW", ERR_LIB_EVP, EVP_R_OUTPUT_WOULD_OVERFLOW}, ++ #else ++ {"OUTPUT_WOULD_OVERFLOW", 6, 202}, ++ #endif ++ #ifdef EVP_R_PARAMETER_TOO_LARGE ++ {"PARAMETER_TOO_LARGE", ERR_LIB_EVP, EVP_R_PARAMETER_TOO_LARGE}, ++ #else ++ {"PARAMETER_TOO_LARGE", 6, 187}, ++ #endif ++ #ifdef EVP_R_PARTIALLY_OVERLAPPING ++ {"PARTIALLY_OVERLAPPING", ERR_LIB_EVP, EVP_R_PARTIALLY_OVERLAPPING}, ++ #else ++ {"PARTIALLY_OVERLAPPING", 6, 162}, ++ #endif ++ #ifdef EVP_R_PBKDF2_ERROR ++ {"PBKDF2_ERROR", ERR_LIB_EVP, EVP_R_PBKDF2_ERROR}, ++ #else ++ {"PBKDF2_ERROR", 6, 181}, ++ #endif ++ #ifdef EVP_R_PIPELINE_NOT_SUPPORTED ++ {"PIPELINE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PIPELINE_NOT_SUPPORTED}, ++ #else ++ {"PIPELINE_NOT_SUPPORTED", 6, 230}, ++ #endif ++ #ifdef EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", ERR_LIB_EVP, EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED}, ++ #else ++ {"PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED", 6, 179}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR ++ {"PRIVATE_KEY_DECODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_DECODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_DECODE_ERROR", 6, 145}, ++ #endif ++ #ifdef EVP_R_PRIVATE_KEY_ENCODE_ERROR ++ {"PRIVATE_KEY_ENCODE_ERROR", ERR_LIB_EVP, EVP_R_PRIVATE_KEY_ENCODE_ERROR}, ++ #else ++ {"PRIVATE_KEY_ENCODE_ERROR", 6, 146}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_FAILURE ++ {"PROVIDER_ASYM_CIPHER_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_FAILURE}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_FAILURE", 6, 232}, ++ #endif ++ #ifdef EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_ASYM_CIPHER_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_ASYM_CIPHER_NOT_SUPPORTED", 6, 235}, ++ #endif ++ #ifdef EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_GET_CTX_PARAMS_NOT_SUPPORTED", 6, 238}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_FAILURE ++ {"PROVIDER_KEYMGMT_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_FAILURE}, ++ #else ++ {"PROVIDER_KEYMGMT_FAILURE", 6, 233}, ++ #endif ++ #ifdef EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_KEYMGMT_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_KEYMGMT_NOT_SUPPORTED", 6, 236}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_FAILURE ++ {"PROVIDER_SIGNATURE_FAILURE", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_FAILURE}, ++ #else ++ {"PROVIDER_SIGNATURE_FAILURE", 6, 234}, ++ #endif ++ #ifdef EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", ERR_LIB_EVP, EVP_R_PROVIDER_SIGNATURE_NOT_SUPPORTED}, ++ #else ++ {"PROVIDER_SIGNATURE_NOT_SUPPORTED", 6, 237}, ++ #endif ++ #ifdef EVP_R_PUBLIC_KEY_NOT_RSA ++ {"PUBLIC_KEY_NOT_RSA", ERR_LIB_EVP, EVP_R_PUBLIC_KEY_NOT_RSA}, ++ #else ++ {"PUBLIC_KEY_NOT_RSA", 6, 106}, ++ #endif ++ #ifdef EVP_R_SETTING_XOF_FAILED ++ {"SETTING_XOF_FAILED", ERR_LIB_EVP, EVP_R_SETTING_XOF_FAILED}, ++ #else ++ {"SETTING_XOF_FAILED", 6, 227}, ++ #endif ++ #ifdef EVP_R_SET_DEFAULT_PROPERTY_FAILURE ++ {"SET_DEFAULT_PROPERTY_FAILURE", ERR_LIB_EVP, EVP_R_SET_DEFAULT_PROPERTY_FAILURE}, ++ #else ++ {"SET_DEFAULT_PROPERTY_FAILURE", 6, 209}, ++ #endif ++ #ifdef EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", ERR_LIB_EVP, EVP_R_SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE}, ++ #else ++ {"SIGNATURE_TYPE_AND_KEY_TYPE_INCOMPATIBLE", 6, 228}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_PIPES ++ {"TOO_MANY_PIPES", ERR_LIB_EVP, EVP_R_TOO_MANY_PIPES}, ++ #else ++ {"TOO_MANY_PIPES", 6, 231}, ++ #endif ++ #ifdef EVP_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_EVP, EVP_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 6, 183}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_ENABLE_LOCKING ++ {"UNABLE_TO_ENABLE_LOCKING", ERR_LIB_EVP, EVP_R_UNABLE_TO_ENABLE_LOCKING}, ++ #else ++ {"UNABLE_TO_ENABLE_LOCKING", 6, 212}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE}, ++ #else ++ {"UNABLE_TO_GET_MAXIMUM_REQUEST_SIZE", 6, 215}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", ERR_LIB_EVP, EVP_R_UNABLE_TO_GET_RANDOM_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_RANDOM_STRENGTH", 6, 216}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_LOCK_CONTEXT ++ {"UNABLE_TO_LOCK_CONTEXT", ERR_LIB_EVP, EVP_R_UNABLE_TO_LOCK_CONTEXT}, ++ #else ++ {"UNABLE_TO_LOCK_CONTEXT", 6, 211}, ++ #endif ++ #ifdef EVP_R_UNABLE_TO_SET_CALLBACKS ++ {"UNABLE_TO_SET_CALLBACKS", ERR_LIB_EVP, EVP_R_UNABLE_TO_SET_CALLBACKS}, ++ #else ++ {"UNABLE_TO_SET_CALLBACKS", 6, 217}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_BITS ++ {"UNKNOWN_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_BITS}, ++ #else ++ {"UNKNOWN_BITS", 6, 166}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_CIPHER ++ {"UNKNOWN_CIPHER", ERR_LIB_EVP, EVP_R_UNKNOWN_CIPHER}, ++ #else ++ {"UNKNOWN_CIPHER", 6, 160}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_EVP, EVP_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 6, 161}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 6, 207}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_MAX_SIZE ++ {"UNKNOWN_MAX_SIZE", ERR_LIB_EVP, EVP_R_UNKNOWN_MAX_SIZE}, ++ #else ++ {"UNKNOWN_MAX_SIZE", 6, 167}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_EVP, EVP_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 6, 169}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_PBE_ALGORITHM ++ {"UNKNOWN_PBE_ALGORITHM", ERR_LIB_EVP, EVP_R_UNKNOWN_PBE_ALGORITHM}, ++ #else ++ {"UNKNOWN_PBE_ALGORITHM", 6, 121}, ++ #endif ++ #ifdef EVP_R_UNKNOWN_SECURITY_BITS ++ {"UNKNOWN_SECURITY_BITS", ERR_LIB_EVP, EVP_R_UNKNOWN_SECURITY_BITS}, ++ #else ++ {"UNKNOWN_SECURITY_BITS", 6, 168}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 6, 156}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_EVP, EVP_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 6, 107}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEYLENGTH ++ {"UNSUPPORTED_KEYLENGTH", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEYLENGTH}, ++ #else ++ {"UNSUPPORTED_KEYLENGTH", 6, 123}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION}, ++ #else ++ {"UNSUPPORTED_KEY_DERIVATION_FUNCTION", 6, 124}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 6, 108}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_KEY_TYPE ++ {"UNSUPPORTED_KEY_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_KEY_TYPE", 6, 224}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_EVP, EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 6, 135}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRF ++ {"UNSUPPORTED_PRF", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRF}, ++ #else ++ {"UNSUPPORTED_PRF", 6, 125}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", ERR_LIB_EVP, EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_PRIVATE_KEY_ALGORITHM", 6, 118}, ++ #endif ++ #ifdef EVP_R_UNSUPPORTED_SALT_TYPE ++ {"UNSUPPORTED_SALT_TYPE", ERR_LIB_EVP, EVP_R_UNSUPPORTED_SALT_TYPE}, ++ #else ++ {"UNSUPPORTED_SALT_TYPE", 6, 126}, ++ #endif ++ #ifdef EVP_R_UPDATE_ERROR ++ {"UPDATE_ERROR", ERR_LIB_EVP, EVP_R_UPDATE_ERROR}, ++ #else ++ {"UPDATE_ERROR", 6, 189}, ++ #endif ++ #ifdef EVP_R_WRAP_MODE_NOT_ALLOWED ++ {"WRAP_MODE_NOT_ALLOWED", ERR_LIB_EVP, EVP_R_WRAP_MODE_NOT_ALLOWED}, ++ #else ++ {"WRAP_MODE_NOT_ALLOWED", 6, 170}, ++ #endif ++ #ifdef EVP_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_EVP, EVP_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 6, 109}, ++ #endif ++ #ifdef EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_EVP, EVP_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 6, 191}, ++ #endif ++ #ifdef EVP_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_EVP, EVP_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 6, 192}, ++ #endif ++ #ifdef HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", ERR_LIB_HTTP, HTTP_R_ASN1_LEN_EXCEEDS_MAX_RESP_LEN}, ++ #else ++ {"ASN1_LEN_EXCEEDS_MAX_RESP_LEN", 61, 108}, ++ #endif ++ #ifdef HTTP_R_CONNECT_FAILURE ++ {"CONNECT_FAILURE", ERR_LIB_HTTP, HTTP_R_CONNECT_FAILURE}, ++ #else ++ {"CONNECT_FAILURE", 61, 100}, ++ #endif ++ #ifdef HTTP_R_CONTENT_TYPE_MISMATCH ++ {"CONTENT_TYPE_MISMATCH", ERR_LIB_HTTP, HTTP_R_CONTENT_TYPE_MISMATCH}, ++ #else ++ {"CONTENT_TYPE_MISMATCH", 61, 131}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_ASN1_LENGTH ++ {"ERROR_PARSING_ASN1_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_ASN1_LENGTH}, ++ #else ++ {"ERROR_PARSING_ASN1_LENGTH", 61, 109}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_CONTENT_LENGTH ++ {"ERROR_PARSING_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_CONTENT_LENGTH}, ++ #else ++ {"ERROR_PARSING_CONTENT_LENGTH", 61, 119}, ++ #endif ++ #ifdef HTTP_R_ERROR_PARSING_URL ++ {"ERROR_PARSING_URL", ERR_LIB_HTTP, HTTP_R_ERROR_PARSING_URL}, ++ #else ++ {"ERROR_PARSING_URL", 61, 101}, ++ #endif ++ #ifdef HTTP_R_ERROR_RECEIVING ++ {"ERROR_RECEIVING", ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING}, ++ #else ++ {"ERROR_RECEIVING", 61, 103}, ++ #endif ++ #ifdef HTTP_R_ERROR_SENDING ++ {"ERROR_SENDING", ERR_LIB_HTTP, HTTP_R_ERROR_SENDING}, ++ #else ++ {"ERROR_SENDING", 61, 102}, ++ #endif ++ #ifdef HTTP_R_FAILED_READING_DATA ++ {"FAILED_READING_DATA", ERR_LIB_HTTP, HTTP_R_FAILED_READING_DATA}, ++ #else ++ {"FAILED_READING_DATA", 61, 128}, ++ #endif ++ #ifdef HTTP_R_HEADER_PARSE_ERROR ++ {"HEADER_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_HEADER_PARSE_ERROR}, ++ #else ++ {"HEADER_PARSE_ERROR", 61, 126}, ++ #endif ++ #ifdef HTTP_R_INCONSISTENT_CONTENT_LENGTH ++ {"INCONSISTENT_CONTENT_LENGTH", ERR_LIB_HTTP, HTTP_R_INCONSISTENT_CONTENT_LENGTH}, ++ #else ++ {"INCONSISTENT_CONTENT_LENGTH", 61, 120}, ++ #endif ++ #ifdef HTTP_R_INVALID_PORT_NUMBER ++ {"INVALID_PORT_NUMBER", ERR_LIB_HTTP, HTTP_R_INVALID_PORT_NUMBER}, ++ #else ++ {"INVALID_PORT_NUMBER", 61, 123}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_PATH ++ {"INVALID_URL_PATH", ERR_LIB_HTTP, HTTP_R_INVALID_URL_PATH}, ++ #else ++ {"INVALID_URL_PATH", 61, 125}, ++ #endif ++ #ifdef HTTP_R_INVALID_URL_SCHEME ++ {"INVALID_URL_SCHEME", ERR_LIB_HTTP, HTTP_R_INVALID_URL_SCHEME}, ++ #else ++ {"INVALID_URL_SCHEME", 61, 124}, ++ #endif ++ #ifdef HTTP_R_MAX_RESP_LEN_EXCEEDED ++ {"MAX_RESP_LEN_EXCEEDED", ERR_LIB_HTTP, HTTP_R_MAX_RESP_LEN_EXCEEDED}, ++ #else ++ {"MAX_RESP_LEN_EXCEEDED", 61, 117}, ++ #endif ++ #ifdef HTTP_R_MISSING_ASN1_ENCODING ++ {"MISSING_ASN1_ENCODING", ERR_LIB_HTTP, HTTP_R_MISSING_ASN1_ENCODING}, ++ #else ++ {"MISSING_ASN1_ENCODING", 61, 110}, ++ #endif ++ #ifdef HTTP_R_MISSING_CONTENT_TYPE ++ {"MISSING_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_MISSING_CONTENT_TYPE}, ++ #else ++ {"MISSING_CONTENT_TYPE", 61, 121}, ++ #endif ++ #ifdef HTTP_R_MISSING_REDIRECT_LOCATION ++ {"MISSING_REDIRECT_LOCATION", ERR_LIB_HTTP, HTTP_R_MISSING_REDIRECT_LOCATION}, ++ #else ++ {"MISSING_REDIRECT_LOCATION", 61, 111}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_ERROR ++ {"RECEIVED_ERROR", ERR_LIB_HTTP, HTTP_R_RECEIVED_ERROR}, ++ #else ++ {"RECEIVED_ERROR", 61, 105}, ++ #endif ++ #ifdef HTTP_R_RECEIVED_WRONG_HTTP_VERSION ++ {"RECEIVED_WRONG_HTTP_VERSION", ERR_LIB_HTTP, HTTP_R_RECEIVED_WRONG_HTTP_VERSION}, ++ #else ++ {"RECEIVED_WRONG_HTTP_VERSION", 61, 106}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", ERR_LIB_HTTP, HTTP_R_REDIRECTION_FROM_HTTPS_TO_HTTP}, ++ #else ++ {"REDIRECTION_FROM_HTTPS_TO_HTTP", 61, 112}, ++ #endif ++ #ifdef HTTP_R_REDIRECTION_NOT_ENABLED ++ {"REDIRECTION_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_REDIRECTION_NOT_ENABLED}, ++ #else ++ {"REDIRECTION_NOT_ENABLED", 61, 116}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_LINE_TOO_LONG ++ {"RESPONSE_LINE_TOO_LONG", ERR_LIB_HTTP, HTTP_R_RESPONSE_LINE_TOO_LONG}, ++ #else ++ {"RESPONSE_LINE_TOO_LONG", 61, 113}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_PARSE_ERROR ++ {"RESPONSE_PARSE_ERROR", ERR_LIB_HTTP, HTTP_R_RESPONSE_PARSE_ERROR}, ++ #else ++ {"RESPONSE_PARSE_ERROR", 61, 104}, ++ #endif ++ #ifdef HTTP_R_RESPONSE_TOO_MANY_HDRLINES ++ {"RESPONSE_TOO_MANY_HDRLINES", ERR_LIB_HTTP, HTTP_R_RESPONSE_TOO_MANY_HDRLINES}, ++ #else ++ {"RESPONSE_TOO_MANY_HDRLINES", 61, 130}, ++ #endif ++ #ifdef HTTP_R_RETRY_TIMEOUT ++ {"RETRY_TIMEOUT", ERR_LIB_HTTP, HTTP_R_RETRY_TIMEOUT}, ++ #else ++ {"RETRY_TIMEOUT", 61, 129}, ++ #endif ++ #ifdef HTTP_R_SERVER_CANCELED_CONNECTION ++ {"SERVER_CANCELED_CONNECTION", ERR_LIB_HTTP, HTTP_R_SERVER_CANCELED_CONNECTION}, ++ #else ++ {"SERVER_CANCELED_CONNECTION", 61, 127}, ++ #endif ++ #ifdef HTTP_R_SOCK_NOT_SUPPORTED ++ {"SOCK_NOT_SUPPORTED", ERR_LIB_HTTP, HTTP_R_SOCK_NOT_SUPPORTED}, ++ #else ++ {"SOCK_NOT_SUPPORTED", 61, 122}, ++ #endif ++ #ifdef HTTP_R_STATUS_CODE_UNSUPPORTED ++ {"STATUS_CODE_UNSUPPORTED", ERR_LIB_HTTP, HTTP_R_STATUS_CODE_UNSUPPORTED}, ++ #else ++ {"STATUS_CODE_UNSUPPORTED", 61, 114}, ++ #endif ++ #ifdef HTTP_R_TLS_NOT_ENABLED ++ {"TLS_NOT_ENABLED", ERR_LIB_HTTP, HTTP_R_TLS_NOT_ENABLED}, ++ #else ++ {"TLS_NOT_ENABLED", 61, 107}, ++ #endif ++ #ifdef HTTP_R_TOO_MANY_REDIRECTIONS ++ {"TOO_MANY_REDIRECTIONS", ERR_LIB_HTTP, HTTP_R_TOO_MANY_REDIRECTIONS}, ++ #else ++ {"TOO_MANY_REDIRECTIONS", 61, 115}, ++ #endif ++ #ifdef HTTP_R_UNEXPECTED_CONTENT_TYPE ++ {"UNEXPECTED_CONTENT_TYPE", ERR_LIB_HTTP, HTTP_R_UNEXPECTED_CONTENT_TYPE}, ++ #else ++ {"UNEXPECTED_CONTENT_TYPE", 61, 118}, ++ #endif ++ #ifdef OBJ_R_OID_EXISTS ++ {"OID_EXISTS", ERR_LIB_OBJ, OBJ_R_OID_EXISTS}, ++ #else ++ {"OID_EXISTS", 8, 102}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OBJ, OBJ_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 8, 101}, ++ #endif ++ #ifdef OBJ_R_UNKNOWN_OBJECT_NAME ++ {"UNKNOWN_OBJECT_NAME", ERR_LIB_OBJ, OBJ_R_UNKNOWN_OBJECT_NAME}, ++ #else ++ {"UNKNOWN_OBJECT_NAME", 8, 103}, ++ #endif ++ #ifdef OCSP_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_OCSP, OCSP_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 39, 101}, ++ #endif ++ #ifdef OCSP_R_DIGEST_ERR ++ {"DIGEST_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_ERR}, ++ #else ++ {"DIGEST_ERR", 39, 102}, ++ #endif ++ #ifdef OCSP_R_DIGEST_NAME_ERR ++ {"DIGEST_NAME_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_NAME_ERR}, ++ #else ++ {"DIGEST_NAME_ERR", 39, 106}, ++ #endif ++ #ifdef OCSP_R_DIGEST_SIZE_ERR ++ {"DIGEST_SIZE_ERR", ERR_LIB_OCSP, OCSP_R_DIGEST_SIZE_ERR}, ++ #else ++ {"DIGEST_SIZE_ERR", 39, 107}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_NEXTUPDATE_FIELD ++ {"ERROR_IN_NEXTUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_NEXTUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_NEXTUPDATE_FIELD", 39, 122}, ++ #endif ++ #ifdef OCSP_R_ERROR_IN_THISUPDATE_FIELD ++ {"ERROR_IN_THISUPDATE_FIELD", ERR_LIB_OCSP, OCSP_R_ERROR_IN_THISUPDATE_FIELD}, ++ #else ++ {"ERROR_IN_THISUPDATE_FIELD", 39, 123}, ++ #endif ++ #ifdef OCSP_R_MISSING_OCSPSIGNING_USAGE ++ {"MISSING_OCSPSIGNING_USAGE", ERR_LIB_OCSP, OCSP_R_MISSING_OCSPSIGNING_USAGE}, ++ #else ++ {"MISSING_OCSPSIGNING_USAGE", 39, 103}, ++ #endif ++ #ifdef OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE ++ {"NEXTUPDATE_BEFORE_THISUPDATE", ERR_LIB_OCSP, OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE}, ++ #else ++ {"NEXTUPDATE_BEFORE_THISUPDATE", 39, 124}, ++ #endif ++ #ifdef OCSP_R_NOT_BASIC_RESPONSE ++ {"NOT_BASIC_RESPONSE", ERR_LIB_OCSP, OCSP_R_NOT_BASIC_RESPONSE}, ++ #else ++ {"NOT_BASIC_RESPONSE", 39, 104}, ++ #endif ++ #ifdef OCSP_R_NO_CERTIFICATES_IN_CHAIN ++ {"NO_CERTIFICATES_IN_CHAIN", ERR_LIB_OCSP, OCSP_R_NO_CERTIFICATES_IN_CHAIN}, ++ #else ++ {"NO_CERTIFICATES_IN_CHAIN", 39, 105}, ++ #endif ++ #ifdef OCSP_R_NO_RESPONSE_DATA ++ {"NO_RESPONSE_DATA", ERR_LIB_OCSP, OCSP_R_NO_RESPONSE_DATA}, ++ #else ++ {"NO_RESPONSE_DATA", 39, 108}, ++ #endif ++ #ifdef OCSP_R_NO_REVOKED_TIME ++ {"NO_REVOKED_TIME", ERR_LIB_OCSP, OCSP_R_NO_REVOKED_TIME}, ++ #else ++ {"NO_REVOKED_TIME", 39, 109}, ++ #endif ++ #ifdef OCSP_R_NO_SIGNER_KEY ++ {"NO_SIGNER_KEY", ERR_LIB_OCSP, OCSP_R_NO_SIGNER_KEY}, ++ #else ++ {"NO_SIGNER_KEY", 39, 130}, ++ #endif ++ #ifdef OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_OCSP, OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 39, 110}, ++ #endif ++ #ifdef OCSP_R_REQUEST_NOT_SIGNED ++ {"REQUEST_NOT_SIGNED", ERR_LIB_OCSP, OCSP_R_REQUEST_NOT_SIGNED}, ++ #else ++ {"REQUEST_NOT_SIGNED", 39, 128}, ++ #endif ++ #ifdef OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", ERR_LIB_OCSP, OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA}, ++ #else ++ {"RESPONSE_CONTAINS_NO_REVOCATION_DATA", 39, 111}, ++ #endif ++ #ifdef OCSP_R_ROOT_CA_NOT_TRUSTED ++ {"ROOT_CA_NOT_TRUSTED", ERR_LIB_OCSP, OCSP_R_ROOT_CA_NOT_TRUSTED}, ++ #else ++ {"ROOT_CA_NOT_TRUSTED", 39, 112}, ++ #endif ++ #ifdef OCSP_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_OCSP, OCSP_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 39, 117}, ++ #endif ++ #ifdef OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_OCSP, OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 39, 118}, ++ #endif ++ #ifdef OCSP_R_STATUS_EXPIRED ++ {"STATUS_EXPIRED", ERR_LIB_OCSP, OCSP_R_STATUS_EXPIRED}, ++ #else ++ {"STATUS_EXPIRED", 39, 125}, ++ #endif ++ #ifdef OCSP_R_STATUS_NOT_YET_VALID ++ {"STATUS_NOT_YET_VALID", ERR_LIB_OCSP, OCSP_R_STATUS_NOT_YET_VALID}, ++ #else ++ {"STATUS_NOT_YET_VALID", 39, 126}, ++ #endif ++ #ifdef OCSP_R_STATUS_TOO_OLD ++ {"STATUS_TOO_OLD", ERR_LIB_OCSP, OCSP_R_STATUS_TOO_OLD}, ++ #else ++ {"STATUS_TOO_OLD", 39, 127}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_MESSAGE_DIGEST ++ {"UNKNOWN_MESSAGE_DIGEST", ERR_LIB_OCSP, OCSP_R_UNKNOWN_MESSAGE_DIGEST}, ++ #else ++ {"UNKNOWN_MESSAGE_DIGEST", 39, 119}, ++ #endif ++ #ifdef OCSP_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_OCSP, OCSP_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 39, 120}, ++ #endif ++ #ifdef OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", ERR_LIB_OCSP, OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE}, ++ #else ++ {"UNSUPPORTED_REQUESTORNAME_TYPE", 39, 129}, ++ #endif ++ #ifdef OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT ++ {"COULD_NOT_DECODE_OBJECT", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_COULD_NOT_DECODE_OBJECT}, ++ #else ++ {"COULD_NOT_DECODE_OBJECT", 60, 101}, ++ #endif ++ #ifdef OSSL_DECODER_R_DECODER_NOT_FOUND ++ {"DECODER_NOT_FOUND", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_DECODER_NOT_FOUND}, ++ #else ++ {"DECODER_NOT_FOUND", 60, 102}, ++ #endif ++ #ifdef OSSL_DECODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_DECODER, OSSL_DECODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 60, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_BAD_PARAMETER_VALUE ++ {"BAD_PARAMETER_VALUE", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_BAD_PARAMETER_VALUE}, ++ #else ++ {"BAD_PARAMETER_VALUE", 59, 103}, ++ #endif ++ #ifdef OSSL_ENCODER_R_ENCODER_NOT_FOUND ++ {"ENCODER_NOT_FOUND", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_ENCODER_NOT_FOUND}, ++ #else ++ {"ENCODER_NOT_FOUND", 59, 101}, ++ #endif ++ #ifdef OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY ++ {"INCORRECT_PROPERTY_QUERY", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_INCORRECT_PROPERTY_QUERY}, ++ #else ++ {"INCORRECT_PROPERTY_QUERY", 59, 100}, ++ #endif ++ #ifdef OSSL_ENCODER_R_MISSING_GET_PARAMS ++ {"MISSING_GET_PARAMS", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_MISSING_GET_PARAMS}, ++ #else ++ {"MISSING_GET_PARAMS", 59, 102}, ++ #endif ++ #ifdef OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME ++ {"UNKNOWN_PARAMETER_NAME", ERR_LIB_OSSL_ENCODER, OSSL_ENCODER_R_UNKNOWN_PARAMETER_NAME}, ++ #else ++ {"UNKNOWN_PARAMETER_NAME", 59, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE ++ {"AMBIGUOUS_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_AMBIGUOUS_CONTENT_TYPE}, ++ #else ++ {"AMBIGUOUS_CONTENT_TYPE", 44, 107}, ++ #endif ++ #ifdef OSSL_STORE_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_OSSL_STORE, OSSL_STORE_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 44, 115}, ++ #endif ++ #ifdef OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC ++ {"ERROR_VERIFYING_PKCS12_MAC", ERR_LIB_OSSL_STORE, OSSL_STORE_R_ERROR_VERIFYING_PKCS12_MAC}, ++ #else ++ {"ERROR_VERIFYING_PKCS12_MAC", 44, 113}, ++ #endif ++ #ifdef OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", ERR_LIB_OSSL_STORE, OSSL_STORE_R_FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST}, ++ #else ++ {"FINGERPRINT_SIZE_DOES_NOT_MATCH_DIGEST", 44, 121}, ++ #endif ++ #ifdef OSSL_STORE_R_INVALID_SCHEME ++ {"INVALID_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_INVALID_SCHEME}, ++ #else ++ {"INVALID_SCHEME", 44, 106}, ++ #endif ++ #ifdef OSSL_STORE_R_IS_NOT_A ++ {"IS_NOT_A", ERR_LIB_OSSL_STORE, OSSL_STORE_R_IS_NOT_A}, ++ #else ++ {"IS_NOT_A", 44, 112}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADER_INCOMPLETE ++ {"LOADER_INCOMPLETE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADER_INCOMPLETE}, ++ #else ++ {"LOADER_INCOMPLETE", 44, 116}, ++ #endif ++ #ifdef OSSL_STORE_R_LOADING_STARTED ++ {"LOADING_STARTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED}, ++ #else ++ {"LOADING_STARTED", 44, 117}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CERTIFICATE ++ {"NOT_A_CERTIFICATE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CERTIFICATE}, ++ #else ++ {"NOT_A_CERTIFICATE", 44, 100}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_CRL ++ {"NOT_A_CRL", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_CRL}, ++ #else ++ {"NOT_A_CRL", 44, 101}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_NAME ++ {"NOT_A_NAME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_NAME}, ++ #else ++ {"NOT_A_NAME", 44, 103}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 44, 102}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 44, 122}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_A_SYMMETRIC_KEY ++ {"NOT_A_SYMMETRIC_KEY", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_A_SYMMETRIC_KEY}, ++ #else ++ {"NOT_A_SYMMETRIC_KEY", 44, 124}, ++ #endif ++ #ifdef OSSL_STORE_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 44, 104}, ++ #endif ++ #ifdef OSSL_STORE_R_NO_LOADERS_FOUND ++ {"NO_LOADERS_FOUND", ERR_LIB_OSSL_STORE, OSSL_STORE_R_NO_LOADERS_FOUND}, ++ #else ++ {"NO_LOADERS_FOUND", 44, 123}, ++ #endif ++ #ifdef OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR ++ {"PASSPHRASE_CALLBACK_ERROR", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PASSPHRASE_CALLBACK_ERROR}, ++ #else ++ {"PASSPHRASE_CALLBACK_ERROR", 44, 114}, ++ #endif ++ #ifdef OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 44, 108}, ++ #endif ++ #ifdef OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_OSSL_STORE, OSSL_STORE_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 44, 119}, ++ #endif ++ #ifdef OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UI_PROCESS_INTERRUPTED_OR_CANCELLED}, ++ #else ++ {"UI_PROCESS_INTERRUPTED_OR_CANCELLED", 44, 109}, ++ #endif ++ #ifdef OSSL_STORE_R_UNREGISTERED_SCHEME ++ {"UNREGISTERED_SCHEME", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNREGISTERED_SCHEME}, ++ #else ++ {"UNREGISTERED_SCHEME", 44, 105}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 44, 110}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_OPERATION ++ {"UNSUPPORTED_OPERATION", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_OPERATION}, ++ #else ++ {"UNSUPPORTED_OPERATION", 44, 118}, ++ #endif ++ #ifdef OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE ++ {"UNSUPPORTED_SEARCH_TYPE", ERR_LIB_OSSL_STORE, OSSL_STORE_R_UNSUPPORTED_SEARCH_TYPE}, ++ #else ++ {"UNSUPPORTED_SEARCH_TYPE", 44, 120}, ++ #endif ++ #ifdef OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_OSSL_STORE, OSSL_STORE_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 44, 111}, ++ #endif ++ #ifdef PEM_R_BAD_BASE64_DECODE ++ {"BAD_BASE64_DECODE", ERR_LIB_PEM, PEM_R_BAD_BASE64_DECODE}, ++ #else ++ {"BAD_BASE64_DECODE", 9, 100}, ++ #endif ++ #ifdef PEM_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PEM, PEM_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 9, 101}, ++ #endif ++ #ifdef PEM_R_BAD_END_LINE ++ {"BAD_END_LINE", ERR_LIB_PEM, PEM_R_BAD_END_LINE}, ++ #else ++ {"BAD_END_LINE", 9, 102}, ++ #endif ++ #ifdef PEM_R_BAD_IV_CHARS ++ {"BAD_IV_CHARS", ERR_LIB_PEM, PEM_R_BAD_IV_CHARS}, ++ #else ++ {"BAD_IV_CHARS", 9, 103}, ++ #endif ++ #ifdef PEM_R_BAD_MAGIC_NUMBER ++ {"BAD_MAGIC_NUMBER", ERR_LIB_PEM, PEM_R_BAD_MAGIC_NUMBER}, ++ #else ++ {"BAD_MAGIC_NUMBER", 9, 116}, ++ #endif ++ #ifdef PEM_R_BAD_PASSWORD_READ ++ {"BAD_PASSWORD_READ", ERR_LIB_PEM, PEM_R_BAD_PASSWORD_READ}, ++ #else ++ {"BAD_PASSWORD_READ", 9, 104}, ++ #endif ++ #ifdef PEM_R_BAD_VERSION_NUMBER ++ {"BAD_VERSION_NUMBER", ERR_LIB_PEM, PEM_R_BAD_VERSION_NUMBER}, ++ #else ++ {"BAD_VERSION_NUMBER", 9, 117}, ++ #endif ++ #ifdef PEM_R_BIO_WRITE_FAILURE ++ {"BIO_WRITE_FAILURE", ERR_LIB_PEM, PEM_R_BIO_WRITE_FAILURE}, ++ #else ++ {"BIO_WRITE_FAILURE", 9, 118}, ++ #endif ++ #ifdef PEM_R_CIPHER_IS_NULL ++ {"CIPHER_IS_NULL", ERR_LIB_PEM, PEM_R_CIPHER_IS_NULL}, ++ #else ++ {"CIPHER_IS_NULL", 9, 127}, ++ #endif ++ #ifdef PEM_R_ERROR_CONVERTING_PRIVATE_KEY ++ {"ERROR_CONVERTING_PRIVATE_KEY", ERR_LIB_PEM, PEM_R_ERROR_CONVERTING_PRIVATE_KEY}, ++ #else ++ {"ERROR_CONVERTING_PRIVATE_KEY", 9, 115}, ++ #endif ++ #ifdef PEM_R_EXPECTING_DSS_KEY_BLOB ++ {"EXPECTING_DSS_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_DSS_KEY_BLOB}, ++ #else ++ {"EXPECTING_DSS_KEY_BLOB", 9, 131}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PRIVATE_KEY_BLOB ++ {"EXPECTING_PRIVATE_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PRIVATE_KEY_BLOB}, ++ #else ++ {"EXPECTING_PRIVATE_KEY_BLOB", 9, 119}, ++ #endif ++ #ifdef PEM_R_EXPECTING_PUBLIC_KEY_BLOB ++ {"EXPECTING_PUBLIC_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_PUBLIC_KEY_BLOB}, ++ #else ++ {"EXPECTING_PUBLIC_KEY_BLOB", 9, 120}, ++ #endif ++ #ifdef PEM_R_EXPECTING_RSA_KEY_BLOB ++ {"EXPECTING_RSA_KEY_BLOB", ERR_LIB_PEM, PEM_R_EXPECTING_RSA_KEY_BLOB}, ++ #else ++ {"EXPECTING_RSA_KEY_BLOB", 9, 132}, ++ #endif ++ #ifdef PEM_R_HEADER_TOO_LONG ++ {"HEADER_TOO_LONG", ERR_LIB_PEM, PEM_R_HEADER_TOO_LONG}, ++ #else ++ {"HEADER_TOO_LONG", 9, 128}, ++ #endif ++ #ifdef PEM_R_INCONSISTENT_HEADER ++ {"INCONSISTENT_HEADER", ERR_LIB_PEM, PEM_R_INCONSISTENT_HEADER}, ++ #else ++ {"INCONSISTENT_HEADER", 9, 121}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_HEADER_PARSE_ERROR ++ {"KEYBLOB_HEADER_PARSE_ERROR", ERR_LIB_PEM, PEM_R_KEYBLOB_HEADER_PARSE_ERROR}, ++ #else ++ {"KEYBLOB_HEADER_PARSE_ERROR", 9, 122}, ++ #endif ++ #ifdef PEM_R_KEYBLOB_TOO_SHORT ++ {"KEYBLOB_TOO_SHORT", ERR_LIB_PEM, PEM_R_KEYBLOB_TOO_SHORT}, ++ #else ++ {"KEYBLOB_TOO_SHORT", 9, 123}, ++ #endif ++ #ifdef PEM_R_MISSING_DEK_IV ++ {"MISSING_DEK_IV", ERR_LIB_PEM, PEM_R_MISSING_DEK_IV}, ++ #else ++ {"MISSING_DEK_IV", 9, 129}, ++ #endif ++ #ifdef PEM_R_NOT_DEK_INFO ++ {"NOT_DEK_INFO", ERR_LIB_PEM, PEM_R_NOT_DEK_INFO}, ++ #else ++ {"NOT_DEK_INFO", 9, 105}, ++ #endif ++ #ifdef PEM_R_NOT_ENCRYPTED ++ {"NOT_ENCRYPTED", ERR_LIB_PEM, PEM_R_NOT_ENCRYPTED}, ++ #else ++ {"NOT_ENCRYPTED", 9, 106}, ++ #endif ++ #ifdef PEM_R_NOT_PROC_TYPE ++ {"NOT_PROC_TYPE", ERR_LIB_PEM, PEM_R_NOT_PROC_TYPE}, ++ #else ++ {"NOT_PROC_TYPE", 9, 107}, ++ #endif ++ #ifdef PEM_R_NO_START_LINE ++ {"NO_START_LINE", ERR_LIB_PEM, PEM_R_NO_START_LINE}, ++ #else ++ {"NO_START_LINE", 9, 108}, ++ #endif ++ #ifdef PEM_R_PROBLEMS_GETTING_PASSWORD ++ {"PROBLEMS_GETTING_PASSWORD", ERR_LIB_PEM, PEM_R_PROBLEMS_GETTING_PASSWORD}, ++ #else ++ {"PROBLEMS_GETTING_PASSWORD", 9, 109}, ++ #endif ++ #ifdef PEM_R_PVK_DATA_TOO_SHORT ++ {"PVK_DATA_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_DATA_TOO_SHORT}, ++ #else ++ {"PVK_DATA_TOO_SHORT", 9, 124}, ++ #endif ++ #ifdef PEM_R_PVK_TOO_SHORT ++ {"PVK_TOO_SHORT", ERR_LIB_PEM, PEM_R_PVK_TOO_SHORT}, ++ #else ++ {"PVK_TOO_SHORT", 9, 125}, ++ #endif ++ #ifdef PEM_R_READ_KEY ++ {"READ_KEY", ERR_LIB_PEM, PEM_R_READ_KEY}, ++ #else ++ {"READ_KEY", 9, 111}, ++ #endif ++ #ifdef PEM_R_SHORT_HEADER ++ {"SHORT_HEADER", ERR_LIB_PEM, PEM_R_SHORT_HEADER}, ++ #else ++ {"SHORT_HEADER", 9, 112}, ++ #endif ++ #ifdef PEM_R_UNEXPECTED_DEK_IV ++ {"UNEXPECTED_DEK_IV", ERR_LIB_PEM, PEM_R_UNEXPECTED_DEK_IV}, ++ #else ++ {"UNEXPECTED_DEK_IV", 9, 130}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_CIPHER ++ {"UNSUPPORTED_CIPHER", ERR_LIB_PEM, PEM_R_UNSUPPORTED_CIPHER}, ++ #else ++ {"UNSUPPORTED_CIPHER", 9, 113}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_ENCRYPTION ++ {"UNSUPPORTED_ENCRYPTION", ERR_LIB_PEM, PEM_R_UNSUPPORTED_ENCRYPTION}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION", 9, 114}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_KEY_COMPONENTS ++ {"UNSUPPORTED_KEY_COMPONENTS", ERR_LIB_PEM, PEM_R_UNSUPPORTED_KEY_COMPONENTS}, ++ #else ++ {"UNSUPPORTED_KEY_COMPONENTS", 9, 126}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PUBLIC_KEY_TYPE", 9, 110}, ++ #endif ++ #ifdef PEM_R_UNSUPPORTED_PVK_KEY_TYPE ++ {"UNSUPPORTED_PVK_KEY_TYPE", ERR_LIB_PEM, PEM_R_UNSUPPORTED_PVK_KEY_TYPE}, ++ #else ++ {"UNSUPPORTED_PVK_KEY_TYPE", 9, 133}, ++ #endif ++ #ifdef PKCS12_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_PKCS12, PKCS12_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 35, 115}, ++ #endif ++ #ifdef PKCS12_R_CANT_PACK_STRUCTURE ++ {"CANT_PACK_STRUCTURE", ERR_LIB_PKCS12, PKCS12_R_CANT_PACK_STRUCTURE}, ++ #else ++ {"CANT_PACK_STRUCTURE", 35, 100}, ++ #endif ++ #ifdef PKCS12_R_CONTENT_TYPE_NOT_DATA ++ {"CONTENT_TYPE_NOT_DATA", ERR_LIB_PKCS12, PKCS12_R_CONTENT_TYPE_NOT_DATA}, ++ #else ++ {"CONTENT_TYPE_NOT_DATA", 35, 121}, ++ #endif ++ #ifdef PKCS12_R_DECODE_ERROR ++ {"DECODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_DECODE_ERROR}, ++ #else ++ {"DECODE_ERROR", 35, 101}, ++ #endif ++ #ifdef PKCS12_R_ENCODE_ERROR ++ {"ENCODE_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCODE_ERROR}, ++ #else ++ {"ENCODE_ERROR", 35, 102}, ++ #endif ++ #ifdef PKCS12_R_ENCRYPT_ERROR ++ {"ENCRYPT_ERROR", ERR_LIB_PKCS12, PKCS12_R_ENCRYPT_ERROR}, ++ #else ++ {"ENCRYPT_ERROR", 35, 103}, ++ #endif ++ #ifdef PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", ERR_LIB_PKCS12, PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE}, ++ #else ++ {"ERROR_SETTING_ENCRYPTED_DATA_TYPE", 35, 120}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 35, 104}, ++ #endif ++ #ifdef PKCS12_R_INVALID_NULL_PKCS12_POINTER ++ {"INVALID_NULL_PKCS12_POINTER", ERR_LIB_PKCS12, PKCS12_R_INVALID_NULL_PKCS12_POINTER}, ++ #else ++ {"INVALID_NULL_PKCS12_POINTER", 35, 105}, ++ #endif ++ #ifdef PKCS12_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PKCS12, PKCS12_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 35, 117}, ++ #endif ++ #ifdef PKCS12_R_INVALID_TYPE ++ {"INVALID_TYPE", ERR_LIB_PKCS12, PKCS12_R_INVALID_TYPE}, ++ #else ++ {"INVALID_TYPE", 35, 112}, ++ #endif ++ #ifdef PKCS12_R_IV_GEN_ERROR ++ {"IV_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_IV_GEN_ERROR}, ++ #else ++ {"IV_GEN_ERROR", 35, 106}, ++ #endif ++ #ifdef PKCS12_R_KEY_GEN_ERROR ++ {"KEY_GEN_ERROR", ERR_LIB_PKCS12, PKCS12_R_KEY_GEN_ERROR}, ++ #else ++ {"KEY_GEN_ERROR", 35, 107}, ++ #endif ++ #ifdef PKCS12_R_MAC_ABSENT ++ {"MAC_ABSENT", ERR_LIB_PKCS12, PKCS12_R_MAC_ABSENT}, ++ #else ++ {"MAC_ABSENT", 35, 108}, ++ #endif ++ #ifdef PKCS12_R_MAC_GENERATION_ERROR ++ {"MAC_GENERATION_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_GENERATION_ERROR}, ++ #else ++ {"MAC_GENERATION_ERROR", 35, 109}, ++ #endif ++ #ifdef PKCS12_R_MAC_SETUP_ERROR ++ {"MAC_SETUP_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_SETUP_ERROR}, ++ #else ++ {"MAC_SETUP_ERROR", 35, 110}, ++ #endif ++ #ifdef PKCS12_R_MAC_STRING_SET_ERROR ++ {"MAC_STRING_SET_ERROR", ERR_LIB_PKCS12, PKCS12_R_MAC_STRING_SET_ERROR}, ++ #else ++ {"MAC_STRING_SET_ERROR", 35, 111}, ++ #endif ++ #ifdef PKCS12_R_MAC_VERIFY_FAILURE ++ {"MAC_VERIFY_FAILURE", ERR_LIB_PKCS12, PKCS12_R_MAC_VERIFY_FAILURE}, ++ #else ++ {"MAC_VERIFY_FAILURE", 35, 113}, ++ #endif ++ #ifdef PKCS12_R_PARSE_ERROR ++ {"PARSE_ERROR", ERR_LIB_PKCS12, PKCS12_R_PARSE_ERROR}, ++ #else ++ {"PARSE_ERROR", 35, 114}, ++ #endif ++ #ifdef PKCS12_R_PKCS12_CIPHERFINAL_ERROR ++ {"PKCS12_CIPHERFINAL_ERROR", ERR_LIB_PKCS12, PKCS12_R_PKCS12_CIPHERFINAL_ERROR}, ++ #else ++ {"PKCS12_CIPHERFINAL_ERROR", 35, 116}, ++ #endif ++ #ifdef PKCS12_R_UNKNOWN_DIGEST_ALGORITHM ++ {"UNKNOWN_DIGEST_ALGORITHM", ERR_LIB_PKCS12, PKCS12_R_UNKNOWN_DIGEST_ALGORITHM}, ++ #else ++ {"UNKNOWN_DIGEST_ALGORITHM", 35, 118}, ++ #endif ++ #ifdef PKCS12_R_UNSUPPORTED_PKCS12_MODE ++ {"UNSUPPORTED_PKCS12_MODE", ERR_LIB_PKCS12, PKCS12_R_UNSUPPORTED_PKCS12_MODE}, ++ #else ++ {"UNSUPPORTED_PKCS12_MODE", 35, 119}, ++ #endif ++ #ifdef PKCS7_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_PKCS7, PKCS7_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 33, 117}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", ERR_LIB_PKCS7, PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER}, ++ #else ++ {"CIPHER_HAS_NO_OBJECT_IDENTIFIER", 33, 144}, ++ #endif ++ #ifdef PKCS7_R_CIPHER_NOT_INITIALIZED ++ {"CIPHER_NOT_INITIALIZED", ERR_LIB_PKCS7, PKCS7_R_CIPHER_NOT_INITIALIZED}, ++ #else ++ {"CIPHER_NOT_INITIALIZED", 33, 116}, ++ #endif ++ #ifdef PKCS7_R_CONTENT_AND_DATA_PRESENT ++ {"CONTENT_AND_DATA_PRESENT", ERR_LIB_PKCS7, PKCS7_R_CONTENT_AND_DATA_PRESENT}, ++ #else ++ {"CONTENT_AND_DATA_PRESENT", 33, 118}, ++ #endif ++ #ifdef PKCS7_R_CTRL_ERROR ++ {"CTRL_ERROR", ERR_LIB_PKCS7, PKCS7_R_CTRL_ERROR}, ++ #else ++ {"CTRL_ERROR", 33, 152}, ++ #endif ++ #ifdef PKCS7_R_DECRYPT_ERROR ++ {"DECRYPT_ERROR", ERR_LIB_PKCS7, PKCS7_R_DECRYPT_ERROR}, ++ #else ++ {"DECRYPT_ERROR", 33, 119}, ++ #endif ++ #ifdef PKCS7_R_DIGEST_FAILURE ++ {"DIGEST_FAILURE", ERR_LIB_PKCS7, PKCS7_R_DIGEST_FAILURE}, ++ #else ++ {"DIGEST_FAILURE", 33, 101}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_CTRL_FAILURE ++ {"ENCRYPTION_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_CTRL_FAILURE}, ++ #else ++ {"ENCRYPTION_CTRL_FAILURE", 33, 149}, ++ #endif ++ #ifdef PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 150}, ++ #endif ++ #ifdef PKCS7_R_ERROR_ADDING_RECIPIENT ++ {"ERROR_ADDING_RECIPIENT", ERR_LIB_PKCS7, PKCS7_R_ERROR_ADDING_RECIPIENT}, ++ #else ++ {"ERROR_ADDING_RECIPIENT", 33, 120}, ++ #endif ++ #ifdef PKCS7_R_ERROR_SETTING_CIPHER ++ {"ERROR_SETTING_CIPHER", ERR_LIB_PKCS7, PKCS7_R_ERROR_SETTING_CIPHER}, ++ #else ++ {"ERROR_SETTING_CIPHER", 33, 121}, ++ #endif ++ #ifdef PKCS7_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_PKCS7, PKCS7_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 33, 143}, ++ #endif ++ #ifdef PKCS7_R_INVALID_SIGNED_DATA_TYPE ++ {"INVALID_SIGNED_DATA_TYPE", ERR_LIB_PKCS7, PKCS7_R_INVALID_SIGNED_DATA_TYPE}, ++ #else ++ {"INVALID_SIGNED_DATA_TYPE", 33, 155}, ++ #endif ++ #ifdef PKCS7_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_PKCS7, PKCS7_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 33, 122}, ++ #endif ++ #ifdef PKCS7_R_NO_DEFAULT_DIGEST ++ {"NO_DEFAULT_DIGEST", ERR_LIB_PKCS7, PKCS7_R_NO_DEFAULT_DIGEST}, ++ #else ++ {"NO_DEFAULT_DIGEST", 33, 151}, ++ #endif ++ #ifdef PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", ERR_LIB_PKCS7, PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND}, ++ #else ++ {"NO_MATCHING_DIGEST_TYPE_FOUND", 33, 154}, ++ #endif ++ #ifdef PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE}, ++ #else ++ {"NO_RECIPIENT_MATCHES_CERTIFICATE", 33, 115}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNATURES_ON_DATA ++ {"NO_SIGNATURES_ON_DATA", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNATURES_ON_DATA}, ++ #else ++ {"NO_SIGNATURES_ON_DATA", 33, 123}, ++ #endif ++ #ifdef PKCS7_R_NO_SIGNERS ++ {"NO_SIGNERS", ERR_LIB_PKCS7, PKCS7_R_NO_SIGNERS}, ++ #else ++ {"NO_SIGNERS", 33, 142}, ++ #endif ++ #ifdef PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", ERR_LIB_PKCS7, PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_ON_THIS_TYPE", 33, 104}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 33, 124}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_ADD_SIGNER_ERROR ++ {"PKCS7_ADD_SIGNER_ERROR", ERR_LIB_PKCS7, PKCS7_R_PKCS7_ADD_SIGNER_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNER_ERROR", 33, 153}, ++ #endif ++ #ifdef PKCS7_R_PKCS7_DATASIGN ++ {"PKCS7_DATASIGN", ERR_LIB_PKCS7, PKCS7_R_PKCS7_DATASIGN}, ++ #else ++ {"PKCS7_DATASIGN", 33, 145}, ++ #endif ++ #ifdef PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 33, 127}, ++ #endif ++ #ifdef PKCS7_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 33, 105}, ++ #endif ++ #ifdef PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND ++ {"SIGNER_CERTIFICATE_NOT_FOUND", ERR_LIB_PKCS7, PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND}, ++ #else ++ {"SIGNER_CERTIFICATE_NOT_FOUND", 33, 128}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_CTRL_FAILURE ++ {"SIGNING_CTRL_FAILURE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_CTRL_FAILURE}, ++ #else ++ {"SIGNING_CTRL_FAILURE", 33, 147}, ++ #endif ++ #ifdef PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", ERR_LIB_PKCS7, PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE}, ++ #else ++ {"SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE", 33, 148}, ++ #endif ++ #ifdef PKCS7_R_SMIME_TEXT_ERROR ++ {"SMIME_TEXT_ERROR", ERR_LIB_PKCS7, PKCS7_R_SMIME_TEXT_ERROR}, ++ #else ++ {"SMIME_TEXT_ERROR", 33, 129}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_CERTIFICATE ++ {"UNABLE_TO_FIND_CERTIFICATE", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_CERTIFICATE}, ++ #else ++ {"UNABLE_TO_FIND_CERTIFICATE", 33, 106}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MEM_BIO ++ {"UNABLE_TO_FIND_MEM_BIO", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MEM_BIO}, ++ #else ++ {"UNABLE_TO_FIND_MEM_BIO", 33, 107}, ++ #endif ++ #ifdef PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", ERR_LIB_PKCS7, PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST}, ++ #else ++ {"UNABLE_TO_FIND_MESSAGE_DIGEST", 33, 108}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_DIGEST_TYPE ++ {"UNKNOWN_DIGEST_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_DIGEST_TYPE}, ++ #else ++ {"UNKNOWN_DIGEST_TYPE", 33, 109}, ++ #endif ++ #ifdef PKCS7_R_UNKNOWN_OPERATION ++ {"UNKNOWN_OPERATION", ERR_LIB_PKCS7, PKCS7_R_UNKNOWN_OPERATION}, ++ #else ++ {"UNKNOWN_OPERATION", 33, 110}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CIPHER_TYPE ++ {"UNSUPPORTED_CIPHER_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CIPHER_TYPE}, ++ #else ++ {"UNSUPPORTED_CIPHER_TYPE", 33, 111}, ++ #endif ++ #ifdef PKCS7_R_UNSUPPORTED_CONTENT_TYPE ++ {"UNSUPPORTED_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_UNSUPPORTED_CONTENT_TYPE}, ++ #else ++ {"UNSUPPORTED_CONTENT_TYPE", 33, 112}, ++ #endif ++ #ifdef PKCS7_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 33, 113}, ++ #endif ++ #ifdef PKCS7_R_WRONG_PKCS7_TYPE ++ {"WRONG_PKCS7_TYPE", ERR_LIB_PKCS7, PKCS7_R_WRONG_PKCS7_TYPE}, ++ #else ++ {"WRONG_PKCS7_TYPE", 33, 114}, ++ #endif ++ #ifdef PROP_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_PROP, PROP_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 55, 100}, ++ #endif ++ #ifdef PROP_R_NOT_AN_ASCII_CHARACTER ++ {"NOT_AN_ASCII_CHARACTER", ERR_LIB_PROP, PROP_R_NOT_AN_ASCII_CHARACTER}, ++ #else ++ {"NOT_AN_ASCII_CHARACTER", 55, 101}, ++ #endif ++ #ifdef PROP_R_NOT_AN_HEXADECIMAL_DIGIT ++ {"NOT_AN_HEXADECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_HEXADECIMAL_DIGIT}, ++ #else ++ {"NOT_AN_HEXADECIMAL_DIGIT", 55, 102}, ++ #endif ++ #ifdef PROP_R_NOT_AN_IDENTIFIER ++ {"NOT_AN_IDENTIFIER", ERR_LIB_PROP, PROP_R_NOT_AN_IDENTIFIER}, ++ #else ++ {"NOT_AN_IDENTIFIER", 55, 103}, ++ #endif ++ #ifdef PROP_R_NOT_AN_OCTAL_DIGIT ++ {"NOT_AN_OCTAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_AN_OCTAL_DIGIT}, ++ #else ++ {"NOT_AN_OCTAL_DIGIT", 55, 104}, ++ #endif ++ #ifdef PROP_R_NOT_A_DECIMAL_DIGIT ++ {"NOT_A_DECIMAL_DIGIT", ERR_LIB_PROP, PROP_R_NOT_A_DECIMAL_DIGIT}, ++ #else ++ {"NOT_A_DECIMAL_DIGIT", 55, 105}, ++ #endif ++ #ifdef PROP_R_NO_MATCHING_STRING_DELIMITER ++ {"NO_MATCHING_STRING_DELIMITER", ERR_LIB_PROP, PROP_R_NO_MATCHING_STRING_DELIMITER}, ++ #else ++ {"NO_MATCHING_STRING_DELIMITER", 55, 106}, ++ #endif ++ #ifdef PROP_R_NO_VALUE ++ {"NO_VALUE", ERR_LIB_PROP, PROP_R_NO_VALUE}, ++ #else ++ {"NO_VALUE", 55, 107}, ++ #endif ++ #ifdef PROP_R_PARSE_FAILED ++ {"PARSE_FAILED", ERR_LIB_PROP, PROP_R_PARSE_FAILED}, ++ #else ++ {"PARSE_FAILED", 55, 108}, ++ #endif ++ #ifdef PROP_R_STRING_TOO_LONG ++ {"STRING_TOO_LONG", ERR_LIB_PROP, PROP_R_STRING_TOO_LONG}, ++ #else ++ {"STRING_TOO_LONG", 55, 109}, ++ #endif ++ #ifdef PROP_R_TRAILING_CHARACTERS ++ {"TRAILING_CHARACTERS", ERR_LIB_PROP, PROP_R_TRAILING_CHARACTERS}, ++ #else ++ {"TRAILING_CHARACTERS", 55, 110}, ++ #endif ++ #ifdef PROV_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_PROV, PROV_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 57, 184}, ++ #endif ++ #ifdef PROV_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_PROV, PROV_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 57, 173}, ++ #endif ++ #ifdef PROV_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_PROV, PROV_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 57, 185}, ++ #endif ++ #ifdef PROV_R_BAD_DECRYPT ++ {"BAD_DECRYPT", ERR_LIB_PROV, PROV_R_BAD_DECRYPT}, ++ #else ++ {"BAD_DECRYPT", 57, 100}, ++ #endif ++ #ifdef PROV_R_BAD_ENCODING ++ {"BAD_ENCODING", ERR_LIB_PROV, PROV_R_BAD_ENCODING}, ++ #else ++ {"BAD_ENCODING", 57, 141}, ++ #endif ++ #ifdef PROV_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_PROV, PROV_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 57, 142}, ++ #endif ++ #ifdef PROV_R_BAD_TLS_CLIENT_VERSION ++ {"BAD_TLS_CLIENT_VERSION", ERR_LIB_PROV, PROV_R_BAD_TLS_CLIENT_VERSION}, ++ #else ++ {"BAD_TLS_CLIENT_VERSION", 57, 161}, ++ #endif ++ #ifdef PROV_R_BN_ERROR ++ {"BN_ERROR", ERR_LIB_PROV, PROV_R_BN_ERROR}, ++ #else ++ {"BN_ERROR", 57, 160}, ++ #endif ++ #ifdef PROV_R_CIPHER_OPERATION_FAILED ++ {"CIPHER_OPERATION_FAILED", ERR_LIB_PROV, PROV_R_CIPHER_OPERATION_FAILED}, ++ #else ++ {"CIPHER_OPERATION_FAILED", 57, 102}, ++ #endif ++ #ifdef PROV_R_COFACTOR_REQUIRED ++ {"COFACTOR_REQUIRED", ERR_LIB_PROV, PROV_R_COFACTOR_REQUIRED}, ++ #else ++ {"COFACTOR_REQUIRED", 57, 236}, ++ #endif ++ #ifdef PROV_R_DERIVATION_FUNCTION_INIT_FAILED ++ {"DERIVATION_FUNCTION_INIT_FAILED", ERR_LIB_PROV, PROV_R_DERIVATION_FUNCTION_INIT_FAILED}, ++ #else ++ {"DERIVATION_FUNCTION_INIT_FAILED", 57, 205}, ++ #endif ++ #ifdef PROV_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 57, 174}, ++ #endif ++ #ifdef PROV_R_EMS_NOT_ENABLED ++ {"EMS_NOT_ENABLED", ERR_LIB_PROV, PROV_R_EMS_NOT_ENABLED}, ++ #else ++ {"EMS_NOT_ENABLED", 57, 233}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS}, ++ #else ++ {"ENTROPY_SOURCE_FAILED_CONTINUOUS_TESTS", 57, 244}, ++ #endif ++ #ifdef PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_ENTROPY_SOURCE_STRENGTH_TOO_WEAK}, ++ #else ++ {"ENTROPY_SOURCE_STRENGTH_TOO_WEAK", 57, 186}, ++ #endif ++ #ifdef PROV_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_PROV, PROV_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 57, 188}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 57, 189}, ++ #endif ++ #ifdef PROV_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_PROV, PROV_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 57, 190}, ++ #endif ++ #ifdef PROV_R_FAILED_DURING_DERIVATION ++ {"FAILED_DURING_DERIVATION", ERR_LIB_PROV, PROV_R_FAILED_DURING_DERIVATION}, ++ #else ++ {"FAILED_DURING_DERIVATION", 57, 164}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_PROV, PROV_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 57, 180}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_DECRYPT ++ {"FAILED_TO_DECRYPT", ERR_LIB_PROV, PROV_R_FAILED_TO_DECRYPT}, ++ #else ++ {"FAILED_TO_DECRYPT", 57, 162}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GENERATE_KEY ++ {"FAILED_TO_GENERATE_KEY", ERR_LIB_PROV, PROV_R_FAILED_TO_GENERATE_KEY}, ++ #else ++ {"FAILED_TO_GENERATE_KEY", 57, 121}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 57, 103}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SET_PARAMETER ++ {"FAILED_TO_SET_PARAMETER", ERR_LIB_PROV, PROV_R_FAILED_TO_SET_PARAMETER}, ++ #else ++ {"FAILED_TO_SET_PARAMETER", 57, 104}, ++ #endif ++ #ifdef PROV_R_FAILED_TO_SIGN ++ {"FAILED_TO_SIGN", ERR_LIB_PROV, PROV_R_FAILED_TO_SIGN}, ++ #else ++ {"FAILED_TO_SIGN", 57, 175}, ++ #endif ++ #ifdef PROV_R_FINAL_CALL_OUT_OF_ORDER ++ {"FINAL_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_FINAL_CALL_OUT_OF_ORDER}, ++ #else ++ {"FINAL_CALL_OUT_OF_ORDER", 57, 237}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_CONDITIONAL_ERROR ++ {"FIPS_MODULE_CONDITIONAL_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_CONDITIONAL_ERROR}, ++ #else ++ {"FIPS_MODULE_CONDITIONAL_ERROR", 57, 227}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_ENTERING_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_ENTERING_ERROR_STATE", 57, 224}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IMPORT_PCT_ERROR}, ++ #else ++ {"FIPS_MODULE_IMPORT_PCT_ERROR", 57, 253}, ++ #endif ++ #ifdef PROV_R_FIPS_MODULE_IN_ERROR_STATE ++ {"FIPS_MODULE_IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_FIPS_MODULE_IN_ERROR_STATE}, ++ #else ++ {"FIPS_MODULE_IN_ERROR_STATE", 57, 225}, ++ #endif ++ #ifdef PROV_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_PROV, PROV_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 57, 191}, ++ #endif ++ #ifdef PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_PROV, PROV_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 57, 165}, ++ #endif ++ #ifdef PROV_R_INDICATOR_INTEGRITY_FAILURE ++ {"INDICATOR_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_INDICATOR_INTEGRITY_FAILURE}, ++ #else ++ {"INDICATOR_INTEGRITY_FAILURE", 57, 210}, ++ #endif ++ #ifdef PROV_R_INIT_CALL_OUT_OF_ORDER ++ {"INIT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_INIT_CALL_OUT_OF_ORDER}, ++ #else ++ {"INIT_CALL_OUT_OF_ORDER", 57, 238}, ++ #endif ++ #ifdef PROV_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_PROV, PROV_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 57, 181}, ++ #endif ++ #ifdef PROV_R_INVALID_AAD ++ {"INVALID_AAD", ERR_LIB_PROV, PROV_R_INVALID_AAD}, ++ #else ++ {"INVALID_AAD", 57, 108}, ++ #endif ++ #ifdef PROV_R_INVALID_AEAD ++ {"INVALID_AEAD", ERR_LIB_PROV, PROV_R_INVALID_AEAD}, ++ #else ++ {"INVALID_AEAD", 57, 231}, ++ #endif ++ #ifdef PROV_R_INVALID_CIPHER ++ {"INVALID_CIPHER", ERR_LIB_PROV, PROV_R_INVALID_CIPHER}, ++ #else ++ {"INVALID_CIPHER", 57, 260}, ++ #endif ++ #ifdef PROV_R_INVALID_CONFIG_DATA ++ {"INVALID_CONFIG_DATA", ERR_LIB_PROV, PROV_R_INVALID_CONFIG_DATA}, ++ #else ++ {"INVALID_CONFIG_DATA", 57, 211}, ++ #endif ++ #ifdef PROV_R_INVALID_CONSTANT_LENGTH ++ {"INVALID_CONSTANT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CONSTANT_LENGTH}, ++ #else ++ {"INVALID_CONSTANT_LENGTH", 57, 157}, ++ #endif ++ #ifdef PROV_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_PROV, PROV_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 57, 176}, ++ #endif ++ #ifdef PROV_R_INVALID_CUSTOM_LENGTH ++ {"INVALID_CUSTOM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_CUSTOM_LENGTH}, ++ #else ++ {"INVALID_CUSTOM_LENGTH", 57, 111}, ++ #endif ++ #ifdef PROV_R_INVALID_DATA ++ {"INVALID_DATA", ERR_LIB_PROV, PROV_R_INVALID_DATA}, ++ #else ++ {"INVALID_DATA", 57, 115}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 57, 122}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 57, 166}, ++ #endif ++ #ifdef PROV_R_INVALID_DIGEST_SIZE ++ {"INVALID_DIGEST_SIZE", ERR_LIB_PROV, PROV_R_INVALID_DIGEST_SIZE}, ++ #else ++ {"INVALID_DIGEST_SIZE", 57, 218}, ++ #endif ++ #ifdef PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", ERR_LIB_PROV, PROV_R_INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION}, ++ #else ++ {"INVALID_EDDSA_INSTANCE_FOR_ATTEMPTED_OPERATION", 57, 243}, ++ #endif ++ #ifdef PROV_R_INVALID_FUNCTION_NAME ++ {"INVALID_FUNCTION_NAME", ERR_LIB_PROV, PROV_R_INVALID_FUNCTION_NAME}, ++ #else ++ {"INVALID_FUNCTION_NAME", 57, 258}, ++ #endif ++ #ifdef PROV_R_INVALID_INDEX_LENGTH ++ {"INVALID_INDEX_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INDEX_LENGTH}, ++ #else ++ {"INVALID_INDEX_LENGTH", 57, 259}, ++ #endif ++ #ifdef PROV_R_INVALID_INPUT_LENGTH ++ {"INVALID_INPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_INPUT_LENGTH}, ++ #else ++ {"INVALID_INPUT_LENGTH", 57, 230}, ++ #endif ++ #ifdef PROV_R_INVALID_ITERATION_COUNT ++ {"INVALID_ITERATION_COUNT", ERR_LIB_PROV, PROV_R_INVALID_ITERATION_COUNT}, ++ #else ++ {"INVALID_ITERATION_COUNT", 57, 123}, ++ #endif ++ #ifdef PROV_R_INVALID_IV_LENGTH ++ {"INVALID_IV_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_IV_LENGTH}, ++ #else ++ {"INVALID_IV_LENGTH", 57, 109}, ++ #endif ++ #ifdef PROV_R_INVALID_KDF ++ {"INVALID_KDF", ERR_LIB_PROV, PROV_R_INVALID_KDF}, ++ #else ++ {"INVALID_KDF", 57, 232}, ++ #endif ++ #ifdef PROV_R_INVALID_KDR ++ {"INVALID_KDR", ERR_LIB_PROV, PROV_R_INVALID_KDR}, ++ #else ++ {"INVALID_KDR", 57, 256}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY ++ {"INVALID_KEY", ERR_LIB_PROV, PROV_R_INVALID_KEY}, ++ #else ++ {"INVALID_KEY", 57, 158}, ++ #endif ++ #ifdef PROV_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 57, 105}, ++ #endif ++ #ifdef PROV_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_PROV, PROV_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 57, 257}, ++ #endif ++ #ifdef PROV_R_INVALID_MAC ++ {"INVALID_MAC", ERR_LIB_PROV, PROV_R_INVALID_MAC}, ++ #else ++ {"INVALID_MAC", 57, 151}, ++ #endif ++ #ifdef PROV_R_INVALID_MEMORY_SIZE ++ {"INVALID_MEMORY_SIZE", ERR_LIB_PROV, PROV_R_INVALID_MEMORY_SIZE}, ++ #else ++ {"INVALID_MEMORY_SIZE", 57, 235}, ++ #endif ++ #ifdef PROV_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_PROV, PROV_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 57, 167}, ++ #endif ++ #ifdef PROV_R_INVALID_MODE ++ {"INVALID_MODE", ERR_LIB_PROV, PROV_R_INVALID_MODE}, ++ #else ++ {"INVALID_MODE", 57, 125}, ++ #endif ++ #ifdef PROV_R_INVALID_OUTPUT_LENGTH ++ {"INVALID_OUTPUT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_OUTPUT_LENGTH}, ++ #else ++ {"INVALID_OUTPUT_LENGTH", 57, 217}, ++ #endif ++ #ifdef PROV_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_PROV, PROV_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 57, 168}, ++ #endif ++ #ifdef PROV_R_INVALID_PREHASHED_DIGEST_LENGTH ++ {"INVALID_PREHASHED_DIGEST_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_PREHASHED_DIGEST_LENGTH}, ++ #else ++ {"INVALID_PREHASHED_DIGEST_LENGTH", 57, 241}, ++ #endif ++ #ifdef PROV_R_INVALID_PUBINFO ++ {"INVALID_PUBINFO", ERR_LIB_PROV, PROV_R_INVALID_PUBINFO}, ++ #else ++ {"INVALID_PUBINFO", 57, 198}, ++ #endif ++ #ifdef PROV_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 57, 112}, ++ #endif ++ #ifdef PROV_R_INVALID_SEED_LENGTH ++ {"INVALID_SEED_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_SEED_LENGTH}, ++ #else ++ {"INVALID_SEED_LENGTH", 57, 154}, ++ #endif ++ #ifdef PROV_R_INVALID_SIGNATURE_SIZE ++ {"INVALID_SIGNATURE_SIZE", ERR_LIB_PROV, PROV_R_INVALID_SIGNATURE_SIZE}, ++ #else ++ {"INVALID_SIGNATURE_SIZE", 57, 179}, ++ #endif ++ #ifdef PROV_R_INVALID_STATE ++ {"INVALID_STATE", ERR_LIB_PROV, PROV_R_INVALID_STATE}, ++ #else ++ {"INVALID_STATE", 57, 212}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG ++ {"INVALID_TAG", ERR_LIB_PROV, PROV_R_INVALID_TAG}, ++ #else ++ {"INVALID_TAG", 57, 110}, ++ #endif ++ #ifdef PROV_R_INVALID_TAG_LENGTH ++ {"INVALID_TAG_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_TAG_LENGTH}, ++ #else ++ {"INVALID_TAG_LENGTH", 57, 118}, ++ #endif ++ #ifdef PROV_R_INVALID_THREAD_POOL_SIZE ++ {"INVALID_THREAD_POOL_SIZE", ERR_LIB_PROV, PROV_R_INVALID_THREAD_POOL_SIZE}, ++ #else ++ {"INVALID_THREAD_POOL_SIZE", 57, 234}, ++ #endif ++ #ifdef PROV_R_INVALID_UKM_LENGTH ++ {"INVALID_UKM_LENGTH", ERR_LIB_PROV, PROV_R_INVALID_UKM_LENGTH}, ++ #else ++ {"INVALID_UKM_LENGTH", 57, 200}, ++ #endif ++ #ifdef PROV_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_PROV, PROV_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 57, 170}, ++ #endif ++ #ifdef PROV_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_PROV, PROV_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 57, 192}, ++ #endif ++ #ifdef PROV_R_KEY_SETUP_FAILED ++ {"KEY_SETUP_FAILED", ERR_LIB_PROV, PROV_R_KEY_SETUP_FAILED}, ++ #else ++ {"KEY_SETUP_FAILED", 57, 101}, ++ #endif ++ #ifdef PROV_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_PROV, PROV_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 57, 171}, ++ #endif ++ #ifdef PROV_R_LENGTH_TOO_LARGE ++ {"LENGTH_TOO_LARGE", ERR_LIB_PROV, PROV_R_LENGTH_TOO_LARGE}, ++ #else ++ {"LENGTH_TOO_LARGE", 57, 202}, ++ #endif ++ #ifdef PROV_R_MISMATCHING_DOMAIN_PARAMETERS ++ {"MISMATCHING_DOMAIN_PARAMETERS", ERR_LIB_PROV, PROV_R_MISMATCHING_DOMAIN_PARAMETERS}, ++ #else ++ {"MISMATCHING_DOMAIN_PARAMETERS", 57, 203}, ++ #endif ++ #ifdef PROV_R_MISSING_CEK_ALG ++ {"MISSING_CEK_ALG", ERR_LIB_PROV, PROV_R_MISSING_CEK_ALG}, ++ #else ++ {"MISSING_CEK_ALG", 57, 144}, ++ #endif ++ #ifdef PROV_R_MISSING_CIPHER ++ {"MISSING_CIPHER", ERR_LIB_PROV, PROV_R_MISSING_CIPHER}, ++ #else ++ {"MISSING_CIPHER", 57, 155}, ++ #endif ++ #ifdef PROV_R_MISSING_CONFIG_DATA ++ {"MISSING_CONFIG_DATA", ERR_LIB_PROV, PROV_R_MISSING_CONFIG_DATA}, ++ #else ++ {"MISSING_CONFIG_DATA", 57, 213}, ++ #endif ++ #ifdef PROV_R_MISSING_CONSTANT ++ {"MISSING_CONSTANT", ERR_LIB_PROV, PROV_R_MISSING_CONSTANT}, ++ #else ++ {"MISSING_CONSTANT", 57, 156}, ++ #endif ++ #ifdef PROV_R_MISSING_EID ++ {"MISSING_EID", ERR_LIB_PROV, PROV_R_MISSING_EID}, ++ #else ++ {"MISSING_EID", 57, 255}, ++ #endif ++ #ifdef PROV_R_MISSING_KEY ++ {"MISSING_KEY", ERR_LIB_PROV, PROV_R_MISSING_KEY}, ++ #else ++ {"MISSING_KEY", 57, 128}, ++ #endif ++ #ifdef PROV_R_MISSING_MAC ++ {"MISSING_MAC", ERR_LIB_PROV, PROV_R_MISSING_MAC}, ++ #else ++ {"MISSING_MAC", 57, 150}, ++ #endif ++ #ifdef PROV_R_MISSING_MESSAGE_DIGEST ++ {"MISSING_MESSAGE_DIGEST", ERR_LIB_PROV, PROV_R_MISSING_MESSAGE_DIGEST}, ++ #else ++ {"MISSING_MESSAGE_DIGEST", 57, 129}, ++ #endif ++ #ifdef PROV_R_MISSING_OID ++ {"MISSING_OID", ERR_LIB_PROV, PROV_R_MISSING_OID}, ++ #else ++ {"MISSING_OID", 57, 209}, ++ #endif ++ #ifdef PROV_R_MISSING_PASS ++ {"MISSING_PASS", ERR_LIB_PROV, PROV_R_MISSING_PASS}, ++ #else ++ {"MISSING_PASS", 57, 130}, ++ #endif ++ #ifdef PROV_R_MISSING_SALT ++ {"MISSING_SALT", ERR_LIB_PROV, PROV_R_MISSING_SALT}, ++ #else ++ {"MISSING_SALT", 57, 131}, ++ #endif ++ #ifdef PROV_R_MISSING_SECRET ++ {"MISSING_SECRET", ERR_LIB_PROV, PROV_R_MISSING_SECRET}, ++ #else ++ {"MISSING_SECRET", 57, 132}, ++ #endif ++ #ifdef PROV_R_MISSING_SEED ++ {"MISSING_SEED", ERR_LIB_PROV, PROV_R_MISSING_SEED}, ++ #else ++ {"MISSING_SEED", 57, 140}, ++ #endif ++ #ifdef PROV_R_MISSING_SESSION_ID ++ {"MISSING_SESSION_ID", ERR_LIB_PROV, PROV_R_MISSING_SESSION_ID}, ++ #else ++ {"MISSING_SESSION_ID", 57, 133}, ++ #endif ++ #ifdef PROV_R_MISSING_TYPE ++ {"MISSING_TYPE", ERR_LIB_PROV, PROV_R_MISSING_TYPE}, ++ #else ++ {"MISSING_TYPE", 57, 134}, ++ #endif ++ #ifdef PROV_R_MISSING_XCGHASH ++ {"MISSING_XCGHASH", ERR_LIB_PROV, PROV_R_MISSING_XCGHASH}, ++ #else ++ {"MISSING_XCGHASH", 57, 135}, ++ #endif ++ #ifdef PROV_R_ML_DSA_NO_FORMAT ++ {"ML_DSA_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_DSA_NO_FORMAT}, ++ #else ++ {"ML_DSA_NO_FORMAT", 57, 245}, ++ #endif ++ #ifdef PROV_R_ML_KEM_NO_FORMAT ++ {"ML_KEM_NO_FORMAT", ERR_LIB_PROV, PROV_R_ML_KEM_NO_FORMAT}, ++ #else ++ {"ML_KEM_NO_FORMAT", 57, 246}, ++ #endif ++ #ifdef PROV_R_MODULE_INTEGRITY_FAILURE ++ {"MODULE_INTEGRITY_FAILURE", ERR_LIB_PROV, PROV_R_MODULE_INTEGRITY_FAILURE}, ++ #else ++ {"MODULE_INTEGRITY_FAILURE", 57, 214}, ++ #endif ++ #ifdef PROV_R_NOT_A_PRIVATE_KEY ++ {"NOT_A_PRIVATE_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PRIVATE_KEY}, ++ #else ++ {"NOT_A_PRIVATE_KEY", 57, 221}, ++ #endif ++ #ifdef PROV_R_NOT_A_PUBLIC_KEY ++ {"NOT_A_PUBLIC_KEY", ERR_LIB_PROV, PROV_R_NOT_A_PUBLIC_KEY}, ++ #else ++ {"NOT_A_PUBLIC_KEY", 57, 220}, ++ #endif ++ #ifdef PROV_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_PROV, PROV_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 57, 193}, ++ #endif ++ #ifdef PROV_R_NOT_PARAMETERS ++ {"NOT_PARAMETERS", ERR_LIB_PROV, PROV_R_NOT_PARAMETERS}, ++ #else ++ {"NOT_PARAMETERS", 57, 226}, ++ #endif ++ #ifdef PROV_R_NOT_SUPPORTED ++ {"NOT_SUPPORTED", ERR_LIB_PROV, PROV_R_NOT_SUPPORTED}, ++ #else ++ {"NOT_SUPPORTED", 57, 136}, ++ #endif ++ #ifdef PROV_R_NOT_XOF_OR_INVALID_LENGTH ++ {"NOT_XOF_OR_INVALID_LENGTH", ERR_LIB_PROV, PROV_R_NOT_XOF_OR_INVALID_LENGTH}, ++ #else ++ {"NOT_XOF_OR_INVALID_LENGTH", 57, 113}, ++ #endif ++ #ifdef PROV_R_NO_INSTANCE_ALLOWED ++ {"NO_INSTANCE_ALLOWED", ERR_LIB_PROV, PROV_R_NO_INSTANCE_ALLOWED}, ++ #else ++ {"NO_INSTANCE_ALLOWED", 57, 242}, ++ #endif ++ #ifdef PROV_R_NO_KEY_SET ++ {"NO_KEY_SET", ERR_LIB_PROV, PROV_R_NO_KEY_SET}, ++ #else ++ {"NO_KEY_SET", 57, 114}, ++ #endif ++ #ifdef PROV_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_PROV, PROV_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 57, 177}, ++ #endif ++ #ifdef PROV_R_NULL_LENGTH_POINTER ++ {"NULL_LENGTH_POINTER", ERR_LIB_PROV, PROV_R_NULL_LENGTH_POINTER}, ++ #else ++ {"NULL_LENGTH_POINTER", 57, 247}, ++ #endif ++ #ifdef PROV_R_NULL_OUTPUT_BUFFER ++ {"NULL_OUTPUT_BUFFER", ERR_LIB_PROV, PROV_R_NULL_OUTPUT_BUFFER}, ++ #else ++ {"NULL_OUTPUT_BUFFER", 57, 248}, ++ #endif ++ #ifdef PROV_R_ONESHOT_CALL_OUT_OF_ORDER ++ {"ONESHOT_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_ONESHOT_CALL_OUT_OF_ORDER}, ++ #else ++ {"ONESHOT_CALL_OUT_OF_ORDER", 57, 239}, ++ #endif ++ #ifdef PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_PROV, PROV_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 57, 178}, ++ #endif ++ #ifdef PROV_R_OUTPUT_BUFFER_TOO_SMALL ++ {"OUTPUT_BUFFER_TOO_SMALL", ERR_LIB_PROV, PROV_R_OUTPUT_BUFFER_TOO_SMALL}, ++ #else ++ {"OUTPUT_BUFFER_TOO_SMALL", 57, 106}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_GENERATE_RANDOM_NUMBERS}, ++ #else ++ {"PARENT_CANNOT_GENERATE_RANDOM_NUMBERS", 57, 228}, ++ #endif ++ #ifdef PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", ERR_LIB_PROV, PROV_R_PARENT_CANNOT_SUPPLY_ENTROPY_SEED}, ++ #else ++ {"PARENT_CANNOT_SUPPLY_ENTROPY_SEED", 57, 187}, ++ #endif ++ #ifdef PROV_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_PROV, PROV_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 57, 182}, ++ #endif ++ #ifdef PROV_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 57, 194}, ++ #endif ++ #ifdef PROV_R_PASSWORD_STRENGTH_TOO_WEAK ++ {"PASSWORD_STRENGTH_TOO_WEAK", ERR_LIB_PROV, PROV_R_PASSWORD_STRENGTH_TOO_WEAK}, ++ #else ++ {"PASSWORD_STRENGTH_TOO_WEAK", 57, 254}, ++ #endif ++ #ifdef PROV_R_PATH_MUST_BE_ABSOLUTE ++ {"PATH_MUST_BE_ABSOLUTE", ERR_LIB_PROV, PROV_R_PATH_MUST_BE_ABSOLUTE}, ++ #else ++ {"PATH_MUST_BE_ABSOLUTE", 57, 219}, ++ #endif ++ #ifdef PROV_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_PROV, PROV_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 57, 195}, ++ #endif ++ #ifdef PROV_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_PROV, PROV_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 57, 172}, ++ #endif ++ #ifdef PROV_R_REPEATED_PARAMETER ++ {"REPEATED_PARAMETER", ERR_LIB_PROV, PROV_R_REPEATED_PARAMETER}, ++ #else ++ {"REPEATED_PARAMETER", 57, 252}, ++ #endif ++ #ifdef PROV_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_PROV, PROV_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 57, 196}, ++ #endif ++ #ifdef PROV_R_REQUIRE_CTR_MODE_CIPHER ++ {"REQUIRE_CTR_MODE_CIPHER", ERR_LIB_PROV, PROV_R_REQUIRE_CTR_MODE_CIPHER}, ++ #else ++ {"REQUIRE_CTR_MODE_CIPHER", 57, 206}, ++ #endif ++ #ifdef PROV_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_PROV, PROV_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 57, 197}, ++ #endif ++ #ifdef PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", ERR_LIB_PROV, PROV_R_SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES}, ++ #else ++ {"SEARCH_ONLY_SUPPORTED_FOR_DIRECTORIES", 57, 222}, ++ #endif ++ #ifdef PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", ERR_LIB_PROV, PROV_R_SEED_SOURCES_MUST_NOT_HAVE_A_PARENT}, ++ #else ++ {"SEED_SOURCES_MUST_NOT_HAVE_A_PARENT", 57, 229}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_KAT_FAILURE ++ {"SELF_TEST_KAT_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_KAT_FAILURE}, ++ #else ++ {"SELF_TEST_KAT_FAILURE", 57, 215}, ++ #endif ++ #ifdef PROV_R_SELF_TEST_POST_FAILURE ++ {"SELF_TEST_POST_FAILURE", ERR_LIB_PROV, PROV_R_SELF_TEST_POST_FAILURE}, ++ #else ++ {"SELF_TEST_POST_FAILURE", 57, 216}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_NEEDED ++ {"TAG_NOT_NEEDED", ERR_LIB_PROV, PROV_R_TAG_NOT_NEEDED}, ++ #else ++ {"TAG_NOT_NEEDED", 57, 120}, ++ #endif ++ #ifdef PROV_R_TAG_NOT_SET ++ {"TAG_NOT_SET", ERR_LIB_PROV, PROV_R_TAG_NOT_SET}, ++ #else ++ {"TAG_NOT_SET", 57, 119}, ++ #endif ++ #ifdef PROV_R_TOO_MANY_RECORDS ++ {"TOO_MANY_RECORDS", ERR_LIB_PROV, PROV_R_TOO_MANY_RECORDS}, ++ #else ++ {"TOO_MANY_RECORDS", 57, 126}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_FIND_CIPHERS ++ {"UNABLE_TO_FIND_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_FIND_CIPHERS}, ++ #else ++ {"UNABLE_TO_FIND_CIPHERS", 57, 207}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 57, 199}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_GET_PASSPHRASE ++ {"UNABLE_TO_GET_PASSPHRASE", ERR_LIB_PROV, PROV_R_UNABLE_TO_GET_PASSPHRASE}, ++ #else ++ {"UNABLE_TO_GET_PASSPHRASE", 57, 159}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_INITIALISE_CIPHERS ++ {"UNABLE_TO_INITIALISE_CIPHERS", ERR_LIB_PROV, PROV_R_UNABLE_TO_INITIALISE_CIPHERS}, ++ #else ++ {"UNABLE_TO_INITIALISE_CIPHERS", 57, 208}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOAD_SHA256 ++ {"UNABLE_TO_LOAD_SHA256", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOAD_SHA256}, ++ #else ++ {"UNABLE_TO_LOAD_SHA256", 57, 147}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_PROV, PROV_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 57, 201}, ++ #endif ++ #ifdef PROV_R_UNABLE_TO_RESEED ++ {"UNABLE_TO_RESEED", ERR_LIB_PROV, PROV_R_UNABLE_TO_RESEED}, ++ #else ++ {"UNABLE_TO_RESEED", 57, 204}, ++ #endif ++ #ifdef PROV_R_UNEXPECTED_KEY_PARAMETERS ++ {"UNEXPECTED_KEY_PARAMETERS", ERR_LIB_PROV, PROV_R_UNEXPECTED_KEY_PARAMETERS}, ++ #else ++ {"UNEXPECTED_KEY_PARAMETERS", 57, 249}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_CEK_ALG ++ {"UNSUPPORTED_CEK_ALG", ERR_LIB_PROV, PROV_R_UNSUPPORTED_CEK_ALG}, ++ #else ++ {"UNSUPPORTED_CEK_ALG", 57, 145}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_KEY_SIZE ++ {"UNSUPPORTED_KEY_SIZE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_KEY_SIZE}, ++ #else ++ {"UNSUPPORTED_KEY_SIZE", 57, 153}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_MAC_TYPE ++ {"UNSUPPORTED_MAC_TYPE", ERR_LIB_PROV, PROV_R_UNSUPPORTED_MAC_TYPE}, ++ #else ++ {"UNSUPPORTED_MAC_TYPE", 57, 137}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", ERR_LIB_PROV, PROV_R_UNSUPPORTED_NUMBER_OF_ROUNDS}, ++ #else ++ {"UNSUPPORTED_NUMBER_OF_ROUNDS", 57, 152}, ++ #endif ++ #ifdef PROV_R_UNSUPPORTED_SELECTION ++ {"UNSUPPORTED_SELECTION", ERR_LIB_PROV, PROV_R_UNSUPPORTED_SELECTION}, ++ #else ++ {"UNSUPPORTED_SELECTION", 57, 250}, ++ #endif ++ #ifdef PROV_R_UPDATE_CALL_OUT_OF_ORDER ++ {"UPDATE_CALL_OUT_OF_ORDER", ERR_LIB_PROV, PROV_R_UPDATE_CALL_OUT_OF_ORDER}, ++ #else ++ {"UPDATE_CALL_OUT_OF_ORDER", 57, 240}, ++ #endif ++ #ifdef PROV_R_URI_AUTHORITY_UNSUPPORTED ++ {"URI_AUTHORITY_UNSUPPORTED", ERR_LIB_PROV, PROV_R_URI_AUTHORITY_UNSUPPORTED}, ++ #else ++ {"URI_AUTHORITY_UNSUPPORTED", 57, 223}, ++ #endif ++ #ifdef PROV_R_VALUE_ERROR ++ {"VALUE_ERROR", ERR_LIB_PROV, PROV_R_VALUE_ERROR}, ++ #else ++ {"VALUE_ERROR", 57, 138}, ++ #endif ++ #ifdef PROV_R_WRONG_CIPHERTEXT_SIZE ++ {"WRONG_CIPHERTEXT_SIZE", ERR_LIB_PROV, PROV_R_WRONG_CIPHERTEXT_SIZE}, ++ #else ++ {"WRONG_CIPHERTEXT_SIZE", 57, 251}, ++ #endif ++ #ifdef PROV_R_WRONG_FINAL_BLOCK_LENGTH ++ {"WRONG_FINAL_BLOCK_LENGTH", ERR_LIB_PROV, PROV_R_WRONG_FINAL_BLOCK_LENGTH}, ++ #else ++ {"WRONG_FINAL_BLOCK_LENGTH", 57, 107}, ++ #endif ++ #ifdef PROV_R_WRONG_OUTPUT_BUFFER_SIZE ++ {"WRONG_OUTPUT_BUFFER_SIZE", ERR_LIB_PROV, PROV_R_WRONG_OUTPUT_BUFFER_SIZE}, ++ #else ++ {"WRONG_OUTPUT_BUFFER_SIZE", 57, 139}, ++ #endif ++ #ifdef PROV_R_XOF_DIGESTS_NOT_ALLOWED ++ {"XOF_DIGESTS_NOT_ALLOWED", ERR_LIB_PROV, PROV_R_XOF_DIGESTS_NOT_ALLOWED}, ++ #else ++ {"XOF_DIGESTS_NOT_ALLOWED", 57, 183}, ++ #endif ++ #ifdef PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", ERR_LIB_PROV, PROV_R_XTS_DATA_UNIT_IS_TOO_LARGE}, ++ #else ++ {"XTS_DATA_UNIT_IS_TOO_LARGE", 57, 148}, ++ #endif ++ #ifdef PROV_R_XTS_DUPLICATED_KEYS ++ {"XTS_DUPLICATED_KEYS", ERR_LIB_PROV, PROV_R_XTS_DUPLICATED_KEYS}, ++ #else ++ {"XTS_DUPLICATED_KEYS", 57, 149}, ++ #endif ++ #ifdef RAND_R_ADDITIONAL_INPUT_TOO_LONG ++ {"ADDITIONAL_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ADDITIONAL_INPUT_TOO_LONG}, ++ #else ++ {"ADDITIONAL_INPUT_TOO_LONG", 36, 102}, ++ #endif ++ #ifdef RAND_R_ALREADY_INSTANTIATED ++ {"ALREADY_INSTANTIATED", ERR_LIB_RAND, RAND_R_ALREADY_INSTANTIATED}, ++ #else ++ {"ALREADY_INSTANTIATED", 36, 103}, ++ #endif ++ #ifdef RAND_R_ARGUMENT_OUT_OF_RANGE ++ {"ARGUMENT_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ARGUMENT_OUT_OF_RANGE}, ++ #else ++ {"ARGUMENT_OUT_OF_RANGE", 36, 105}, ++ #endif ++ #ifdef RAND_R_CANNOT_OPEN_FILE ++ {"CANNOT_OPEN_FILE", ERR_LIB_RAND, RAND_R_CANNOT_OPEN_FILE}, ++ #else ++ {"CANNOT_OPEN_FILE", 36, 121}, ++ #endif ++ #ifdef RAND_R_DRBG_ALREADY_INITIALIZED ++ {"DRBG_ALREADY_INITIALIZED", ERR_LIB_RAND, RAND_R_DRBG_ALREADY_INITIALIZED}, ++ #else ++ {"DRBG_ALREADY_INITIALIZED", 36, 129}, ++ #endif ++ #ifdef RAND_R_DRBG_NOT_INITIALISED ++ {"DRBG_NOT_INITIALISED", ERR_LIB_RAND, RAND_R_DRBG_NOT_INITIALISED}, ++ #else ++ {"DRBG_NOT_INITIALISED", 36, 104}, ++ #endif ++ #ifdef RAND_R_ENTROPY_INPUT_TOO_LONG ++ {"ENTROPY_INPUT_TOO_LONG", ERR_LIB_RAND, RAND_R_ENTROPY_INPUT_TOO_LONG}, ++ #else ++ {"ENTROPY_INPUT_TOO_LONG", 36, 106}, ++ #endif ++ #ifdef RAND_R_ENTROPY_OUT_OF_RANGE ++ {"ENTROPY_OUT_OF_RANGE", ERR_LIB_RAND, RAND_R_ENTROPY_OUT_OF_RANGE}, ++ #else ++ {"ENTROPY_OUT_OF_RANGE", 36, 124}, ++ #endif ++ #ifdef RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", ERR_LIB_RAND, RAND_R_ERROR_ENTROPY_POOL_WAS_IGNORED}, ++ #else ++ {"ERROR_ENTROPY_POOL_WAS_IGNORED", 36, 127}, ++ #endif ++ #ifdef RAND_R_ERROR_INITIALISING_DRBG ++ {"ERROR_INITIALISING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INITIALISING_DRBG}, ++ #else ++ {"ERROR_INITIALISING_DRBG", 36, 107}, ++ #endif ++ #ifdef RAND_R_ERROR_INSTANTIATING_DRBG ++ {"ERROR_INSTANTIATING_DRBG", ERR_LIB_RAND, RAND_R_ERROR_INSTANTIATING_DRBG}, ++ #else ++ {"ERROR_INSTANTIATING_DRBG", 36, 108}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ADDITIONAL_INPUT}, ++ #else ++ {"ERROR_RETRIEVING_ADDITIONAL_INPUT", 36, 109}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_ENTROPY ++ {"ERROR_RETRIEVING_ENTROPY", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_ENTROPY}, ++ #else ++ {"ERROR_RETRIEVING_ENTROPY", 36, 110}, ++ #endif ++ #ifdef RAND_R_ERROR_RETRIEVING_NONCE ++ {"ERROR_RETRIEVING_NONCE", ERR_LIB_RAND, RAND_R_ERROR_RETRIEVING_NONCE}, ++ #else ++ {"ERROR_RETRIEVING_NONCE", 36, 111}, ++ #endif ++ #ifdef RAND_R_FAILED_TO_CREATE_LOCK ++ {"FAILED_TO_CREATE_LOCK", ERR_LIB_RAND, RAND_R_FAILED_TO_CREATE_LOCK}, ++ #else ++ {"FAILED_TO_CREATE_LOCK", 36, 126}, ++ #endif ++ #ifdef RAND_R_FUNC_NOT_IMPLEMENTED ++ {"FUNC_NOT_IMPLEMENTED", ERR_LIB_RAND, RAND_R_FUNC_NOT_IMPLEMENTED}, ++ #else ++ {"FUNC_NOT_IMPLEMENTED", 36, 101}, ++ #endif ++ #ifdef RAND_R_FWRITE_ERROR ++ {"FWRITE_ERROR", ERR_LIB_RAND, RAND_R_FWRITE_ERROR}, ++ #else ++ {"FWRITE_ERROR", 36, 123}, ++ #endif ++ #ifdef RAND_R_GENERATE_ERROR ++ {"GENERATE_ERROR", ERR_LIB_RAND, RAND_R_GENERATE_ERROR}, ++ #else ++ {"GENERATE_ERROR", 36, 112}, ++ #endif ++ #ifdef RAND_R_INSUFFICIENT_DRBG_STRENGTH ++ {"INSUFFICIENT_DRBG_STRENGTH", ERR_LIB_RAND, RAND_R_INSUFFICIENT_DRBG_STRENGTH}, ++ #else ++ {"INSUFFICIENT_DRBG_STRENGTH", 36, 139}, ++ #endif ++ #ifdef RAND_R_INTERNAL_ERROR ++ {"INTERNAL_ERROR", ERR_LIB_RAND, RAND_R_INTERNAL_ERROR}, ++ #else ++ {"INTERNAL_ERROR", 36, 113}, ++ #endif ++ #ifdef RAND_R_INVALID_PROPERTY_QUERY ++ {"INVALID_PROPERTY_QUERY", ERR_LIB_RAND, RAND_R_INVALID_PROPERTY_QUERY}, ++ #else ++ {"INVALID_PROPERTY_QUERY", 36, 137}, ++ #endif ++ #ifdef RAND_R_IN_ERROR_STATE ++ {"IN_ERROR_STATE", ERR_LIB_RAND, RAND_R_IN_ERROR_STATE}, ++ #else ++ {"IN_ERROR_STATE", 36, 114}, ++ #endif ++ #ifdef RAND_R_NOT_A_REGULAR_FILE ++ {"NOT_A_REGULAR_FILE", ERR_LIB_RAND, RAND_R_NOT_A_REGULAR_FILE}, ++ #else ++ {"NOT_A_REGULAR_FILE", 36, 122}, ++ #endif ++ #ifdef RAND_R_NOT_INSTANTIATED ++ {"NOT_INSTANTIATED", ERR_LIB_RAND, RAND_R_NOT_INSTANTIATED}, ++ #else ++ {"NOT_INSTANTIATED", 36, 115}, ++ #endif ++ #ifdef RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", ERR_LIB_RAND, RAND_R_NO_DRBG_IMPLEMENTATION_SELECTED}, ++ #else ++ {"NO_DRBG_IMPLEMENTATION_SELECTED", 36, 128}, ++ #endif ++ #ifdef RAND_R_PARENT_LOCKING_NOT_ENABLED ++ {"PARENT_LOCKING_NOT_ENABLED", ERR_LIB_RAND, RAND_R_PARENT_LOCKING_NOT_ENABLED}, ++ #else ++ {"PARENT_LOCKING_NOT_ENABLED", 36, 130}, ++ #endif ++ #ifdef RAND_R_PARENT_STRENGTH_TOO_WEAK ++ {"PARENT_STRENGTH_TOO_WEAK", ERR_LIB_RAND, RAND_R_PARENT_STRENGTH_TOO_WEAK}, ++ #else ++ {"PARENT_STRENGTH_TOO_WEAK", 36, 131}, ++ #endif ++ #ifdef RAND_R_PERSONALISATION_STRING_TOO_LONG ++ {"PERSONALISATION_STRING_TOO_LONG", ERR_LIB_RAND, RAND_R_PERSONALISATION_STRING_TOO_LONG}, ++ #else ++ {"PERSONALISATION_STRING_TOO_LONG", 36, 116}, ++ #endif ++ #ifdef RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", ERR_LIB_RAND, RAND_R_PREDICTION_RESISTANCE_NOT_SUPPORTED}, ++ #else ++ {"PREDICTION_RESISTANCE_NOT_SUPPORTED", 36, 133}, ++ #endif ++ #ifdef RAND_R_PRNG_NOT_SEEDED ++ {"PRNG_NOT_SEEDED", ERR_LIB_RAND, RAND_R_PRNG_NOT_SEEDED}, ++ #else ++ {"PRNG_NOT_SEEDED", 36, 100}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_IS_EMPTY ++ {"RANDOM_POOL_IS_EMPTY", ERR_LIB_RAND, RAND_R_RANDOM_POOL_IS_EMPTY}, ++ #else ++ {"RANDOM_POOL_IS_EMPTY", 36, 142}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_OVERFLOW ++ {"RANDOM_POOL_OVERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_OVERFLOW}, ++ #else ++ {"RANDOM_POOL_OVERFLOW", 36, 125}, ++ #endif ++ #ifdef RAND_R_RANDOM_POOL_UNDERFLOW ++ {"RANDOM_POOL_UNDERFLOW", ERR_LIB_RAND, RAND_R_RANDOM_POOL_UNDERFLOW}, ++ #else ++ {"RANDOM_POOL_UNDERFLOW", 36, 134}, ++ #endif ++ #ifdef RAND_R_REQUEST_TOO_LARGE_FOR_DRBG ++ {"REQUEST_TOO_LARGE_FOR_DRBG", ERR_LIB_RAND, RAND_R_REQUEST_TOO_LARGE_FOR_DRBG}, ++ #else ++ {"REQUEST_TOO_LARGE_FOR_DRBG", 36, 117}, ++ #endif ++ #ifdef RAND_R_RESEED_ERROR ++ {"RESEED_ERROR", ERR_LIB_RAND, RAND_R_RESEED_ERROR}, ++ #else ++ {"RESEED_ERROR", 36, 118}, ++ #endif ++ #ifdef RAND_R_SELFTEST_FAILURE ++ {"SELFTEST_FAILURE", ERR_LIB_RAND, RAND_R_SELFTEST_FAILURE}, ++ #else ++ {"SELFTEST_FAILURE", 36, 119}, ++ #endif ++ #ifdef RAND_R_TOO_LITTLE_NONCE_REQUESTED ++ {"TOO_LITTLE_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_LITTLE_NONCE_REQUESTED}, ++ #else ++ {"TOO_LITTLE_NONCE_REQUESTED", 36, 135}, ++ #endif ++ #ifdef RAND_R_TOO_MUCH_NONCE_REQUESTED ++ {"TOO_MUCH_NONCE_REQUESTED", ERR_LIB_RAND, RAND_R_TOO_MUCH_NONCE_REQUESTED}, ++ #else ++ {"TOO_MUCH_NONCE_REQUESTED", 36, 136}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_CREATE_DRBG ++ {"UNABLE_TO_CREATE_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_CREATE_DRBG}, ++ #else ++ {"UNABLE_TO_CREATE_DRBG", 36, 143}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_FETCH_DRBG ++ {"UNABLE_TO_FETCH_DRBG", ERR_LIB_RAND, RAND_R_UNABLE_TO_FETCH_DRBG}, ++ #else ++ {"UNABLE_TO_FETCH_DRBG", 36, 144}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER}, ++ #else ++ {"UNABLE_TO_GET_PARENT_RESEED_PROP_COUNTER", 36, 141}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_GET_PARENT_STRENGTH ++ {"UNABLE_TO_GET_PARENT_STRENGTH", ERR_LIB_RAND, RAND_R_UNABLE_TO_GET_PARENT_STRENGTH}, ++ #else ++ {"UNABLE_TO_GET_PARENT_STRENGTH", 36, 138}, ++ #endif ++ #ifdef RAND_R_UNABLE_TO_LOCK_PARENT ++ {"UNABLE_TO_LOCK_PARENT", ERR_LIB_RAND, RAND_R_UNABLE_TO_LOCK_PARENT}, ++ #else ++ {"UNABLE_TO_LOCK_PARENT", 36, 140}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_FLAGS ++ {"UNSUPPORTED_DRBG_FLAGS", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_FLAGS}, ++ #else ++ {"UNSUPPORTED_DRBG_FLAGS", 36, 132}, ++ #endif ++ #ifdef RAND_R_UNSUPPORTED_DRBG_TYPE ++ {"UNSUPPORTED_DRBG_TYPE", ERR_LIB_RAND, RAND_R_UNSUPPORTED_DRBG_TYPE}, ++ #else ++ {"UNSUPPORTED_DRBG_TYPE", 36, 120}, ++ #endif ++ #ifdef RSA_R_ALGORITHM_MISMATCH ++ {"ALGORITHM_MISMATCH", ERR_LIB_RSA, RSA_R_ALGORITHM_MISMATCH}, ++ #else ++ {"ALGORITHM_MISMATCH", 4, 100}, ++ #endif ++ #ifdef RSA_R_BAD_E_VALUE ++ {"BAD_E_VALUE", ERR_LIB_RSA, RSA_R_BAD_E_VALUE}, ++ #else ++ {"BAD_E_VALUE", 4, 101}, ++ #endif ++ #ifdef RSA_R_BAD_FIXED_HEADER_DECRYPT ++ {"BAD_FIXED_HEADER_DECRYPT", ERR_LIB_RSA, RSA_R_BAD_FIXED_HEADER_DECRYPT}, ++ #else ++ {"BAD_FIXED_HEADER_DECRYPT", 4, 102}, ++ #endif ++ #ifdef RSA_R_BAD_PAD_BYTE_COUNT ++ {"BAD_PAD_BYTE_COUNT", ERR_LIB_RSA, RSA_R_BAD_PAD_BYTE_COUNT}, ++ #else ++ {"BAD_PAD_BYTE_COUNT", 4, 103}, ++ #endif ++ #ifdef RSA_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_RSA, RSA_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 4, 104}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_01 ++ {"BLOCK_TYPE_IS_NOT_01", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_01}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_01", 4, 106}, ++ #endif ++ #ifdef RSA_R_BLOCK_TYPE_IS_NOT_02 ++ {"BLOCK_TYPE_IS_NOT_02", ERR_LIB_RSA, RSA_R_BLOCK_TYPE_IS_NOT_02}, ++ #else ++ {"BLOCK_TYPE_IS_NOT_02", 4, 107}, ++ #endif ++ #ifdef RSA_R_DATA_GREATER_THAN_MOD_LEN ++ {"DATA_GREATER_THAN_MOD_LEN", ERR_LIB_RSA, RSA_R_DATA_GREATER_THAN_MOD_LEN}, ++ #else ++ {"DATA_GREATER_THAN_MOD_LEN", 4, 108}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE ++ {"DATA_TOO_LARGE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE}, ++ #else ++ {"DATA_TOO_LARGE", 4, 109}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_LARGE_FOR_KEY_SIZE", 4, 110}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_LARGE_FOR_MODULUS ++ {"DATA_TOO_LARGE_FOR_MODULUS", ERR_LIB_RSA, RSA_R_DATA_TOO_LARGE_FOR_MODULUS}, ++ #else ++ {"DATA_TOO_LARGE_FOR_MODULUS", 4, 132}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL ++ {"DATA_TOO_SMALL", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL}, ++ #else ++ {"DATA_TOO_SMALL", 4, 111}, ++ #endif ++ #ifdef RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", ERR_LIB_RSA, RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE}, ++ #else ++ {"DATA_TOO_SMALL_FOR_KEY_SIZE", 4, 122}, ++ #endif ++ #ifdef RSA_R_DIGEST_DOES_NOT_MATCH ++ {"DIGEST_DOES_NOT_MATCH", ERR_LIB_RSA, RSA_R_DIGEST_DOES_NOT_MATCH}, ++ #else ++ {"DIGEST_DOES_NOT_MATCH", 4, 158}, ++ #endif ++ #ifdef RSA_R_DIGEST_NOT_ALLOWED ++ {"DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_DIGEST_NOT_ALLOWED}, ++ #else ++ {"DIGEST_NOT_ALLOWED", 4, 145}, ++ #endif ++ #ifdef RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", ERR_LIB_RSA, RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY}, ++ #else ++ {"DIGEST_TOO_BIG_FOR_RSA_KEY", 4, 112}, ++ #endif ++ #ifdef RSA_R_DMP1_NOT_CONGRUENT_TO_D ++ {"DMP1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMP1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMP1_NOT_CONGRUENT_TO_D", 4, 124}, ++ #endif ++ #ifdef RSA_R_DMQ1_NOT_CONGRUENT_TO_D ++ {"DMQ1_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_DMQ1_NOT_CONGRUENT_TO_D}, ++ #else ++ {"DMQ1_NOT_CONGRUENT_TO_D", 4, 125}, ++ #endif ++ #ifdef RSA_R_D_E_NOT_CONGRUENT_TO_1 ++ {"D_E_NOT_CONGRUENT_TO_1", ERR_LIB_RSA, RSA_R_D_E_NOT_CONGRUENT_TO_1}, ++ #else ++ {"D_E_NOT_CONGRUENT_TO_1", 4, 123}, ++ #endif ++ #ifdef RSA_R_FIRST_OCTET_INVALID ++ {"FIRST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_FIRST_OCTET_INVALID}, ++ #else ++ {"FIRST_OCTET_INVALID", 4, 133}, ++ #endif ++ #ifdef RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", ERR_LIB_RSA, RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE}, ++ #else ++ {"ILLEGAL_OR_UNSUPPORTED_PADDING_MODE", 4, 144}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 4, 157}, ++ #endif ++ #ifdef RSA_R_INVALID_DIGEST_LENGTH ++ {"INVALID_DIGEST_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_DIGEST_LENGTH}, ++ #else ++ {"INVALID_DIGEST_LENGTH", 4, 143}, ++ #endif ++ #ifdef RSA_R_INVALID_HEADER ++ {"INVALID_HEADER", ERR_LIB_RSA, RSA_R_INVALID_HEADER}, ++ #else ++ {"INVALID_HEADER", 4, 137}, ++ #endif ++ #ifdef RSA_R_INVALID_KEYPAIR ++ {"INVALID_KEYPAIR", ERR_LIB_RSA, RSA_R_INVALID_KEYPAIR}, ++ #else ++ {"INVALID_KEYPAIR", 4, 171}, ++ #endif ++ #ifdef RSA_R_INVALID_KEY_LENGTH ++ {"INVALID_KEY_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_KEY_LENGTH}, ++ #else ++ {"INVALID_KEY_LENGTH", 4, 173}, ++ #endif ++ #ifdef RSA_R_INVALID_LABEL ++ {"INVALID_LABEL", ERR_LIB_RSA, RSA_R_INVALID_LABEL}, ++ #else ++ {"INVALID_LABEL", 4, 160}, ++ #endif ++ #ifdef RSA_R_INVALID_LENGTH ++ {"INVALID_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_LENGTH}, ++ #else ++ {"INVALID_LENGTH", 4, 181}, ++ #endif ++ #ifdef RSA_R_INVALID_MESSAGE_LENGTH ++ {"INVALID_MESSAGE_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_MESSAGE_LENGTH}, ++ #else ++ {"INVALID_MESSAGE_LENGTH", 4, 131}, ++ #endif ++ #ifdef RSA_R_INVALID_MGF1_MD ++ {"INVALID_MGF1_MD", ERR_LIB_RSA, RSA_R_INVALID_MGF1_MD}, ++ #else ++ {"INVALID_MGF1_MD", 4, 156}, ++ #endif ++ #ifdef RSA_R_INVALID_MODULUS ++ {"INVALID_MODULUS", ERR_LIB_RSA, RSA_R_INVALID_MODULUS}, ++ #else ++ {"INVALID_MODULUS", 4, 174}, ++ #endif ++ #ifdef RSA_R_INVALID_MULTI_PRIME_KEY ++ {"INVALID_MULTI_PRIME_KEY", ERR_LIB_RSA, RSA_R_INVALID_MULTI_PRIME_KEY}, ++ #else ++ {"INVALID_MULTI_PRIME_KEY", 4, 167}, ++ #endif ++ #ifdef RSA_R_INVALID_OAEP_PARAMETERS ++ {"INVALID_OAEP_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_OAEP_PARAMETERS}, ++ #else ++ {"INVALID_OAEP_PARAMETERS", 4, 161}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING ++ {"INVALID_PADDING", ERR_LIB_RSA, RSA_R_INVALID_PADDING}, ++ #else ++ {"INVALID_PADDING", 4, 138}, ++ #endif ++ #ifdef RSA_R_INVALID_PADDING_MODE ++ {"INVALID_PADDING_MODE", ERR_LIB_RSA, RSA_R_INVALID_PADDING_MODE}, ++ #else ++ {"INVALID_PADDING_MODE", 4, 141}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_PARAMETERS ++ {"INVALID_PSS_PARAMETERS", ERR_LIB_RSA, RSA_R_INVALID_PSS_PARAMETERS}, ++ #else ++ {"INVALID_PSS_PARAMETERS", 4, 149}, ++ #endif ++ #ifdef RSA_R_INVALID_PSS_SALTLEN ++ {"INVALID_PSS_SALTLEN", ERR_LIB_RSA, RSA_R_INVALID_PSS_SALTLEN}, ++ #else ++ {"INVALID_PSS_SALTLEN", 4, 146}, ++ #endif ++ #ifdef RSA_R_INVALID_REQUEST ++ {"INVALID_REQUEST", ERR_LIB_RSA, RSA_R_INVALID_REQUEST}, ++ #else ++ {"INVALID_REQUEST", 4, 175}, ++ #endif ++ #ifdef RSA_R_INVALID_SALT_LENGTH ++ {"INVALID_SALT_LENGTH", ERR_LIB_RSA, RSA_R_INVALID_SALT_LENGTH}, ++ #else ++ {"INVALID_SALT_LENGTH", 4, 150}, ++ #endif ++ #ifdef RSA_R_INVALID_STRENGTH ++ {"INVALID_STRENGTH", ERR_LIB_RSA, RSA_R_INVALID_STRENGTH}, ++ #else ++ {"INVALID_STRENGTH", 4, 176}, ++ #endif ++ #ifdef RSA_R_INVALID_TRAILER ++ {"INVALID_TRAILER", ERR_LIB_RSA, RSA_R_INVALID_TRAILER}, ++ #else ++ {"INVALID_TRAILER", 4, 139}, ++ #endif ++ #ifdef RSA_R_INVALID_X931_DIGEST ++ {"INVALID_X931_DIGEST", ERR_LIB_RSA, RSA_R_INVALID_X931_DIGEST}, ++ #else ++ {"INVALID_X931_DIGEST", 4, 142}, ++ #endif ++ #ifdef RSA_R_IQMP_NOT_INVERSE_OF_Q ++ {"IQMP_NOT_INVERSE_OF_Q", ERR_LIB_RSA, RSA_R_IQMP_NOT_INVERSE_OF_Q}, ++ #else ++ {"IQMP_NOT_INVERSE_OF_Q", 4, 126}, ++ #endif ++ #ifdef RSA_R_KEY_PRIME_NUM_INVALID ++ {"KEY_PRIME_NUM_INVALID", ERR_LIB_RSA, RSA_R_KEY_PRIME_NUM_INVALID}, ++ #else ++ {"KEY_PRIME_NUM_INVALID", 4, 165}, ++ #endif ++ #ifdef RSA_R_KEY_SIZE_TOO_SMALL ++ {"KEY_SIZE_TOO_SMALL", ERR_LIB_RSA, RSA_R_KEY_SIZE_TOO_SMALL}, ++ #else ++ {"KEY_SIZE_TOO_SMALL", 4, 120}, ++ #endif ++ #ifdef RSA_R_LAST_OCTET_INVALID ++ {"LAST_OCTET_INVALID", ERR_LIB_RSA, RSA_R_LAST_OCTET_INVALID}, ++ #else ++ {"LAST_OCTET_INVALID", 4, 134}, ++ #endif ++ #ifdef RSA_R_MGF1_DIGEST_NOT_ALLOWED ++ {"MGF1_DIGEST_NOT_ALLOWED", ERR_LIB_RSA, RSA_R_MGF1_DIGEST_NOT_ALLOWED}, ++ #else ++ {"MGF1_DIGEST_NOT_ALLOWED", 4, 152}, ++ #endif ++ #ifdef RSA_R_MISSING_PRIVATE_KEY ++ {"MISSING_PRIVATE_KEY", ERR_LIB_RSA, RSA_R_MISSING_PRIVATE_KEY}, ++ #else ++ {"MISSING_PRIVATE_KEY", 4, 179}, ++ #endif ++ #ifdef RSA_R_MODULUS_TOO_LARGE ++ {"MODULUS_TOO_LARGE", ERR_LIB_RSA, RSA_R_MODULUS_TOO_LARGE}, ++ #else ++ {"MODULUS_TOO_LARGE", 4, 105}, ++ #endif ++ #ifdef RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", ERR_LIB_RSA, RSA_R_MP_COEFFICIENT_NOT_INVERSE_OF_R}, ++ #else ++ {"MP_COEFFICIENT_NOT_INVERSE_OF_R", 4, 168}, ++ #endif ++ #ifdef RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", ERR_LIB_RSA, RSA_R_MP_EXPONENT_NOT_CONGRUENT_TO_D}, ++ #else ++ {"MP_EXPONENT_NOT_CONGRUENT_TO_D", 4, 169}, ++ #endif ++ #ifdef RSA_R_MP_R_NOT_PRIME ++ {"MP_R_NOT_PRIME", ERR_LIB_RSA, RSA_R_MP_R_NOT_PRIME}, ++ #else ++ {"MP_R_NOT_PRIME", 4, 170}, ++ #endif ++ #ifdef RSA_R_NO_PUBLIC_EXPONENT ++ {"NO_PUBLIC_EXPONENT", ERR_LIB_RSA, RSA_R_NO_PUBLIC_EXPONENT}, ++ #else ++ {"NO_PUBLIC_EXPONENT", 4, 140}, ++ #endif ++ #ifdef RSA_R_NULL_BEFORE_BLOCK_MISSING ++ {"NULL_BEFORE_BLOCK_MISSING", ERR_LIB_RSA, RSA_R_NULL_BEFORE_BLOCK_MISSING}, ++ #else ++ {"NULL_BEFORE_BLOCK_MISSING", 4, 113}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES}, ++ #else ++ {"N_DOES_NOT_EQUAL_PRODUCT_OF_PRIMES", 4, 172}, ++ #endif ++ #ifdef RSA_R_N_DOES_NOT_EQUAL_P_Q ++ {"N_DOES_NOT_EQUAL_P_Q", ERR_LIB_RSA, RSA_R_N_DOES_NOT_EQUAL_P_Q}, ++ #else ++ {"N_DOES_NOT_EQUAL_P_Q", 4, 127}, ++ #endif ++ #ifdef RSA_R_OAEP_DECODING_ERROR ++ {"OAEP_DECODING_ERROR", ERR_LIB_RSA, RSA_R_OAEP_DECODING_ERROR}, ++ #else ++ {"OAEP_DECODING_ERROR", 4, 121}, ++ #endif ++ #ifdef RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", ERR_LIB_RSA, RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE}, ++ #else ++ {"OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE", 4, 148}, ++ #endif ++ #ifdef RSA_R_PADDING_CHECK_FAILED ++ {"PADDING_CHECK_FAILED", ERR_LIB_RSA, RSA_R_PADDING_CHECK_FAILED}, ++ #else ++ {"PADDING_CHECK_FAILED", 4, 114}, ++ #endif ++ #ifdef RSA_R_PAIRWISE_TEST_FAILURE ++ {"PAIRWISE_TEST_FAILURE", ERR_LIB_RSA, RSA_R_PAIRWISE_TEST_FAILURE}, ++ #else ++ {"PAIRWISE_TEST_FAILURE", 4, 177}, ++ #endif ++ #ifdef RSA_R_PKCS_DECODING_ERROR ++ {"PKCS_DECODING_ERROR", ERR_LIB_RSA, RSA_R_PKCS_DECODING_ERROR}, ++ #else ++ {"PKCS_DECODING_ERROR", 4, 159}, ++ #endif ++ #ifdef RSA_R_PSS_SALTLEN_TOO_SMALL ++ {"PSS_SALTLEN_TOO_SMALL", ERR_LIB_RSA, RSA_R_PSS_SALTLEN_TOO_SMALL}, ++ #else ++ {"PSS_SALTLEN_TOO_SMALL", 4, 164}, ++ #endif ++ #ifdef RSA_R_PUB_EXPONENT_OUT_OF_RANGE ++ {"PUB_EXPONENT_OUT_OF_RANGE", ERR_LIB_RSA, RSA_R_PUB_EXPONENT_OUT_OF_RANGE}, ++ #else ++ {"PUB_EXPONENT_OUT_OF_RANGE", 4, 178}, ++ #endif ++ #ifdef RSA_R_P_NOT_PRIME ++ {"P_NOT_PRIME", ERR_LIB_RSA, RSA_R_P_NOT_PRIME}, ++ #else ++ {"P_NOT_PRIME", 4, 128}, ++ #endif ++ #ifdef RSA_R_Q_NOT_PRIME ++ {"Q_NOT_PRIME", ERR_LIB_RSA, RSA_R_Q_NOT_PRIME}, ++ #else ++ {"Q_NOT_PRIME", 4, 129}, ++ #endif ++ #ifdef RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", ERR_LIB_RSA, RSA_R_RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT}, ++ #else ++ {"RANDOMNESS_SOURCE_STRENGTH_INSUFFICIENT", 4, 180}, ++ #endif ++ #ifdef RSA_R_RSA_OPERATIONS_NOT_SUPPORTED ++ {"RSA_OPERATIONS_NOT_SUPPORTED", ERR_LIB_RSA, RSA_R_RSA_OPERATIONS_NOT_SUPPORTED}, ++ #else ++ {"RSA_OPERATIONS_NOT_SUPPORTED", 4, 130}, ++ #endif ++ #ifdef RSA_R_SLEN_CHECK_FAILED ++ {"SLEN_CHECK_FAILED", ERR_LIB_RSA, RSA_R_SLEN_CHECK_FAILED}, ++ #else ++ {"SLEN_CHECK_FAILED", 4, 136}, ++ #endif ++ #ifdef RSA_R_SLEN_RECOVERY_FAILED ++ {"SLEN_RECOVERY_FAILED", ERR_LIB_RSA, RSA_R_SLEN_RECOVERY_FAILED}, ++ #else ++ {"SLEN_RECOVERY_FAILED", 4, 135}, ++ #endif ++ #ifdef RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", ERR_LIB_RSA, RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD}, ++ #else ++ {"THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD", 4, 116}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_ALGORITHM_TYPE ++ {"UNKNOWN_ALGORITHM_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_ALGORITHM_TYPE}, ++ #else ++ {"UNKNOWN_ALGORITHM_TYPE", 4, 117}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 4, 166}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_MASK_DIGEST ++ {"UNKNOWN_MASK_DIGEST", ERR_LIB_RSA, RSA_R_UNKNOWN_MASK_DIGEST}, ++ #else ++ {"UNKNOWN_MASK_DIGEST", 4, 151}, ++ #endif ++ #ifdef RSA_R_UNKNOWN_PADDING_TYPE ++ {"UNKNOWN_PADDING_TYPE", ERR_LIB_RSA, RSA_R_UNKNOWN_PADDING_TYPE}, ++ #else ++ {"UNKNOWN_PADDING_TYPE", 4, 118}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_ENCRYPTION_TYPE ++ {"UNSUPPORTED_ENCRYPTION_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_ENCRYPTION_TYPE}, ++ #else ++ {"UNSUPPORTED_ENCRYPTION_TYPE", 4, 162}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_LABEL_SOURCE ++ {"UNSUPPORTED_LABEL_SOURCE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_LABEL_SOURCE}, ++ #else ++ {"UNSUPPORTED_LABEL_SOURCE", 4, 163}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_ALGORITHM ++ {"UNSUPPORTED_MASK_ALGORITHM", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MASK_ALGORITHM", 4, 153}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_MASK_PARAMETER ++ {"UNSUPPORTED_MASK_PARAMETER", ERR_LIB_RSA, RSA_R_UNSUPPORTED_MASK_PARAMETER}, ++ #else ++ {"UNSUPPORTED_MASK_PARAMETER", 4, 154}, ++ #endif ++ #ifdef RSA_R_UNSUPPORTED_SIGNATURE_TYPE ++ {"UNSUPPORTED_SIGNATURE_TYPE", ERR_LIB_RSA, RSA_R_UNSUPPORTED_SIGNATURE_TYPE}, ++ #else ++ {"UNSUPPORTED_SIGNATURE_TYPE", 4, 155}, ++ #endif ++ #ifdef RSA_R_VALUE_MISSING ++ {"VALUE_MISSING", ERR_LIB_RSA, RSA_R_VALUE_MISSING}, ++ #else ++ {"VALUE_MISSING", 4, 147}, ++ #endif ++ #ifdef RSA_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_RSA, RSA_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 4, 119}, ++ #endif ++ #ifdef SM2_R_ASN1_ERROR ++ {"ASN1_ERROR", ERR_LIB_SM2, SM2_R_ASN1_ERROR}, ++ #else ++ {"ASN1_ERROR", 53, 100}, ++ #endif ++ #ifdef SM2_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SM2, SM2_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 53, 101}, ++ #endif ++ #ifdef SM2_R_BUFFER_TOO_SMALL ++ {"BUFFER_TOO_SMALL", ERR_LIB_SM2, SM2_R_BUFFER_TOO_SMALL}, ++ #else ++ {"BUFFER_TOO_SMALL", 53, 107}, ++ #endif ++ #ifdef SM2_R_DIST_ID_TOO_LARGE ++ {"DIST_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_DIST_ID_TOO_LARGE}, ++ #else ++ {"DIST_ID_TOO_LARGE", 53, 110}, ++ #endif ++ #ifdef SM2_R_ID_NOT_SET ++ {"ID_NOT_SET", ERR_LIB_SM2, SM2_R_ID_NOT_SET}, ++ #else ++ {"ID_NOT_SET", 53, 112}, ++ #endif ++ #ifdef SM2_R_ID_TOO_LARGE ++ {"ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_ID_TOO_LARGE}, ++ #else ++ {"ID_TOO_LARGE", 53, 111}, ++ #endif ++ #ifdef SM2_R_INVALID_CURVE ++ {"INVALID_CURVE", ERR_LIB_SM2, SM2_R_INVALID_CURVE}, ++ #else ++ {"INVALID_CURVE", 53, 108}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST ++ {"INVALID_DIGEST", ERR_LIB_SM2, SM2_R_INVALID_DIGEST}, ++ #else ++ {"INVALID_DIGEST", 53, 102}, ++ #endif ++ #ifdef SM2_R_INVALID_DIGEST_TYPE ++ {"INVALID_DIGEST_TYPE", ERR_LIB_SM2, SM2_R_INVALID_DIGEST_TYPE}, ++ #else ++ {"INVALID_DIGEST_TYPE", 53, 103}, ++ #endif ++ #ifdef SM2_R_INVALID_ENCODING ++ {"INVALID_ENCODING", ERR_LIB_SM2, SM2_R_INVALID_ENCODING}, ++ #else ++ {"INVALID_ENCODING", 53, 104}, ++ #endif ++ #ifdef SM2_R_INVALID_FIELD ++ {"INVALID_FIELD", ERR_LIB_SM2, SM2_R_INVALID_FIELD}, ++ #else ++ {"INVALID_FIELD", 53, 105}, ++ #endif ++ #ifdef SM2_R_INVALID_PRIVATE_KEY ++ {"INVALID_PRIVATE_KEY", ERR_LIB_SM2, SM2_R_INVALID_PRIVATE_KEY}, ++ #else ++ {"INVALID_PRIVATE_KEY", 53, 113}, ++ #endif ++ #ifdef SM2_R_NO_PARAMETERS_SET ++ {"NO_PARAMETERS_SET", ERR_LIB_SM2, SM2_R_NO_PARAMETERS_SET}, ++ #else ++ {"NO_PARAMETERS_SET", 53, 109}, ++ #endif ++ #ifdef SM2_R_USER_ID_TOO_LARGE ++ {"USER_ID_TOO_LARGE", ERR_LIB_SM2, SM2_R_USER_ID_TOO_LARGE}, ++ #else ++ {"USER_ID_TOO_LARGE", 53, 106}, ++ #endif ++ #ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", ERR_LIB_SSL, SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY}, ++ #else ++ {"APPLICATION_DATA_AFTER_CLOSE_NOTIFY", 20, 291}, ++ #endif ++ #ifdef SSL_R_APP_DATA_IN_HANDSHAKE ++ {"APP_DATA_IN_HANDSHAKE", ERR_LIB_SSL, SSL_R_APP_DATA_IN_HANDSHAKE}, ++ #else ++ {"APP_DATA_IN_HANDSHAKE", 20, 100}, ++ #endif ++ #ifdef SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", ERR_LIB_SSL, SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT}, ++ #else ++ {"ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT", 20, 272}, ++ #endif ++ #ifdef SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", ERR_LIB_SSL, SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE}, ++ #else ++ {"AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE", 20, 158}, ++ #endif ++ #ifdef SSL_R_BAD_CERTIFICATE ++ {"BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_BAD_CERTIFICATE}, ++ #else ++ {"BAD_CERTIFICATE", 20, 348}, ++ #endif ++ #ifdef SSL_R_BAD_CHANGE_CIPHER_SPEC ++ {"BAD_CHANGE_CIPHER_SPEC", ERR_LIB_SSL, SSL_R_BAD_CHANGE_CIPHER_SPEC}, ++ #else ++ {"BAD_CHANGE_CIPHER_SPEC", 20, 103}, ++ #endif ++ #ifdef SSL_R_BAD_CIPHER ++ {"BAD_CIPHER", ERR_LIB_SSL, SSL_R_BAD_CIPHER}, ++ #else ++ {"BAD_CIPHER", 20, 186}, ++ #endif ++ #ifdef SSL_R_BAD_COMPRESSION_ALGORITHM ++ {"BAD_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_BAD_COMPRESSION_ALGORITHM}, ++ #else ++ {"BAD_COMPRESSION_ALGORITHM", 20, 326}, ++ #endif ++ #ifdef SSL_R_BAD_DATA ++ {"BAD_DATA", ERR_LIB_SSL, SSL_R_BAD_DATA}, ++ #else ++ {"BAD_DATA", 20, 390}, ++ #endif ++ #ifdef SSL_R_BAD_DATA_RETURNED_BY_CALLBACK ++ {"BAD_DATA_RETURNED_BY_CALLBACK", ERR_LIB_SSL, SSL_R_BAD_DATA_RETURNED_BY_CALLBACK}, ++ #else ++ {"BAD_DATA_RETURNED_BY_CALLBACK", 20, 106}, ++ #endif ++ #ifdef SSL_R_BAD_DECOMPRESSION ++ {"BAD_DECOMPRESSION", ERR_LIB_SSL, SSL_R_BAD_DECOMPRESSION}, ++ #else ++ {"BAD_DECOMPRESSION", 20, 107}, ++ #endif ++ #ifdef SSL_R_BAD_DH_VALUE ++ {"BAD_DH_VALUE", ERR_LIB_SSL, SSL_R_BAD_DH_VALUE}, ++ #else ++ {"BAD_DH_VALUE", 20, 102}, ++ #endif ++ #ifdef SSL_R_BAD_DIGEST_LENGTH ++ {"BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_BAD_DIGEST_LENGTH}, ++ #else ++ {"BAD_DIGEST_LENGTH", 20, 111}, ++ #endif ++ #ifdef SSL_R_BAD_EARLY_DATA ++ {"BAD_EARLY_DATA", ERR_LIB_SSL, SSL_R_BAD_EARLY_DATA}, ++ #else ++ {"BAD_EARLY_DATA", 20, 233}, ++ #endif ++ #ifdef SSL_R_BAD_ECC_CERT ++ {"BAD_ECC_CERT", ERR_LIB_SSL, SSL_R_BAD_ECC_CERT}, ++ #else ++ {"BAD_ECC_CERT", 20, 304}, ++ #endif ++ #ifdef SSL_R_BAD_ECHCONFIG_EXTENSION ++ {"BAD_ECHCONFIG_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_ECHCONFIG_EXTENSION}, ++ #else ++ {"BAD_ECHCONFIG_EXTENSION", 20, 425}, ++ #endif ++ #ifdef SSL_R_BAD_ECPOINT ++ {"BAD_ECPOINT", ERR_LIB_SSL, SSL_R_BAD_ECPOINT}, ++ #else ++ {"BAD_ECPOINT", 20, 306}, ++ #endif ++ #ifdef SSL_R_BAD_EXTENSION ++ {"BAD_EXTENSION", ERR_LIB_SSL, SSL_R_BAD_EXTENSION}, ++ #else ++ {"BAD_EXTENSION", 20, 110}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_LENGTH ++ {"BAD_HANDSHAKE_LENGTH", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_LENGTH}, ++ #else ++ {"BAD_HANDSHAKE_LENGTH", 20, 332}, ++ #endif ++ #ifdef SSL_R_BAD_HANDSHAKE_STATE ++ {"BAD_HANDSHAKE_STATE", ERR_LIB_SSL, SSL_R_BAD_HANDSHAKE_STATE}, ++ #else ++ {"BAD_HANDSHAKE_STATE", 20, 236}, ++ #endif ++ #ifdef SSL_R_BAD_HELLO_REQUEST ++ {"BAD_HELLO_REQUEST", ERR_LIB_SSL, SSL_R_BAD_HELLO_REQUEST}, ++ #else ++ {"BAD_HELLO_REQUEST", 20, 105}, ++ #endif ++ #ifdef SSL_R_BAD_HRR_VERSION ++ {"BAD_HRR_VERSION", ERR_LIB_SSL, SSL_R_BAD_HRR_VERSION}, ++ #else ++ {"BAD_HRR_VERSION", 20, 263}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_SHARE ++ {"BAD_KEY_SHARE", ERR_LIB_SSL, SSL_R_BAD_KEY_SHARE}, ++ #else ++ {"BAD_KEY_SHARE", 20, 108}, ++ #endif ++ #ifdef SSL_R_BAD_KEY_UPDATE ++ {"BAD_KEY_UPDATE", ERR_LIB_SSL, SSL_R_BAD_KEY_UPDATE}, ++ #else ++ {"BAD_KEY_UPDATE", 20, 122}, ++ #endif ++ #ifdef SSL_R_BAD_LEGACY_VERSION ++ {"BAD_LEGACY_VERSION", ERR_LIB_SSL, SSL_R_BAD_LEGACY_VERSION}, ++ #else ++ {"BAD_LEGACY_VERSION", 20, 292}, ++ #endif ++ #ifdef SSL_R_BAD_LENGTH ++ {"BAD_LENGTH", ERR_LIB_SSL, SSL_R_BAD_LENGTH}, ++ #else ++ {"BAD_LENGTH", 20, 271}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET ++ {"BAD_PACKET", ERR_LIB_SSL, SSL_R_BAD_PACKET}, ++ #else ++ {"BAD_PACKET", 20, 240}, ++ #endif ++ #ifdef SSL_R_BAD_PACKET_LENGTH ++ {"BAD_PACKET_LENGTH", ERR_LIB_SSL, SSL_R_BAD_PACKET_LENGTH}, ++ #else ++ {"BAD_PACKET_LENGTH", 20, 115}, ++ #endif ++ #ifdef SSL_R_BAD_PROTOCOL_VERSION_NUMBER ++ {"BAD_PROTOCOL_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_BAD_PROTOCOL_VERSION_NUMBER}, ++ #else ++ {"BAD_PROTOCOL_VERSION_NUMBER", 20, 116}, ++ #endif ++ #ifdef SSL_R_BAD_PSK ++ {"BAD_PSK", ERR_LIB_SSL, SSL_R_BAD_PSK}, ++ #else ++ {"BAD_PSK", 20, 219}, ++ #endif ++ #ifdef SSL_R_BAD_PSK_IDENTITY ++ {"BAD_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_BAD_PSK_IDENTITY}, ++ #else ++ {"BAD_PSK_IDENTITY", 20, 114}, ++ #endif ++ #ifdef SSL_R_BAD_RECORD_TYPE ++ {"BAD_RECORD_TYPE", ERR_LIB_SSL, SSL_R_BAD_RECORD_TYPE}, ++ #else ++ {"BAD_RECORD_TYPE", 20, 443}, ++ #endif ++ #ifdef SSL_R_BAD_RSA_ENCRYPT ++ {"BAD_RSA_ENCRYPT", ERR_LIB_SSL, SSL_R_BAD_RSA_ENCRYPT}, ++ #else ++ {"BAD_RSA_ENCRYPT", 20, 119}, ++ #endif ++ #ifdef SSL_R_BAD_SIGNATURE ++ {"BAD_SIGNATURE", ERR_LIB_SSL, SSL_R_BAD_SIGNATURE}, ++ #else ++ {"BAD_SIGNATURE", 20, 123}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_A_LENGTH ++ {"BAD_SRP_A_LENGTH", ERR_LIB_SSL, SSL_R_BAD_SRP_A_LENGTH}, ++ #else ++ {"BAD_SRP_A_LENGTH", 20, 347}, ++ #endif ++ #ifdef SSL_R_BAD_SRP_PARAMETERS ++ {"BAD_SRP_PARAMETERS", ERR_LIB_SSL, SSL_R_BAD_SRP_PARAMETERS}, ++ #else ++ {"BAD_SRP_PARAMETERS", 20, 371}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_MKI_VALUE ++ {"BAD_SRTP_MKI_VALUE", ERR_LIB_SSL, SSL_R_BAD_SRTP_MKI_VALUE}, ++ #else ++ {"BAD_SRTP_MKI_VALUE", 20, 352}, ++ #endif ++ #ifdef SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"BAD_SRTP_PROTECTION_PROFILE_LIST", 20, 353}, ++ #endif ++ #ifdef SSL_R_BAD_SSL_FILETYPE ++ {"BAD_SSL_FILETYPE", ERR_LIB_SSL, SSL_R_BAD_SSL_FILETYPE}, ++ #else ++ {"BAD_SSL_FILETYPE", 20, 124}, ++ #endif ++ #ifdef SSL_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_SSL, SSL_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 20, 384}, ++ #endif ++ #ifdef SSL_R_BAD_WRITE_RETRY ++ {"BAD_WRITE_RETRY", ERR_LIB_SSL, SSL_R_BAD_WRITE_RETRY}, ++ #else ++ {"BAD_WRITE_RETRY", 20, 127}, ++ #endif ++ #ifdef SSL_R_BINDER_DOES_NOT_VERIFY ++ {"BINDER_DOES_NOT_VERIFY", ERR_LIB_SSL, SSL_R_BINDER_DOES_NOT_VERIFY}, ++ #else ++ {"BINDER_DOES_NOT_VERIFY", 20, 253}, ++ #endif ++ #ifdef SSL_R_BIO_NOT_SET ++ {"BIO_NOT_SET", ERR_LIB_SSL, SSL_R_BIO_NOT_SET}, ++ #else ++ {"BIO_NOT_SET", 20, 128}, ++ #endif ++ #ifdef SSL_R_BLOCK_CIPHER_PAD_IS_WRONG ++ {"BLOCK_CIPHER_PAD_IS_WRONG", ERR_LIB_SSL, SSL_R_BLOCK_CIPHER_PAD_IS_WRONG}, ++ #else ++ {"BLOCK_CIPHER_PAD_IS_WRONG", 20, 129}, ++ #endif ++ #ifdef SSL_R_BN_LIB ++ {"BN_LIB", ERR_LIB_SSL, SSL_R_BN_LIB}, ++ #else ++ {"BN_LIB", 20, 130}, ++ #endif ++ #ifdef SSL_R_CALLBACK_FAILED ++ {"CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_CALLBACK_FAILED}, ++ #else ++ {"CALLBACK_FAILED", 20, 234}, ++ #endif ++ #ifdef SSL_R_CANNOT_CHANGE_CIPHER ++ {"CANNOT_CHANGE_CIPHER", ERR_LIB_SSL, SSL_R_CANNOT_CHANGE_CIPHER}, ++ #else ++ {"CANNOT_CHANGE_CIPHER", 20, 109}, ++ #endif ++ #ifdef SSL_R_CANNOT_GET_GROUP_NAME ++ {"CANNOT_GET_GROUP_NAME", ERR_LIB_SSL, SSL_R_CANNOT_GET_GROUP_NAME}, ++ #else ++ {"CANNOT_GET_GROUP_NAME", 20, 299}, ++ #endif ++ #ifdef SSL_R_CA_DN_LENGTH_MISMATCH ++ {"CA_DN_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CA_DN_LENGTH_MISMATCH}, ++ #else ++ {"CA_DN_LENGTH_MISMATCH", 20, 131}, ++ #endif ++ #ifdef SSL_R_CA_KEY_TOO_SMALL ++ {"CA_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_CA_KEY_TOO_SMALL}, ++ #else ++ {"CA_KEY_TOO_SMALL", 20, 397}, ++ #endif ++ #ifdef SSL_R_CA_MD_TOO_WEAK ++ {"CA_MD_TOO_WEAK", ERR_LIB_SSL, SSL_R_CA_MD_TOO_WEAK}, ++ #else ++ {"CA_MD_TOO_WEAK", 20, 398}, ++ #endif ++ #ifdef SSL_R_CCS_RECEIVED_EARLY ++ {"CCS_RECEIVED_EARLY", ERR_LIB_SSL, SSL_R_CCS_RECEIVED_EARLY}, ++ #else ++ {"CCS_RECEIVED_EARLY", 20, 133}, ++ #endif ++ #ifdef SSL_R_CERTIFICATE_VERIFY_FAILED ++ {"CERTIFICATE_VERIFY_FAILED", ERR_LIB_SSL, SSL_R_CERTIFICATE_VERIFY_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFY_FAILED", 20, 134}, ++ #endif ++ #ifdef SSL_R_CERT_CB_ERROR ++ {"CERT_CB_ERROR", ERR_LIB_SSL, SSL_R_CERT_CB_ERROR}, ++ #else ++ {"CERT_CB_ERROR", 20, 377}, ++ #endif ++ #ifdef SSL_R_CERT_LENGTH_MISMATCH ++ {"CERT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_CERT_LENGTH_MISMATCH}, ++ #else ++ {"CERT_LENGTH_MISMATCH", 20, 135}, ++ #endif ++ #ifdef SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", ERR_LIB_SSL, SSL_R_CIPHERSUITE_DIGEST_HAS_CHANGED}, ++ #else ++ {"CIPHERSUITE_DIGEST_HAS_CHANGED", 20, 218}, ++ #endif ++ #ifdef SSL_R_CIPHER_CODE_WRONG_LENGTH ++ {"CIPHER_CODE_WRONG_LENGTH", ERR_LIB_SSL, SSL_R_CIPHER_CODE_WRONG_LENGTH}, ++ #else ++ {"CIPHER_CODE_WRONG_LENGTH", 20, 137}, ++ #endif ++ #ifdef SSL_R_CLIENTHELLO_TLSEXT ++ {"CLIENTHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_CLIENTHELLO_TLSEXT}, ++ #else ++ {"CLIENTHELLO_TLSEXT", 20, 226}, ++ #endif ++ #ifdef SSL_R_COMPRESSED_LENGTH_TOO_LONG ++ {"COMPRESSED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_COMPRESSED_LENGTH_TOO_LONG}, ++ #else ++ {"COMPRESSED_LENGTH_TOO_LONG", 20, 140}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_DISABLED ++ {"COMPRESSION_DISABLED", ERR_LIB_SSL, SSL_R_COMPRESSION_DISABLED}, ++ #else ++ {"COMPRESSION_DISABLED", 20, 343}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_FAILURE ++ {"COMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_COMPRESSION_FAILURE}, ++ #else ++ {"COMPRESSION_FAILURE", 20, 141}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", ERR_LIB_SSL, SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE}, ++ #else ++ {"COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE", 20, 307}, ++ #endif ++ #ifdef SSL_R_COMPRESSION_LIBRARY_ERROR ++ {"COMPRESSION_LIBRARY_ERROR", ERR_LIB_SSL, SSL_R_COMPRESSION_LIBRARY_ERROR}, ++ #else ++ {"COMPRESSION_LIBRARY_ERROR", 20, 142}, ++ #endif ++ #ifdef SSL_R_CONNECTION_TYPE_NOT_SET ++ {"CONNECTION_TYPE_NOT_SET", ERR_LIB_SSL, SSL_R_CONNECTION_TYPE_NOT_SET}, ++ #else ++ {"CONNECTION_TYPE_NOT_SET", 20, 144}, ++ #endif ++ #ifdef SSL_R_CONN_USE_ONLY ++ {"CONN_USE_ONLY", ERR_LIB_SSL, SSL_R_CONN_USE_ONLY}, ++ #else ++ {"CONN_USE_ONLY", 20, 356}, ++ #endif ++ #ifdef SSL_R_CONTEXT_NOT_DANE_ENABLED ++ {"CONTEXT_NOT_DANE_ENABLED", ERR_LIB_SSL, SSL_R_CONTEXT_NOT_DANE_ENABLED}, ++ #else ++ {"CONTEXT_NOT_DANE_ENABLED", 20, 167}, ++ #endif ++ #ifdef SSL_R_COOKIE_GEN_CALLBACK_FAILURE ++ {"COOKIE_GEN_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_COOKIE_GEN_CALLBACK_FAILURE}, ++ #else ++ {"COOKIE_GEN_CALLBACK_FAILURE", 20, 400}, ++ #endif ++ #ifdef SSL_R_COOKIE_MISMATCH ++ {"COOKIE_MISMATCH", ERR_LIB_SSL, SSL_R_COOKIE_MISMATCH}, ++ #else ++ {"COOKIE_MISMATCH", 20, 308}, ++ #endif ++ #ifdef SSL_R_COPY_PARAMETERS_FAILED ++ {"COPY_PARAMETERS_FAILED", ERR_LIB_SSL, SSL_R_COPY_PARAMETERS_FAILED}, ++ #else ++ {"COPY_PARAMETERS_FAILED", 20, 296}, ++ #endif ++ #ifdef SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", ERR_LIB_SSL, SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED}, ++ #else ++ {"CUSTOM_EXT_HANDLER_ALREADY_INSTALLED", 20, 206}, ++ #endif ++ #ifdef SSL_R_DANE_ALREADY_ENABLED ++ {"DANE_ALREADY_ENABLED", ERR_LIB_SSL, SSL_R_DANE_ALREADY_ENABLED}, ++ #else ++ {"DANE_ALREADY_ENABLED", 20, 172}, ++ #endif ++ #ifdef SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", ERR_LIB_SSL, SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL}, ++ #else ++ {"DANE_CANNOT_OVERRIDE_MTYPE_FULL", 20, 173}, ++ #endif ++ #ifdef SSL_R_DANE_NOT_ENABLED ++ {"DANE_NOT_ENABLED", ERR_LIB_SSL, SSL_R_DANE_NOT_ENABLED}, ++ #else ++ {"DANE_NOT_ENABLED", 20, 175}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE ++ {"DANE_TLSA_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE", 20, 180}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE}, ++ #else ++ {"DANE_TLSA_BAD_CERTIFICATE_USAGE", 20, 184}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DATA_LENGTH ++ {"DANE_TLSA_BAD_DATA_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DATA_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DATA_LENGTH", 20, 189}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH}, ++ #else ++ {"DANE_TLSA_BAD_DIGEST_LENGTH", 20, 192}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_MATCHING_TYPE ++ {"DANE_TLSA_BAD_MATCHING_TYPE", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_MATCHING_TYPE}, ++ #else ++ {"DANE_TLSA_BAD_MATCHING_TYPE", 20, 200}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_PUBLIC_KEY ++ {"DANE_TLSA_BAD_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_PUBLIC_KEY}, ++ #else ++ {"DANE_TLSA_BAD_PUBLIC_KEY", 20, 201}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_BAD_SELECTOR ++ {"DANE_TLSA_BAD_SELECTOR", ERR_LIB_SSL, SSL_R_DANE_TLSA_BAD_SELECTOR}, ++ #else ++ {"DANE_TLSA_BAD_SELECTOR", 20, 202}, ++ #endif ++ #ifdef SSL_R_DANE_TLSA_NULL_DATA ++ {"DANE_TLSA_NULL_DATA", ERR_LIB_SSL, SSL_R_DANE_TLSA_NULL_DATA}, ++ #else ++ {"DANE_TLSA_NULL_DATA", 20, 203}, ++ #endif ++ #ifdef SSL_R_DATA_BETWEEN_CCS_AND_FINISHED ++ {"DATA_BETWEEN_CCS_AND_FINISHED", ERR_LIB_SSL, SSL_R_DATA_BETWEEN_CCS_AND_FINISHED}, ++ #else ++ {"DATA_BETWEEN_CCS_AND_FINISHED", 20, 145}, ++ #endif ++ #ifdef SSL_R_DATA_LENGTH_TOO_LONG ++ {"DATA_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_DATA_LENGTH_TOO_LONG}, ++ #else ++ {"DATA_LENGTH_TOO_LONG", 20, 146}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED ++ {"DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED}, ++ #else ++ {"DECRYPTION_FAILED", 20, 147}, ++ #endif ++ #ifdef SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC}, ++ #else ++ {"DECRYPTION_FAILED_OR_BAD_RECORD_MAC", 20, 281}, ++ #endif ++ #ifdef SSL_R_DH_KEY_TOO_SMALL ++ {"DH_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_DH_KEY_TOO_SMALL}, ++ #else ++ {"DH_KEY_TOO_SMALL", 20, 394}, ++ #endif ++ #ifdef SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", ERR_LIB_SSL, SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG}, ++ #else ++ {"DH_PUBLIC_VALUE_LENGTH_IS_WRONG", 20, 148}, ++ #endif ++ #ifdef SSL_R_DIGEST_CHECK_FAILED ++ {"DIGEST_CHECK_FAILED", ERR_LIB_SSL, SSL_R_DIGEST_CHECK_FAILED}, ++ #else ++ {"DIGEST_CHECK_FAILED", 20, 149}, ++ #endif ++ #ifdef SSL_R_DOMAIN_USE_ONLY ++ {"DOMAIN_USE_ONLY", ERR_LIB_SSL, SSL_R_DOMAIN_USE_ONLY}, ++ #else ++ {"DOMAIN_USE_ONLY", 20, 422}, ++ #endif ++ #ifdef SSL_R_DTLS_MESSAGE_TOO_BIG ++ {"DTLS_MESSAGE_TOO_BIG", ERR_LIB_SSL, SSL_R_DTLS_MESSAGE_TOO_BIG}, ++ #else ++ {"DTLS_MESSAGE_TOO_BIG", 20, 334}, ++ #endif ++ #ifdef SSL_R_DUPLICATE_COMPRESSION_ID ++ {"DUPLICATE_COMPRESSION_ID", ERR_LIB_SSL, SSL_R_DUPLICATE_COMPRESSION_ID}, ++ #else ++ {"DUPLICATE_COMPRESSION_ID", 20, 309}, ++ #endif ++ #ifdef SSL_R_ECC_CERT_NOT_FOR_SIGNING ++ {"ECC_CERT_NOT_FOR_SIGNING", ERR_LIB_SSL, SSL_R_ECC_CERT_NOT_FOR_SIGNING}, ++ #else ++ {"ECC_CERT_NOT_FOR_SIGNING", 20, 318}, ++ #endif ++ #ifdef SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", ERR_LIB_SSL, SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE}, ++ #else ++ {"ECDH_REQUIRED_FOR_SUITEB_MODE", 20, 374}, ++ #endif ++ #ifdef SSL_R_ECH_DECODE_ERROR ++ {"ECH_DECODE_ERROR", ERR_LIB_SSL, SSL_R_ECH_DECODE_ERROR}, ++ #else ++ {"ECH_DECODE_ERROR", 20, 426}, ++ #endif ++ #ifdef SSL_R_ECH_REQUIRED ++ {"ECH_REQUIRED", ERR_LIB_SSL, SSL_R_ECH_REQUIRED}, ++ #else ++ {"ECH_REQUIRED", 20, 424}, ++ #endif ++ #ifdef SSL_R_EE_KEY_TOO_SMALL ++ {"EE_KEY_TOO_SMALL", ERR_LIB_SSL, SSL_R_EE_KEY_TOO_SMALL}, ++ #else ++ {"EE_KEY_TOO_SMALL", 20, 399}, ++ #endif ++ #ifdef SSL_R_EMPTY_RAW_PUBLIC_KEY ++ {"EMPTY_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_EMPTY_RAW_PUBLIC_KEY}, ++ #else ++ {"EMPTY_RAW_PUBLIC_KEY", 20, 349}, ++ #endif ++ #ifdef SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", ERR_LIB_SSL, SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST}, ++ #else ++ {"EMPTY_SRTP_PROTECTION_PROFILE_LIST", 20, 354}, ++ #endif ++ #ifdef SSL_R_ENCRYPTED_LENGTH_TOO_LONG ++ {"ENCRYPTED_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_ENCRYPTED_LENGTH_TOO_LONG}, ++ #else ++ {"ENCRYPTED_LENGTH_TOO_LONG", 20, 150}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", ERR_LIB_SSL, SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST}, ++ #else ++ {"ERROR_IN_RECEIVED_CIPHER_LIST", 20, 151}, ++ #endif ++ #ifdef SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", ERR_LIB_SSL, SSL_R_ERROR_IN_SYSTEM_DEFAULT_CONFIG}, ++ #else ++ {"ERROR_IN_SYSTEM_DEFAULT_CONFIG", 20, 419}, ++ #endif ++ #ifdef SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", ERR_LIB_SSL, SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN}, ++ #else ++ {"ERROR_SETTING_TLSA_BASE_DOMAIN", 20, 204}, ++ #endif ++ #ifdef SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", ERR_LIB_SSL, SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE}, ++ #else ++ {"EXCEEDS_MAX_FRAGMENT_SIZE", 20, 194}, ++ #endif ++ #ifdef SSL_R_EXCESSIVE_MESSAGE_SIZE ++ {"EXCESSIVE_MESSAGE_SIZE", ERR_LIB_SSL, SSL_R_EXCESSIVE_MESSAGE_SIZE}, ++ #else ++ {"EXCESSIVE_MESSAGE_SIZE", 20, 152}, ++ #endif ++ #ifdef SSL_R_EXTENSION_NOT_RECEIVED ++ {"EXTENSION_NOT_RECEIVED", ERR_LIB_SSL, SSL_R_EXTENSION_NOT_RECEIVED}, ++ #else ++ {"EXTENSION_NOT_RECEIVED", 20, 279}, ++ #endif ++ #ifdef SSL_R_EXTRA_DATA_IN_MESSAGE ++ {"EXTRA_DATA_IN_MESSAGE", ERR_LIB_SSL, SSL_R_EXTRA_DATA_IN_MESSAGE}, ++ #else ++ {"EXTRA_DATA_IN_MESSAGE", 20, 153}, ++ #endif ++ #ifdef SSL_R_EXT_LENGTH_MISMATCH ++ {"EXT_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_EXT_LENGTH_MISMATCH}, ++ #else ++ {"EXT_LENGTH_MISMATCH", 20, 163}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_GET_PARAMETER ++ {"FAILED_TO_GET_PARAMETER", ERR_LIB_SSL, SSL_R_FAILED_TO_GET_PARAMETER}, ++ #else ++ {"FAILED_TO_GET_PARAMETER", 20, 316}, ++ #endif ++ #ifdef SSL_R_FAILED_TO_INIT_ASYNC ++ {"FAILED_TO_INIT_ASYNC", ERR_LIB_SSL, SSL_R_FAILED_TO_INIT_ASYNC}, ++ #else ++ {"FAILED_TO_INIT_ASYNC", 20, 405}, ++ #endif ++ #ifdef SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", ERR_LIB_SSL, SSL_R_FEATURE_NEGOTIATION_NOT_COMPLETE}, ++ #else ++ {"FEATURE_NEGOTIATION_NOT_COMPLETE", 20, 417}, ++ #endif ++ #ifdef SSL_R_FEATURE_NOT_RENEGOTIABLE ++ {"FEATURE_NOT_RENEGOTIABLE", ERR_LIB_SSL, SSL_R_FEATURE_NOT_RENEGOTIABLE}, ++ #else ++ {"FEATURE_NOT_RENEGOTIABLE", 20, 413}, ++ #endif ++ #ifdef SSL_R_FRAGMENTED_CLIENT_HELLO ++ {"FRAGMENTED_CLIENT_HELLO", ERR_LIB_SSL, SSL_R_FRAGMENTED_CLIENT_HELLO}, ++ #else ++ {"FRAGMENTED_CLIENT_HELLO", 20, 401}, ++ #endif ++ #ifdef SSL_R_GOT_A_FIN_BEFORE_A_CCS ++ {"GOT_A_FIN_BEFORE_A_CCS", ERR_LIB_SSL, SSL_R_GOT_A_FIN_BEFORE_A_CCS}, ++ #else ++ {"GOT_A_FIN_BEFORE_A_CCS", 20, 154}, ++ #endif ++ #ifdef SSL_R_HTTPS_PROXY_REQUEST ++ {"HTTPS_PROXY_REQUEST", ERR_LIB_SSL, SSL_R_HTTPS_PROXY_REQUEST}, ++ #else ++ {"HTTPS_PROXY_REQUEST", 20, 155}, ++ #endif ++ #ifdef SSL_R_HTTP_REQUEST ++ {"HTTP_REQUEST", ERR_LIB_SSL, SSL_R_HTTP_REQUEST}, ++ #else ++ {"HTTP_REQUEST", 20, 156}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_POINT_COMPRESSION ++ {"ILLEGAL_POINT_COMPRESSION", ERR_LIB_SSL, SSL_R_ILLEGAL_POINT_COMPRESSION}, ++ #else ++ {"ILLEGAL_POINT_COMPRESSION", 20, 162}, ++ #endif ++ #ifdef SSL_R_ILLEGAL_SUITEB_DIGEST ++ {"ILLEGAL_SUITEB_DIGEST", ERR_LIB_SSL, SSL_R_ILLEGAL_SUITEB_DIGEST}, ++ #else ++ {"ILLEGAL_SUITEB_DIGEST", 20, 380}, ++ #endif ++ #ifdef SSL_R_INAPPROPRIATE_FALLBACK ++ {"INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"INAPPROPRIATE_FALLBACK", 20, 373}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_COMPRESSION ++ {"INCONSISTENT_COMPRESSION", ERR_LIB_SSL, SSL_R_INCONSISTENT_COMPRESSION}, ++ #else ++ {"INCONSISTENT_COMPRESSION", 20, 340}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_ALPN ++ {"INCONSISTENT_EARLY_DATA_ALPN", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_ALPN}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_ALPN", 20, 222}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EARLY_DATA_SNI ++ {"INCONSISTENT_EARLY_DATA_SNI", ERR_LIB_SSL, SSL_R_INCONSISTENT_EARLY_DATA_SNI}, ++ #else ++ {"INCONSISTENT_EARLY_DATA_SNI", 20, 231}, ++ #endif ++ #ifdef SSL_R_INCONSISTENT_EXTMS ++ {"INCONSISTENT_EXTMS", ERR_LIB_SSL, SSL_R_INCONSISTENT_EXTMS}, ++ #else ++ {"INCONSISTENT_EXTMS", 20, 104}, ++ #endif ++ #ifdef SSL_R_INSUFFICIENT_SECURITY ++ {"INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_INSUFFICIENT_SECURITY}, ++ #else ++ {"INSUFFICIENT_SECURITY", 20, 241}, ++ #endif ++ #ifdef SSL_R_INVALID_ALERT ++ {"INVALID_ALERT", ERR_LIB_SSL, SSL_R_INVALID_ALERT}, ++ #else ++ {"INVALID_ALERT", 20, 205}, ++ #endif ++ #ifdef SSL_R_INVALID_CCS_MESSAGE ++ {"INVALID_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_INVALID_CCS_MESSAGE}, ++ #else ++ {"INVALID_CCS_MESSAGE", 20, 260}, ++ #endif ++ #ifdef SSL_R_INVALID_CERTIFICATE_OR_ALG ++ {"INVALID_CERTIFICATE_OR_ALG", ERR_LIB_SSL, SSL_R_INVALID_CERTIFICATE_OR_ALG}, ++ #else ++ {"INVALID_CERTIFICATE_OR_ALG", 20, 238}, ++ #endif ++ #ifdef SSL_R_INVALID_COMMAND ++ {"INVALID_COMMAND", ERR_LIB_SSL, SSL_R_INVALID_COMMAND}, ++ #else ++ {"INVALID_COMMAND", 20, 280}, ++ #endif ++ #ifdef SSL_R_INVALID_COMPRESSION_ALGORITHM ++ {"INVALID_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_INVALID_COMPRESSION_ALGORITHM}, ++ #else ++ {"INVALID_COMPRESSION_ALGORITHM", 20, 341}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIG ++ {"INVALID_CONFIG", ERR_LIB_SSL, SSL_R_INVALID_CONFIG}, ++ #else ++ {"INVALID_CONFIG", 20, 283}, ++ #endif ++ #ifdef SSL_R_INVALID_CONFIGURATION_NAME ++ {"INVALID_CONFIGURATION_NAME", ERR_LIB_SSL, SSL_R_INVALID_CONFIGURATION_NAME}, ++ #else ++ {"INVALID_CONFIGURATION_NAME", 20, 113}, ++ #endif ++ #ifdef SSL_R_INVALID_CONTEXT ++ {"INVALID_CONTEXT", ERR_LIB_SSL, SSL_R_INVALID_CONTEXT}, ++ #else ++ {"INVALID_CONTEXT", 20, 282}, ++ #endif ++ #ifdef SSL_R_INVALID_CT_VALIDATION_TYPE ++ {"INVALID_CT_VALIDATION_TYPE", ERR_LIB_SSL, SSL_R_INVALID_CT_VALIDATION_TYPE}, ++ #else ++ {"INVALID_CT_VALIDATION_TYPE", 20, 212}, ++ #endif ++ #ifdef SSL_R_INVALID_KEY_UPDATE_TYPE ++ {"INVALID_KEY_UPDATE_TYPE", ERR_LIB_SSL, SSL_R_INVALID_KEY_UPDATE_TYPE}, ++ #else ++ {"INVALID_KEY_UPDATE_TYPE", 20, 120}, ++ #endif ++ #ifdef SSL_R_INVALID_MAX_EARLY_DATA ++ {"INVALID_MAX_EARLY_DATA", ERR_LIB_SSL, SSL_R_INVALID_MAX_EARLY_DATA}, ++ #else ++ {"INVALID_MAX_EARLY_DATA", 20, 174}, ++ #endif ++ #ifdef SSL_R_INVALID_NULL_CMD_NAME ++ {"INVALID_NULL_CMD_NAME", ERR_LIB_SSL, SSL_R_INVALID_NULL_CMD_NAME}, ++ #else ++ {"INVALID_NULL_CMD_NAME", 20, 385}, ++ #endif ++ #ifdef SSL_R_INVALID_RAW_PUBLIC_KEY ++ {"INVALID_RAW_PUBLIC_KEY", ERR_LIB_SSL, SSL_R_INVALID_RAW_PUBLIC_KEY}, ++ #else ++ {"INVALID_RAW_PUBLIC_KEY", 20, 350}, ++ #endif ++ #ifdef SSL_R_INVALID_RECORD ++ {"INVALID_RECORD", ERR_LIB_SSL, SSL_R_INVALID_RECORD}, ++ #else ++ {"INVALID_RECORD", 20, 317}, ++ #endif ++ #ifdef SSL_R_INVALID_SEQUENCE_NUMBER ++ {"INVALID_SEQUENCE_NUMBER", ERR_LIB_SSL, SSL_R_INVALID_SEQUENCE_NUMBER}, ++ #else ++ {"INVALID_SEQUENCE_NUMBER", 20, 402}, ++ #endif ++ #ifdef SSL_R_INVALID_SERVERINFO_DATA ++ {"INVALID_SERVERINFO_DATA", ERR_LIB_SSL, SSL_R_INVALID_SERVERINFO_DATA}, ++ #else ++ {"INVALID_SERVERINFO_DATA", 20, 388}, ++ #endif ++ #ifdef SSL_R_INVALID_SESSION_ID ++ {"INVALID_SESSION_ID", ERR_LIB_SSL, SSL_R_INVALID_SESSION_ID}, ++ #else ++ {"INVALID_SESSION_ID", 20, 999}, ++ #endif ++ #ifdef SSL_R_INVALID_SRP_USERNAME ++ {"INVALID_SRP_USERNAME", ERR_LIB_SSL, SSL_R_INVALID_SRP_USERNAME}, ++ #else ++ {"INVALID_SRP_USERNAME", 20, 357}, ++ #endif ++ #ifdef SSL_R_INVALID_STATUS_RESPONSE ++ {"INVALID_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_INVALID_STATUS_RESPONSE}, ++ #else ++ {"INVALID_STATUS_RESPONSE", 20, 328}, ++ #endif ++ #ifdef SSL_R_INVALID_TICKET_KEYS_LENGTH ++ {"INVALID_TICKET_KEYS_LENGTH", ERR_LIB_SSL, SSL_R_INVALID_TICKET_KEYS_LENGTH}, ++ #else ++ {"INVALID_TICKET_KEYS_LENGTH", 20, 325}, ++ #endif ++ #ifdef SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", ERR_LIB_SSL, SSL_R_LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED}, ++ #else ++ {"LEGACY_SIGALG_DISALLOWED_OR_UNSUPPORTED", 20, 333}, ++ #endif ++ #ifdef SSL_R_LENGTH_MISMATCH ++ {"LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_LENGTH_MISMATCH}, ++ #else ++ {"LENGTH_MISMATCH", 20, 159}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_LONG ++ {"LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_LENGTH_TOO_LONG}, ++ #else ++ {"LENGTH_TOO_LONG", 20, 404}, ++ #endif ++ #ifdef SSL_R_LENGTH_TOO_SHORT ++ {"LENGTH_TOO_SHORT", ERR_LIB_SSL, SSL_R_LENGTH_TOO_SHORT}, ++ #else ++ {"LENGTH_TOO_SHORT", 20, 160}, ++ #endif ++ #ifdef SSL_R_LIBRARY_BUG ++ {"LIBRARY_BUG", ERR_LIB_SSL, SSL_R_LIBRARY_BUG}, ++ #else ++ {"LIBRARY_BUG", 20, 274}, ++ #endif ++ #ifdef SSL_R_LIBRARY_HAS_NO_CIPHERS ++ {"LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"LIBRARY_HAS_NO_CIPHERS", 20, 161}, ++ #endif ++ #ifdef SSL_R_LISTENER_USE_ONLY ++ {"LISTENER_USE_ONLY", ERR_LIB_SSL, SSL_R_LISTENER_USE_ONLY}, ++ #else ++ {"LISTENER_USE_ONLY", 20, 421}, ++ #endif ++ #ifdef SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", ERR_LIB_SSL, SSL_R_MAXIMUM_ENCRYPTED_PKTS_REACHED}, ++ #else ++ {"MAXIMUM_ENCRYPTED_PKTS_REACHED", 20, 395}, ++ #endif ++ #ifdef SSL_R_MISSING_DSA_SIGNING_CERT ++ {"MISSING_DSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_DSA_SIGNING_CERT}, ++ #else ++ {"MISSING_DSA_SIGNING_CERT", 20, 165}, ++ #endif ++ #ifdef SSL_R_MISSING_ECDSA_SIGNING_CERT ++ {"MISSING_ECDSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_ECDSA_SIGNING_CERT}, ++ #else ++ {"MISSING_ECDSA_SIGNING_CERT", 20, 381}, ++ #endif ++ #ifdef SSL_R_MISSING_FATAL ++ {"MISSING_FATAL", ERR_LIB_SSL, SSL_R_MISSING_FATAL}, ++ #else ++ {"MISSING_FATAL", 20, 256}, ++ #endif ++ #ifdef SSL_R_MISSING_PARAMETERS ++ {"MISSING_PARAMETERS", ERR_LIB_SSL, SSL_R_MISSING_PARAMETERS}, ++ #else ++ {"MISSING_PARAMETERS", 20, 290}, ++ #endif ++ #ifdef SSL_R_MISSING_PSK_KEX_MODES_EXTENSION ++ {"MISSING_PSK_KEX_MODES_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_PSK_KEX_MODES_EXTENSION}, ++ #else ++ {"MISSING_PSK_KEX_MODES_EXTENSION", 20, 310}, ++ #endif ++ #ifdef SSL_R_MISSING_QUIC_TLS_FUNCTIONS ++ {"MISSING_QUIC_TLS_FUNCTIONS", ERR_LIB_SSL, SSL_R_MISSING_QUIC_TLS_FUNCTIONS}, ++ #else ++ {"MISSING_QUIC_TLS_FUNCTIONS", 20, 423}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_CERTIFICATE ++ {"MISSING_RSA_CERTIFICATE", ERR_LIB_SSL, SSL_R_MISSING_RSA_CERTIFICATE}, ++ #else ++ {"MISSING_RSA_CERTIFICATE", 20, 168}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_ENCRYPTING_CERT ++ {"MISSING_RSA_ENCRYPTING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_ENCRYPTING_CERT}, ++ #else ++ {"MISSING_RSA_ENCRYPTING_CERT", 20, 169}, ++ #endif ++ #ifdef SSL_R_MISSING_RSA_SIGNING_CERT ++ {"MISSING_RSA_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_RSA_SIGNING_CERT}, ++ #else ++ {"MISSING_RSA_SIGNING_CERT", 20, 170}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGALGS_EXTENSION ++ {"MISSING_SIGALGS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SIGALGS_EXTENSION}, ++ #else ++ {"MISSING_SIGALGS_EXTENSION", 20, 112}, ++ #endif ++ #ifdef SSL_R_MISSING_SIGNING_CERT ++ {"MISSING_SIGNING_CERT", ERR_LIB_SSL, SSL_R_MISSING_SIGNING_CERT}, ++ #else ++ {"MISSING_SIGNING_CERT", 20, 221}, ++ #endif ++ #ifdef SSL_R_MISSING_SRP_PARAM ++ {"MISSING_SRP_PARAM", ERR_LIB_SSL, SSL_R_MISSING_SRP_PARAM}, ++ #else ++ {"MISSING_SRP_PARAM", 20, 358}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_GROUPS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_GROUPS_EXTENSION", 20, 209}, ++ #endif ++ #ifdef SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", ERR_LIB_SSL, SSL_R_MISSING_SUPPORTED_VERSIONS_EXTENSION}, ++ #else ++ {"MISSING_SUPPORTED_VERSIONS_EXTENSION", 20, 420}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_DH_KEY ++ {"MISSING_TMP_DH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_DH_KEY}, ++ #else ++ {"MISSING_TMP_DH_KEY", 20, 171}, ++ #endif ++ #ifdef SSL_R_MISSING_TMP_ECDH_KEY ++ {"MISSING_TMP_ECDH_KEY", ERR_LIB_SSL, SSL_R_MISSING_TMP_ECDH_KEY}, ++ #else ++ {"MISSING_TMP_ECDH_KEY", 20, 311}, ++ #endif ++ #ifdef SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", ERR_LIB_SSL, SSL_R_MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA}, ++ #else ++ {"MIXED_HANDSHAKE_AND_NON_HANDSHAKE_DATA", 20, 293}, ++ #endif ++ #ifdef SSL_R_NOT_ON_RECORD_BOUNDARY ++ {"NOT_ON_RECORD_BOUNDARY", ERR_LIB_SSL, SSL_R_NOT_ON_RECORD_BOUNDARY}, ++ #else ++ {"NOT_ON_RECORD_BOUNDARY", 20, 182}, ++ #endif ++ #ifdef SSL_R_NOT_REPLACING_CERTIFICATE ++ {"NOT_REPLACING_CERTIFICATE", ERR_LIB_SSL, SSL_R_NOT_REPLACING_CERTIFICATE}, ++ #else ++ {"NOT_REPLACING_CERTIFICATE", 20, 289}, ++ #endif ++ #ifdef SSL_R_NOT_SERVER ++ {"NOT_SERVER", ERR_LIB_SSL, SSL_R_NOT_SERVER}, ++ #else ++ {"NOT_SERVER", 20, 284}, ++ #endif ++ #ifdef SSL_R_NO_APPLICATION_PROTOCOL ++ {"NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"NO_APPLICATION_PROTOCOL", 20, 235}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATES_RETURNED ++ {"NO_CERTIFICATES_RETURNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATES_RETURNED}, ++ #else ++ {"NO_CERTIFICATES_RETURNED", 20, 176}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_ASSIGNED ++ {"NO_CERTIFICATE_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_ASSIGNED}, ++ #else ++ {"NO_CERTIFICATE_ASSIGNED", 20, 177}, ++ #endif ++ #ifdef SSL_R_NO_CERTIFICATE_SET ++ {"NO_CERTIFICATE_SET", ERR_LIB_SSL, SSL_R_NO_CERTIFICATE_SET}, ++ #else ++ {"NO_CERTIFICATE_SET", 20, 179}, ++ #endif ++ #ifdef SSL_R_NO_CHANGE_FOLLOWING_HRR ++ {"NO_CHANGE_FOLLOWING_HRR", ERR_LIB_SSL, SSL_R_NO_CHANGE_FOLLOWING_HRR}, ++ #else ++ {"NO_CHANGE_FOLLOWING_HRR", 20, 214}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_AVAILABLE ++ {"NO_CIPHERS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_CIPHERS_AVAILABLE}, ++ #else ++ {"NO_CIPHERS_AVAILABLE", 20, 181}, ++ #endif ++ #ifdef SSL_R_NO_CIPHERS_SPECIFIED ++ {"NO_CIPHERS_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_CIPHERS_SPECIFIED}, ++ #else ++ {"NO_CIPHERS_SPECIFIED", 20, 183}, ++ #endif ++ #ifdef SSL_R_NO_CIPHER_MATCH ++ {"NO_CIPHER_MATCH", ERR_LIB_SSL, SSL_R_NO_CIPHER_MATCH}, ++ #else ++ {"NO_CIPHER_MATCH", 20, 185}, ++ #endif ++ #ifdef SSL_R_NO_CLIENT_CERT_METHOD ++ {"NO_CLIENT_CERT_METHOD", ERR_LIB_SSL, SSL_R_NO_CLIENT_CERT_METHOD}, ++ #else ++ {"NO_CLIENT_CERT_METHOD", 20, 331}, ++ #endif ++ #ifdef SSL_R_NO_COMPRESSION_SPECIFIED ++ {"NO_COMPRESSION_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_COMPRESSION_SPECIFIED}, ++ #else ++ {"NO_COMPRESSION_SPECIFIED", 20, 187}, ++ #endif ++ #ifdef SSL_R_NO_COOKIE_CALLBACK_SET ++ {"NO_COOKIE_CALLBACK_SET", ERR_LIB_SSL, SSL_R_NO_COOKIE_CALLBACK_SET}, ++ #else ++ {"NO_COOKIE_CALLBACK_SET", 20, 287}, ++ #endif ++ #ifdef SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", ERR_LIB_SSL, SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER}, ++ #else ++ {"NO_GOST_CERTIFICATE_SENT_BY_PEER", 20, 330}, ++ #endif ++ #ifdef SSL_R_NO_METHOD_SPECIFIED ++ {"NO_METHOD_SPECIFIED", ERR_LIB_SSL, SSL_R_NO_METHOD_SPECIFIED}, ++ #else ++ {"NO_METHOD_SPECIFIED", 20, 188}, ++ #endif ++ #ifdef SSL_R_NO_PEM_EXTENSIONS ++ {"NO_PEM_EXTENSIONS", ERR_LIB_SSL, SSL_R_NO_PEM_EXTENSIONS}, ++ #else ++ {"NO_PEM_EXTENSIONS", 20, 389}, ++ #endif ++ #ifdef SSL_R_NO_PRIVATE_KEY_ASSIGNED ++ {"NO_PRIVATE_KEY_ASSIGNED", ERR_LIB_SSL, SSL_R_NO_PRIVATE_KEY_ASSIGNED}, ++ #else ++ {"NO_PRIVATE_KEY_ASSIGNED", 20, 190}, ++ #endif ++ #ifdef SSL_R_NO_PROTOCOLS_AVAILABLE ++ {"NO_PROTOCOLS_AVAILABLE", ERR_LIB_SSL, SSL_R_NO_PROTOCOLS_AVAILABLE}, ++ #else ++ {"NO_PROTOCOLS_AVAILABLE", 20, 191}, ++ #endif ++ #ifdef SSL_R_NO_RENEGOTIATION ++ {"NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_NO_RENEGOTIATION}, ++ #else ++ {"NO_RENEGOTIATION", 20, 339}, ++ #endif ++ #ifdef SSL_R_NO_REQUIRED_DIGEST ++ {"NO_REQUIRED_DIGEST", ERR_LIB_SSL, SSL_R_NO_REQUIRED_DIGEST}, ++ #else ++ {"NO_REQUIRED_DIGEST", 20, 324}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_CIPHER ++ {"NO_SHARED_CIPHER", ERR_LIB_SSL, SSL_R_NO_SHARED_CIPHER}, ++ #else ++ {"NO_SHARED_CIPHER", 20, 193}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_GROUPS ++ {"NO_SHARED_GROUPS", ERR_LIB_SSL, SSL_R_NO_SHARED_GROUPS}, ++ #else ++ {"NO_SHARED_GROUPS", 20, 410}, ++ #endif ++ #ifdef SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", ERR_LIB_SSL, SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS}, ++ #else ++ {"NO_SHARED_SIGNATURE_ALGORITHMS", 20, 376}, ++ #endif ++ #ifdef SSL_R_NO_SRTP_PROFILES ++ {"NO_SRTP_PROFILES", ERR_LIB_SSL, SSL_R_NO_SRTP_PROFILES}, ++ #else ++ {"NO_SRTP_PROFILES", 20, 359}, ++ #endif ++ #ifdef SSL_R_NO_STREAM ++ {"NO_STREAM", ERR_LIB_SSL, SSL_R_NO_STREAM}, ++ #else ++ {"NO_STREAM", 20, 355}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_DIGEST_ALGORITHM ++ {"NO_SUITABLE_DIGEST_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_DIGEST_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_DIGEST_ALGORITHM", 20, 297}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_GROUPS ++ {"NO_SUITABLE_GROUPS", ERR_LIB_SSL, SSL_R_NO_SUITABLE_GROUPS}, ++ #else ++ {"NO_SUITABLE_GROUPS", 20, 295}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_KEY_SHARE ++ {"NO_SUITABLE_KEY_SHARE", ERR_LIB_SSL, SSL_R_NO_SUITABLE_KEY_SHARE}, ++ #else ++ {"NO_SUITABLE_KEY_SHARE", 20, 101}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_RECORD_LAYER ++ {"NO_SUITABLE_RECORD_LAYER", ERR_LIB_SSL, SSL_R_NO_SUITABLE_RECORD_LAYER}, ++ #else ++ {"NO_SUITABLE_RECORD_LAYER", 20, 322}, ++ #endif ++ #ifdef SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", ERR_LIB_SSL, SSL_R_NO_SUITABLE_SIGNATURE_ALGORITHM}, ++ #else ++ {"NO_SUITABLE_SIGNATURE_ALGORITHM", 20, 118}, ++ #endif ++ #ifdef SSL_R_NO_VALID_SCTS ++ {"NO_VALID_SCTS", ERR_LIB_SSL, SSL_R_NO_VALID_SCTS}, ++ #else ++ {"NO_VALID_SCTS", 20, 216}, ++ #endif ++ #ifdef SSL_R_NO_VERIFY_COOKIE_CALLBACK ++ {"NO_VERIFY_COOKIE_CALLBACK", ERR_LIB_SSL, SSL_R_NO_VERIFY_COOKIE_CALLBACK}, ++ #else ++ {"NO_VERIFY_COOKIE_CALLBACK", 20, 403}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_CTX ++ {"NULL_SSL_CTX", ERR_LIB_SSL, SSL_R_NULL_SSL_CTX}, ++ #else ++ {"NULL_SSL_CTX", 20, 195}, ++ #endif ++ #ifdef SSL_R_NULL_SSL_METHOD_PASSED ++ {"NULL_SSL_METHOD_PASSED", ERR_LIB_SSL, SSL_R_NULL_SSL_METHOD_PASSED}, ++ #else ++ {"NULL_SSL_METHOD_PASSED", 20, 196}, ++ #endif ++ #ifdef SSL_R_OCSP_CALLBACK_FAILURE ++ {"OCSP_CALLBACK_FAILURE", ERR_LIB_SSL, SSL_R_OCSP_CALLBACK_FAILURE}, ++ #else ++ {"OCSP_CALLBACK_FAILURE", 20, 305}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_CIPHER_NOT_RETURNED", 20, 197}, ++ #endif ++ #ifdef SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", ERR_LIB_SSL, SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED}, ++ #else ++ {"OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED", 20, 344}, ++ #endif ++ #ifdef SSL_R_OVERFLOW_ERROR ++ {"OVERFLOW_ERROR", ERR_LIB_SSL, SSL_R_OVERFLOW_ERROR}, ++ #else ++ {"OVERFLOW_ERROR", 20, 237}, ++ #endif ++ #ifdef SSL_R_PACKET_LENGTH_TOO_LONG ++ {"PACKET_LENGTH_TOO_LONG", ERR_LIB_SSL, SSL_R_PACKET_LENGTH_TOO_LONG}, ++ #else ++ {"PACKET_LENGTH_TOO_LONG", 20, 198}, ++ #endif ++ #ifdef SSL_R_PARSE_TLSEXT ++ {"PARSE_TLSEXT", ERR_LIB_SSL, SSL_R_PARSE_TLSEXT}, ++ #else ++ {"PARSE_TLSEXT", 20, 227}, ++ #endif ++ #ifdef SSL_R_PATH_TOO_LONG ++ {"PATH_TOO_LONG", ERR_LIB_SSL, SSL_R_PATH_TOO_LONG}, ++ #else ++ {"PATH_TOO_LONG", 20, 270}, ++ #endif ++ #ifdef SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", ERR_LIB_SSL, SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE}, ++ #else ++ {"PEER_DID_NOT_RETURN_A_CERTIFICATE", 20, 199}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_BAD_PREFIX ++ {"PEM_NAME_BAD_PREFIX", ERR_LIB_SSL, SSL_R_PEM_NAME_BAD_PREFIX}, ++ #else ++ {"PEM_NAME_BAD_PREFIX", 20, 391}, ++ #endif ++ #ifdef SSL_R_PEM_NAME_TOO_SHORT ++ {"PEM_NAME_TOO_SHORT", ERR_LIB_SSL, SSL_R_PEM_NAME_TOO_SHORT}, ++ #else ++ {"PEM_NAME_TOO_SHORT", 20, 392}, ++ #endif ++ #ifdef SSL_R_PIPELINE_FAILURE ++ {"PIPELINE_FAILURE", ERR_LIB_SSL, SSL_R_PIPELINE_FAILURE}, ++ #else ++ {"PIPELINE_FAILURE", 20, 406}, ++ #endif ++ #ifdef SSL_R_POLL_REQUEST_NOT_SUPPORTED ++ {"POLL_REQUEST_NOT_SUPPORTED", ERR_LIB_SSL, SSL_R_POLL_REQUEST_NOT_SUPPORTED}, ++ #else ++ {"POLL_REQUEST_NOT_SUPPORTED", 20, 418}, ++ #endif ++ #ifdef SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", ERR_LIB_SSL, SSL_R_POST_HANDSHAKE_AUTH_ENCODING_ERR}, ++ #else ++ {"POST_HANDSHAKE_AUTH_ENCODING_ERR", 20, 278}, ++ #endif ++ #ifdef SSL_R_PRIVATE_KEY_MISMATCH ++ {"PRIVATE_KEY_MISMATCH", ERR_LIB_SSL, SSL_R_PRIVATE_KEY_MISMATCH}, ++ #else ++ {"PRIVATE_KEY_MISMATCH", 20, 288}, ++ #endif ++ #ifdef SSL_R_PROTOCOL_IS_SHUTDOWN ++ {"PROTOCOL_IS_SHUTDOWN", ERR_LIB_SSL, SSL_R_PROTOCOL_IS_SHUTDOWN}, ++ #else ++ {"PROTOCOL_IS_SHUTDOWN", 20, 207}, ++ #endif ++ #ifdef SSL_R_PSK_IDENTITY_NOT_FOUND ++ {"PSK_IDENTITY_NOT_FOUND", ERR_LIB_SSL, SSL_R_PSK_IDENTITY_NOT_FOUND}, ++ #else ++ {"PSK_IDENTITY_NOT_FOUND", 20, 223}, ++ #endif ++ #ifdef SSL_R_PSK_NO_CLIENT_CB ++ {"PSK_NO_CLIENT_CB", ERR_LIB_SSL, SSL_R_PSK_NO_CLIENT_CB}, ++ #else ++ {"PSK_NO_CLIENT_CB", 20, 224}, ++ #endif ++ #ifdef SSL_R_PSK_NO_SERVER_CB ++ {"PSK_NO_SERVER_CB", ERR_LIB_SSL, SSL_R_PSK_NO_SERVER_CB}, ++ #else ++ {"PSK_NO_SERVER_CB", 20, 225}, ++ #endif ++ #ifdef SSL_R_QUIC_HANDSHAKE_LAYER_ERROR ++ {"QUIC_HANDSHAKE_LAYER_ERROR", ERR_LIB_SSL, SSL_R_QUIC_HANDSHAKE_LAYER_ERROR}, ++ #else ++ {"QUIC_HANDSHAKE_LAYER_ERROR", 20, 393}, ++ #endif ++ #ifdef SSL_R_QUIC_NETWORK_ERROR ++ {"QUIC_NETWORK_ERROR", ERR_LIB_SSL, SSL_R_QUIC_NETWORK_ERROR}, ++ #else ++ {"QUIC_NETWORK_ERROR", 20, 387}, ++ #endif ++ #ifdef SSL_R_QUIC_PROTOCOL_ERROR ++ {"QUIC_PROTOCOL_ERROR", ERR_LIB_SSL, SSL_R_QUIC_PROTOCOL_ERROR}, ++ #else ++ {"QUIC_PROTOCOL_ERROR", 20, 382}, ++ #endif ++ #ifdef SSL_R_READ_BIO_NOT_SET ++ {"READ_BIO_NOT_SET", ERR_LIB_SSL, SSL_R_READ_BIO_NOT_SET}, ++ #else ++ {"READ_BIO_NOT_SET", 20, 211}, ++ #endif ++ #ifdef SSL_R_READ_TIMEOUT_EXPIRED ++ {"READ_TIMEOUT_EXPIRED", ERR_LIB_SSL, SSL_R_READ_TIMEOUT_EXPIRED}, ++ #else ++ {"READ_TIMEOUT_EXPIRED", 20, 312}, ++ #endif ++ #ifdef SSL_R_RECORDS_NOT_RELEASED ++ {"RECORDS_NOT_RELEASED", ERR_LIB_SSL, SSL_R_RECORDS_NOT_RELEASED}, ++ #else ++ {"RECORDS_NOT_RELEASED", 20, 321}, ++ #endif ++ #ifdef SSL_R_RECORD_LAYER_FAILURE ++ {"RECORD_LAYER_FAILURE", ERR_LIB_SSL, SSL_R_RECORD_LAYER_FAILURE}, ++ #else ++ {"RECORD_LAYER_FAILURE", 20, 313}, ++ #endif ++ #ifdef SSL_R_RECORD_LENGTH_MISMATCH ++ {"RECORD_LENGTH_MISMATCH", ERR_LIB_SSL, SSL_R_RECORD_LENGTH_MISMATCH}, ++ #else ++ {"RECORD_LENGTH_MISMATCH", 20, 213}, ++ #endif ++ #ifdef SSL_R_RECORD_TOO_SMALL ++ {"RECORD_TOO_SMALL", ERR_LIB_SSL, SSL_R_RECORD_TOO_SMALL}, ++ #else ++ {"RECORD_TOO_SMALL", 20, 298}, ++ #endif ++ #ifdef SSL_R_REMOTE_PEER_ADDRESS_NOT_SET ++ {"REMOTE_PEER_ADDRESS_NOT_SET", ERR_LIB_SSL, SSL_R_REMOTE_PEER_ADDRESS_NOT_SET}, ++ #else ++ {"REMOTE_PEER_ADDRESS_NOT_SET", 20, 346}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG ++ {"RENEGOTIATE_EXT_TOO_LONG", ERR_LIB_SSL, SSL_R_RENEGOTIATE_EXT_TOO_LONG}, ++ #else ++ {"RENEGOTIATE_EXT_TOO_LONG", 20, 335}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_ENCODING_ERR ++ {"RENEGOTIATION_ENCODING_ERR", ERR_LIB_SSL, SSL_R_RENEGOTIATION_ENCODING_ERR}, ++ #else ++ {"RENEGOTIATION_ENCODING_ERR", 20, 336}, ++ #endif ++ #ifdef SSL_R_RENEGOTIATION_MISMATCH ++ {"RENEGOTIATION_MISMATCH", ERR_LIB_SSL, SSL_R_RENEGOTIATION_MISMATCH}, ++ #else ++ {"RENEGOTIATION_MISMATCH", 20, 337}, ++ #endif ++ #ifdef SSL_R_REQUEST_PENDING ++ {"REQUEST_PENDING", ERR_LIB_SSL, SSL_R_REQUEST_PENDING}, ++ #else ++ {"REQUEST_PENDING", 20, 285}, ++ #endif ++ #ifdef SSL_R_REQUEST_SENT ++ {"REQUEST_SENT", ERR_LIB_SSL, SSL_R_REQUEST_SENT}, ++ #else ++ {"REQUEST_SENT", 20, 286}, ++ #endif ++ #ifdef SSL_R_REQUIRED_CIPHER_MISSING ++ {"REQUIRED_CIPHER_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_CIPHER_MISSING}, ++ #else ++ {"REQUIRED_CIPHER_MISSING", 20, 215}, ++ #endif ++ #ifdef SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", ERR_LIB_SSL, SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING}, ++ #else ++ {"REQUIRED_COMPRESSION_ALGORITHM_MISSING", 20, 342}, ++ #endif ++ #ifdef SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", ERR_LIB_SSL, SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING}, ++ #else ++ {"SCSV_RECEIVED_WHEN_RENEGOTIATING", 20, 345}, ++ #endif ++ #ifdef SSL_R_SCT_VERIFICATION_FAILED ++ {"SCT_VERIFICATION_FAILED", ERR_LIB_SSL, SSL_R_SCT_VERIFICATION_FAILED}, ++ #else ++ {"SCT_VERIFICATION_FAILED", 20, 208}, ++ #endif ++ #ifdef SSL_R_SEQUENCE_CTR_WRAPPED ++ {"SEQUENCE_CTR_WRAPPED", ERR_LIB_SSL, SSL_R_SEQUENCE_CTR_WRAPPED}, ++ #else ++ {"SEQUENCE_CTR_WRAPPED", 20, 327}, ++ #endif ++ #ifdef SSL_R_SERVERHELLO_TLSEXT ++ {"SERVERHELLO_TLSEXT", ERR_LIB_SSL, SSL_R_SERVERHELLO_TLSEXT}, ++ #else ++ {"SERVERHELLO_TLSEXT", 20, 275}, ++ #endif ++ #ifdef SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", ERR_LIB_SSL, SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED}, ++ #else ++ {"SESSION_ID_CONTEXT_UNINITIALIZED", 20, 277}, ++ #endif ++ #ifdef SSL_R_SHUTDOWN_WHILE_IN_INIT ++ {"SHUTDOWN_WHILE_IN_INIT", ERR_LIB_SSL, SSL_R_SHUTDOWN_WHILE_IN_INIT}, ++ #else ++ {"SHUTDOWN_WHILE_IN_INIT", 20, 407}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_ALGORITHMS_ERROR ++ {"SIGNATURE_ALGORITHMS_ERROR", ERR_LIB_SSL, SSL_R_SIGNATURE_ALGORITHMS_ERROR}, ++ #else ++ {"SIGNATURE_ALGORITHMS_ERROR", 20, 360}, ++ #endif ++ #ifdef SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", ERR_LIB_SSL, SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE}, ++ #else ++ {"SIGNATURE_FOR_NON_SIGNING_CERTIFICATE", 20, 220}, ++ #endif ++ #ifdef SSL_R_SRP_A_CALC ++ {"SRP_A_CALC", ERR_LIB_SSL, SSL_R_SRP_A_CALC}, ++ #else ++ {"SRP_A_CALC", 20, 361}, ++ #endif ++ #ifdef SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", ERR_LIB_SSL, SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES}, ++ #else ++ {"SRTP_COULD_NOT_ALLOCATE_PROFILES", 20, 362}, ++ #endif ++ #ifdef SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", ERR_LIB_SSL, SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG}, ++ #else ++ {"SRTP_PROTECTION_PROFILE_LIST_TOO_LONG", 20, 363}, ++ #endif ++ #ifdef SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", ERR_LIB_SSL, SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE}, ++ #else ++ {"SRTP_UNKNOWN_PROTECTION_PROFILE", 20, 364}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_EMPTY ++ {"SSL_COMMAND_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_EMPTY}, ++ #else ++ {"SSL_COMMAND_SECTION_EMPTY", 20, 117}, ++ #endif ++ #ifdef SSL_R_SSL_COMMAND_SECTION_NOT_FOUND ++ {"SSL_COMMAND_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_COMMAND_SECTION_NOT_FOUND", 20, 125}, ++ #endif ++ #ifdef SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", ERR_LIB_SSL, SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION}, ++ #else ++ {"SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION", 20, 228}, ++ #endif ++ #ifdef SSL_R_SSL_HANDSHAKE_FAILURE ++ {"SSL_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_SSL_HANDSHAKE_FAILURE}, ++ #else ++ {"SSL_HANDSHAKE_FAILURE", 20, 229}, ++ #endif ++ #ifdef SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", ERR_LIB_SSL, SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS}, ++ #else ++ {"SSL_LIBRARY_HAS_NO_CIPHERS", 20, 230}, ++ #endif ++ #ifdef SSL_R_SSL_NEGATIVE_LENGTH ++ {"SSL_NEGATIVE_LENGTH", ERR_LIB_SSL, SSL_R_SSL_NEGATIVE_LENGTH}, ++ #else ++ {"SSL_NEGATIVE_LENGTH", 20, 372}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_EMPTY ++ {"SSL_SECTION_EMPTY", ERR_LIB_SSL, SSL_R_SSL_SECTION_EMPTY}, ++ #else ++ {"SSL_SECTION_EMPTY", 20, 126}, ++ #endif ++ #ifdef SSL_R_SSL_SECTION_NOT_FOUND ++ {"SSL_SECTION_NOT_FOUND", ERR_LIB_SSL, SSL_R_SSL_SECTION_NOT_FOUND}, ++ #else ++ {"SSL_SECTION_NOT_FOUND", 20, 136}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CALLBACK_FAILED ++ {"SSL_SESSION_ID_CALLBACK_FAILED", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CALLBACK_FAILED}, ++ #else ++ {"SSL_SESSION_ID_CALLBACK_FAILED", 20, 301}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONFLICT ++ {"SSL_SESSION_ID_CONFLICT", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONFLICT}, ++ #else ++ {"SSL_SESSION_ID_CONFLICT", 20, 302}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_CONTEXT_TOO_LONG", 20, 273}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH}, ++ #else ++ {"SSL_SESSION_ID_HAS_BAD_LENGTH", 20, 303}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_ID_TOO_LONG ++ {"SSL_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_SSL_SESSION_ID_TOO_LONG}, ++ #else ++ {"SSL_SESSION_ID_TOO_LONG", 20, 408}, ++ #endif ++ #ifdef SSL_R_SSL_SESSION_VERSION_MISMATCH ++ {"SSL_SESSION_VERSION_MISMATCH", ERR_LIB_SSL, SSL_R_SSL_SESSION_VERSION_MISMATCH}, ++ #else ++ {"SSL_SESSION_VERSION_MISMATCH", 20, 210}, ++ #endif ++ #ifdef SSL_R_STILL_IN_INIT ++ {"STILL_IN_INIT", ERR_LIB_SSL, SSL_R_STILL_IN_INIT}, ++ #else ++ {"STILL_IN_INIT", 20, 121}, ++ #endif ++ #ifdef SSL_R_STREAM_COUNT_LIMITED ++ {"STREAM_COUNT_LIMITED", ERR_LIB_SSL, SSL_R_STREAM_COUNT_LIMITED}, ++ #else ++ {"STREAM_COUNT_LIMITED", 20, 411}, ++ #endif ++ #ifdef SSL_R_STREAM_FINISHED ++ {"STREAM_FINISHED", ERR_LIB_SSL, SSL_R_STREAM_FINISHED}, ++ #else ++ {"STREAM_FINISHED", 20, 365}, ++ #endif ++ #ifdef SSL_R_STREAM_RECV_ONLY ++ {"STREAM_RECV_ONLY", ERR_LIB_SSL, SSL_R_STREAM_RECV_ONLY}, ++ #else ++ {"STREAM_RECV_ONLY", 20, 366}, ++ #endif ++ #ifdef SSL_R_STREAM_RESET ++ {"STREAM_RESET", ERR_LIB_SSL, SSL_R_STREAM_RESET}, ++ #else ++ {"STREAM_RESET", 20, 375}, ++ #endif ++ #ifdef SSL_R_STREAM_SEND_ONLY ++ {"STREAM_SEND_ONLY", ERR_LIB_SSL, SSL_R_STREAM_SEND_ONLY}, ++ #else ++ {"STREAM_SEND_ONLY", 20, 379}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_CERTIFICATE_REQUIRED}, ++ #else ++ {"TLSV13_ALERT_CERTIFICATE_REQUIRED", 20, 1116}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV13_ALERT_MISSING_EXTENSION ++ {"TLSV13_ALERT_MISSING_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV13_ALERT_MISSING_EXTENSION}, ++ #else ++ {"TLSV13_ALERT_MISSING_EXTENSION", 20, 1109}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_ACCESS_DENIED ++ {"TLSV1_ALERT_ACCESS_DENIED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_ACCESS_DENIED}, ++ #else ++ {"TLSV1_ALERT_ACCESS_DENIED", 20, 1049}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECODE_ERROR ++ {"TLSV1_ALERT_DECODE_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECODE_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECODE_ERROR", 20, 1050}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPTION_FAILED ++ {"TLSV1_ALERT_DECRYPTION_FAILED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPTION_FAILED}, ++ #else ++ {"TLSV1_ALERT_DECRYPTION_FAILED", 20, 1021}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_DECRYPT_ERROR ++ {"TLSV1_ALERT_DECRYPT_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_DECRYPT_ERROR}, ++ #else ++ {"TLSV1_ALERT_DECRYPT_ERROR", 20, 1051}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION}, ++ #else ++ {"TLSV1_ALERT_EXPORT_RESTRICTION", 20, 1060}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK}, ++ #else ++ {"TLSV1_ALERT_INAPPROPRIATE_FALLBACK", 20, 1086}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY}, ++ #else ++ {"TLSV1_ALERT_INSUFFICIENT_SECURITY", 20, 1071}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_INTERNAL_ERROR ++ {"TLSV1_ALERT_INTERNAL_ERROR", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_INTERNAL_ERROR}, ++ #else ++ {"TLSV1_ALERT_INTERNAL_ERROR", 20, 1080}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_APPLICATION_PROTOCOL}, ++ #else ++ {"TLSV1_ALERT_NO_APPLICATION_PROTOCOL", 20, 1120}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_NO_RENEGOTIATION ++ {"TLSV1_ALERT_NO_RENEGOTIATION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_NO_RENEGOTIATION}, ++ #else ++ {"TLSV1_ALERT_NO_RENEGOTIATION", 20, 1100}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_PROTOCOL_VERSION ++ {"TLSV1_ALERT_PROTOCOL_VERSION", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_PROTOCOL_VERSION}, ++ #else ++ {"TLSV1_ALERT_PROTOCOL_VERSION", 20, 1070}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_RECORD_OVERFLOW ++ {"TLSV1_ALERT_RECORD_OVERFLOW", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_RECORD_OVERFLOW}, ++ #else ++ {"TLSV1_ALERT_RECORD_OVERFLOW", 20, 1022}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_CA ++ {"TLSV1_ALERT_UNKNOWN_CA", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_CA}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_CA", 20, 1048}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_UNKNOWN_PSK_IDENTITY}, ++ #else ++ {"TLSV1_ALERT_UNKNOWN_PSK_IDENTITY", 20, 1115}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_ALERT_USER_CANCELLED ++ {"TLSV1_ALERT_USER_CANCELLED", ERR_LIB_SSL, SSL_R_TLSV1_ALERT_USER_CANCELLED}, ++ #else ++ {"TLSV1_ALERT_USER_CANCELLED", 20, 1090}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_HASH_VALUE", 20, 1114}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", ERR_LIB_SSL, SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE}, ++ #else ++ {"TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE", 20, 1113}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", ERR_LIB_SSL, SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE}, ++ #else ++ {"TLSV1_CERTIFICATE_UNOBTAINABLE", 20, 1111}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNRECOGNIZED_NAME ++ {"TLSV1_UNRECOGNIZED_NAME", ERR_LIB_SSL, SSL_R_TLSV1_UNRECOGNIZED_NAME}, ++ #else ++ {"TLSV1_UNRECOGNIZED_NAME", 20, 1112}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLSV1_UNSUPPORTED_EXTENSION ++ {"TLSV1_UNSUPPORTED_EXTENSION", ERR_LIB_SSL, SSL_R_TLSV1_UNSUPPORTED_EXTENSION}, ++ #else ++ {"TLSV1_UNSUPPORTED_EXTENSION", 20, 1110}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_CERTIFICATE ++ {"TLS_ALERT_BAD_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_BAD_CERTIFICATE", 20, 1042}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_BAD_RECORD_MAC ++ {"TLS_ALERT_BAD_RECORD_MAC", ERR_LIB_SSL, SSL_R_TLS_ALERT_BAD_RECORD_MAC}, ++ #else ++ {"TLS_ALERT_BAD_RECORD_MAC", 20, 1020}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_EXPIRED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_EXPIRED", 20, 1045}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_REVOKED ++ {"TLS_ALERT_CERTIFICATE_REVOKED", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_REVOKED}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_REVOKED", 20, 1044}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", ERR_LIB_SSL, SSL_R_TLS_ALERT_CERTIFICATE_UNKNOWN}, ++ #else ++ {"TLS_ALERT_CERTIFICATE_UNKNOWN", 20, 1046}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_DECOMPRESSION_FAILURE}, ++ #else ++ {"TLS_ALERT_DECOMPRESSION_FAILURE", 20, 1030}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_HANDSHAKE_FAILURE ++ {"TLS_ALERT_HANDSHAKE_FAILURE", ERR_LIB_SSL, SSL_R_TLS_ALERT_HANDSHAKE_FAILURE}, ++ #else ++ {"TLS_ALERT_HANDSHAKE_FAILURE", 20, 1040}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_ILLEGAL_PARAMETER ++ {"TLS_ALERT_ILLEGAL_PARAMETER", ERR_LIB_SSL, SSL_R_TLS_ALERT_ILLEGAL_PARAMETER}, ++ #else ++ {"TLS_ALERT_ILLEGAL_PARAMETER", 20, 1047}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_NO_CERTIFICATE ++ {"TLS_ALERT_NO_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_NO_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_NO_CERTIFICATE", 20, 1041}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNEXPECTED_MESSAGE}, ++ #else ++ {"TLS_ALERT_UNEXPECTED_MESSAGE", 20, 1010}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", ERR_LIB_SSL, SSL_R_TLS_ALERT_UNSUPPORTED_CERTIFICATE}, ++ #else ++ {"TLS_ALERT_UNSUPPORTED_CERTIFICATE", 20, 1043}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH}, ++ #else ++ {"TLS_EXT_INVALID_MAX_FRAGMENT_LENGTH", 20, 232}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME ++ {"TLS_EXT_INVALID_SERVERNAME", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME", 20, 319}, ++ #endif ++ #ifdef SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", ERR_LIB_SSL, SSL_R_TLS_EXT_INVALID_SERVERNAME_TYPE}, ++ #else ++ {"TLS_EXT_INVALID_SERVERNAME_TYPE", 20, 320}, ++ #endif ++ #ifdef SSL_R_TLS_ILLEGAL_EXPORTER_LABEL ++ {"TLS_ILLEGAL_EXPORTER_LABEL", ERR_LIB_SSL, SSL_R_TLS_ILLEGAL_EXPORTER_LABEL}, ++ #else ++ {"TLS_ILLEGAL_EXPORTER_LABEL", 20, 367}, ++ #endif ++ #ifdef SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", ERR_LIB_SSL, SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST}, ++ #else ++ {"TLS_INVALID_ECPOINTFORMAT_LIST", 20, 157}, ++ #endif ++ #ifdef SSL_R_TLS_SESSION_ID_TOO_LONG ++ {"TLS_SESSION_ID_TOO_LONG", ERR_LIB_SSL, SSL_R_TLS_SESSION_ID_TOO_LONG}, ++ #else ++ {"TLS_SESSION_ID_TOO_LONG", 20, 300}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_KEY_UPDATES ++ {"TOO_MANY_KEY_UPDATES", ERR_LIB_SSL, SSL_R_TOO_MANY_KEY_UPDATES}, ++ #else ++ {"TOO_MANY_KEY_UPDATES", 20, 132}, ++ #endif ++ #ifdef SSL_R_TOO_MANY_WARN_ALERTS ++ {"TOO_MANY_WARN_ALERTS", ERR_LIB_SSL, SSL_R_TOO_MANY_WARN_ALERTS}, ++ #else ++ {"TOO_MANY_WARN_ALERTS", 20, 409}, ++ #endif ++ #ifdef SSL_R_TOO_MUCH_EARLY_DATA ++ {"TOO_MUCH_EARLY_DATA", ERR_LIB_SSL, SSL_R_TOO_MUCH_EARLY_DATA}, ++ #else ++ {"TOO_MUCH_EARLY_DATA", 20, 164}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_ECDH_PARAMETERS", 20, 314}, ++ #endif ++ #ifdef SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", ERR_LIB_SSL, SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS}, ++ #else ++ {"UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS", 20, 239}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_CCS_MESSAGE ++ {"UNEXPECTED_CCS_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_CCS_MESSAGE}, ++ #else ++ {"UNEXPECTED_CCS_MESSAGE", 20, 262}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_END_OF_EARLY_DATA ++ {"UNEXPECTED_END_OF_EARLY_DATA", ERR_LIB_SSL, SSL_R_UNEXPECTED_END_OF_EARLY_DATA}, ++ #else ++ {"UNEXPECTED_END_OF_EARLY_DATA", 20, 178}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_EOF_WHILE_READING ++ {"UNEXPECTED_EOF_WHILE_READING", ERR_LIB_SSL, SSL_R_UNEXPECTED_EOF_WHILE_READING}, ++ #else ++ {"UNEXPECTED_EOF_WHILE_READING", 20, 294}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_MESSAGE ++ {"UNEXPECTED_MESSAGE", ERR_LIB_SSL, SSL_R_UNEXPECTED_MESSAGE}, ++ #else ++ {"UNEXPECTED_MESSAGE", 20, 244}, ++ #endif ++ #ifdef SSL_R_UNEXPECTED_RECORD ++ {"UNEXPECTED_RECORD", ERR_LIB_SSL, SSL_R_UNEXPECTED_RECORD}, ++ #else ++ {"UNEXPECTED_RECORD", 20, 245}, ++ #endif ++ #ifdef SSL_R_UNINITIALIZED ++ {"UNINITIALIZED", ERR_LIB_SSL, SSL_R_UNINITIALIZED}, ++ #else ++ {"UNINITIALIZED", 20, 276}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_ALERT_TYPE ++ {"UNKNOWN_ALERT_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_ALERT_TYPE}, ++ #else ++ {"UNKNOWN_ALERT_TYPE", 20, 246}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CERTIFICATE_TYPE ++ {"UNKNOWN_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CERTIFICATE_TYPE}, ++ #else ++ {"UNKNOWN_CERTIFICATE_TYPE", 20, 247}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_RETURNED ++ {"UNKNOWN_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_RETURNED}, ++ #else ++ {"UNKNOWN_CIPHER_RETURNED", 20, 248}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CIPHER_TYPE ++ {"UNKNOWN_CIPHER_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_CIPHER_TYPE}, ++ #else ++ {"UNKNOWN_CIPHER_TYPE", 20, 249}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_CMD_NAME ++ {"UNKNOWN_CMD_NAME", ERR_LIB_SSL, SSL_R_UNKNOWN_CMD_NAME}, ++ #else ++ {"UNKNOWN_CMD_NAME", 20, 386}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_COMMAND ++ {"UNKNOWN_COMMAND", ERR_LIB_SSL, SSL_R_UNKNOWN_COMMAND}, ++ #else ++ {"UNKNOWN_COMMAND", 20, 139}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_DIGEST ++ {"UNKNOWN_DIGEST", ERR_LIB_SSL, SSL_R_UNKNOWN_DIGEST}, ++ #else ++ {"UNKNOWN_DIGEST", 20, 368}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE}, ++ #else ++ {"UNKNOWN_KEY_EXCHANGE_TYPE", 20, 250}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_MANDATORY_PARAMETER ++ {"UNKNOWN_MANDATORY_PARAMETER", ERR_LIB_SSL, SSL_R_UNKNOWN_MANDATORY_PARAMETER}, ++ #else ++ {"UNKNOWN_MANDATORY_PARAMETER", 20, 323}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PKEY_TYPE ++ {"UNKNOWN_PKEY_TYPE", ERR_LIB_SSL, SSL_R_UNKNOWN_PKEY_TYPE}, ++ #else ++ {"UNKNOWN_PKEY_TYPE", 20, 251}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_PROTOCOL ++ {"UNKNOWN_PROTOCOL", ERR_LIB_SSL, SSL_R_UNKNOWN_PROTOCOL}, ++ #else ++ {"UNKNOWN_PROTOCOL", 20, 252}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_SSL_VERSION ++ {"UNKNOWN_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNKNOWN_SSL_VERSION}, ++ #else ++ {"UNKNOWN_SSL_VERSION", 20, 254}, ++ #endif ++ #ifdef SSL_R_UNKNOWN_STATE ++ {"UNKNOWN_STATE", ERR_LIB_SSL, SSL_R_UNKNOWN_STATE}, ++ #else ++ {"UNKNOWN_STATE", 20, 255}, ++ #endif ++ #ifdef SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", ERR_LIB_SSL, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED}, ++ #else ++ {"UNSAFE_LEGACY_RENEGOTIATION_DISABLED", 20, 338}, ++ #endif ++ #ifdef SSL_R_UNSOLICITED_EXTENSION ++ {"UNSOLICITED_EXTENSION", ERR_LIB_SSL, SSL_R_UNSOLICITED_EXTENSION}, ++ #else ++ {"UNSOLICITED_EXTENSION", 20, 217}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", ERR_LIB_SSL, SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_COMPRESSION_ALGORITHM", 20, 257}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE ++ {"UNSUPPORTED_CONFIG_VALUE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE", 20, 414}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_CLASS}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_CLASS", 20, 415}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_CONFIG_VALUE_OP ++ {"UNSUPPORTED_CONFIG_VALUE_OP", ERR_LIB_SSL, SSL_R_UNSUPPORTED_CONFIG_VALUE_OP}, ++ #else ++ {"UNSUPPORTED_CONFIG_VALUE_OP", 20, 416}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_ELLIPTIC_CURVE ++ {"UNSUPPORTED_ELLIPTIC_CURVE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_ELLIPTIC_CURVE}, ++ #else ++ {"UNSUPPORTED_ELLIPTIC_CURVE", 20, 315}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_PROTOCOL ++ {"UNSUPPORTED_PROTOCOL", ERR_LIB_SSL, SSL_R_UNSUPPORTED_PROTOCOL}, ++ #else ++ {"UNSUPPORTED_PROTOCOL", 20, 258}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_SSL_VERSION ++ {"UNSUPPORTED_SSL_VERSION", ERR_LIB_SSL, SSL_R_UNSUPPORTED_SSL_VERSION}, ++ #else ++ {"UNSUPPORTED_SSL_VERSION", 20, 259}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_STATUS_TYPE ++ {"UNSUPPORTED_STATUS_TYPE", ERR_LIB_SSL, SSL_R_UNSUPPORTED_STATUS_TYPE}, ++ #else ++ {"UNSUPPORTED_STATUS_TYPE", 20, 329}, ++ #endif ++ #ifdef SSL_R_UNSUPPORTED_WRITE_FLAG ++ {"UNSUPPORTED_WRITE_FLAG", ERR_LIB_SSL, SSL_R_UNSUPPORTED_WRITE_FLAG}, ++ #else ++ {"UNSUPPORTED_WRITE_FLAG", 20, 412}, ++ #endif ++ #ifdef SSL_R_USE_SRTP_NOT_NEGOTIATED ++ {"USE_SRTP_NOT_NEGOTIATED", ERR_LIB_SSL, SSL_R_USE_SRTP_NOT_NEGOTIATED}, ++ #else ++ {"USE_SRTP_NOT_NEGOTIATED", 20, 369}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_HIGH ++ {"VERSION_TOO_HIGH", ERR_LIB_SSL, SSL_R_VERSION_TOO_HIGH}, ++ #else ++ {"VERSION_TOO_HIGH", 20, 166}, ++ #endif ++ #ifdef SSL_R_VERSION_TOO_LOW ++ {"VERSION_TOO_LOW", ERR_LIB_SSL, SSL_R_VERSION_TOO_LOW}, ++ #else ++ {"VERSION_TOO_LOW", 20, 396}, ++ #endif ++ #ifdef SSL_R_WRONG_CERTIFICATE_TYPE ++ {"WRONG_CERTIFICATE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_CERTIFICATE_TYPE}, ++ #else ++ {"WRONG_CERTIFICATE_TYPE", 20, 383}, ++ #endif ++ #ifdef SSL_R_WRONG_CIPHER_RETURNED ++ {"WRONG_CIPHER_RETURNED", ERR_LIB_SSL, SSL_R_WRONG_CIPHER_RETURNED}, ++ #else ++ {"WRONG_CIPHER_RETURNED", 20, 261}, ++ #endif ++ #ifdef SSL_R_WRONG_CURVE ++ {"WRONG_CURVE", ERR_LIB_SSL, SSL_R_WRONG_CURVE}, ++ #else ++ {"WRONG_CURVE", 20, 378}, ++ #endif ++ #ifdef SSL_R_WRONG_RPK_TYPE ++ {"WRONG_RPK_TYPE", ERR_LIB_SSL, SSL_R_WRONG_RPK_TYPE}, ++ #else ++ {"WRONG_RPK_TYPE", 20, 351}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_LENGTH ++ {"WRONG_SIGNATURE_LENGTH", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_LENGTH}, ++ #else ++ {"WRONG_SIGNATURE_LENGTH", 20, 264}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_SIZE ++ {"WRONG_SIGNATURE_SIZE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_SIZE}, ++ #else ++ {"WRONG_SIGNATURE_SIZE", 20, 265}, ++ #endif ++ #ifdef SSL_R_WRONG_SIGNATURE_TYPE ++ {"WRONG_SIGNATURE_TYPE", ERR_LIB_SSL, SSL_R_WRONG_SIGNATURE_TYPE}, ++ #else ++ {"WRONG_SIGNATURE_TYPE", 20, 370}, ++ #endif ++ #ifdef SSL_R_WRONG_SSL_VERSION ++ {"WRONG_SSL_VERSION", ERR_LIB_SSL, SSL_R_WRONG_SSL_VERSION}, ++ #else ++ {"WRONG_SSL_VERSION", 20, 266}, ++ #endif ++ #ifdef SSL_R_WRONG_VERSION_NUMBER ++ {"WRONG_VERSION_NUMBER", ERR_LIB_SSL, SSL_R_WRONG_VERSION_NUMBER}, ++ #else ++ {"WRONG_VERSION_NUMBER", 20, 267}, ++ #endif ++ #ifdef SSL_R_X509_LIB ++ {"X509_LIB", ERR_LIB_SSL, SSL_R_X509_LIB}, ++ #else ++ {"X509_LIB", 20, 268}, ++ #endif ++ #ifdef SSL_R_X509_VERIFICATION_SETUP_PROBLEMS ++ {"X509_VERIFICATION_SETUP_PROBLEMS", ERR_LIB_SSL, SSL_R_X509_VERIFICATION_SETUP_PROBLEMS}, ++ #else ++ {"X509_VERIFICATION_SETUP_PROBLEMS", 20, 269}, ++ #endif ++ #ifdef TS_R_BAD_PKCS7_TYPE ++ {"BAD_PKCS7_TYPE", ERR_LIB_TS, TS_R_BAD_PKCS7_TYPE}, ++ #else ++ {"BAD_PKCS7_TYPE", 47, 132}, ++ #endif ++ #ifdef TS_R_BAD_TYPE ++ {"BAD_TYPE", ERR_LIB_TS, TS_R_BAD_TYPE}, ++ #else ++ {"BAD_TYPE", 47, 133}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_CERT ++ {"CANNOT_LOAD_CERT", ERR_LIB_TS, TS_R_CANNOT_LOAD_CERT}, ++ #else ++ {"CANNOT_LOAD_CERT", 47, 137}, ++ #endif ++ #ifdef TS_R_CANNOT_LOAD_KEY ++ {"CANNOT_LOAD_KEY", ERR_LIB_TS, TS_R_CANNOT_LOAD_KEY}, ++ #else ++ {"CANNOT_LOAD_KEY", 47, 138}, ++ #endif ++ #ifdef TS_R_CERTIFICATE_VERIFY_ERROR ++ {"CERTIFICATE_VERIFY_ERROR", ERR_LIB_TS, TS_R_CERTIFICATE_VERIFY_ERROR}, ++ #else ++ {"CERTIFICATE_VERIFY_ERROR", 47, 100}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_ENGINE ++ {"COULD_NOT_SET_ENGINE", ERR_LIB_TS, TS_R_COULD_NOT_SET_ENGINE}, ++ #else ++ {"COULD_NOT_SET_ENGINE", 47, 127}, ++ #endif ++ #ifdef TS_R_COULD_NOT_SET_TIME ++ {"COULD_NOT_SET_TIME", ERR_LIB_TS, TS_R_COULD_NOT_SET_TIME}, ++ #else ++ {"COULD_NOT_SET_TIME", 47, 115}, ++ #endif ++ #ifdef TS_R_DETACHED_CONTENT ++ {"DETACHED_CONTENT", ERR_LIB_TS, TS_R_DETACHED_CONTENT}, ++ #else ++ {"DETACHED_CONTENT", 47, 134}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_ERROR ++ {"ESS_ADD_SIGNING_CERT_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_ERROR", 47, 116}, ++ #endif ++ #ifdef TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", ERR_LIB_TS, TS_R_ESS_ADD_SIGNING_CERT_V2_ERROR}, ++ #else ++ {"ESS_ADD_SIGNING_CERT_V2_ERROR", 47, 139}, ++ #endif ++ #ifdef TS_R_ESS_SIGNING_CERTIFICATE_ERROR ++ {"ESS_SIGNING_CERTIFICATE_ERROR", ERR_LIB_TS, TS_R_ESS_SIGNING_CERTIFICATE_ERROR}, ++ #else ++ {"ESS_SIGNING_CERTIFICATE_ERROR", 47, 101}, ++ #endif ++ #ifdef TS_R_INVALID_NULL_POINTER ++ {"INVALID_NULL_POINTER", ERR_LIB_TS, TS_R_INVALID_NULL_POINTER}, ++ #else ++ {"INVALID_NULL_POINTER", 47, 102}, ++ #endif ++ #ifdef TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", ERR_LIB_TS, TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE}, ++ #else ++ {"INVALID_SIGNER_CERTIFICATE_PURPOSE", 47, 117}, ++ #endif ++ #ifdef TS_R_MESSAGE_IMPRINT_MISMATCH ++ {"MESSAGE_IMPRINT_MISMATCH", ERR_LIB_TS, TS_R_MESSAGE_IMPRINT_MISMATCH}, ++ #else ++ {"MESSAGE_IMPRINT_MISMATCH", 47, 103}, ++ #endif ++ #ifdef TS_R_NONCE_MISMATCH ++ {"NONCE_MISMATCH", ERR_LIB_TS, TS_R_NONCE_MISMATCH}, ++ #else ++ {"NONCE_MISMATCH", 47, 104}, ++ #endif ++ #ifdef TS_R_NONCE_NOT_RETURNED ++ {"NONCE_NOT_RETURNED", ERR_LIB_TS, TS_R_NONCE_NOT_RETURNED}, ++ #else ++ {"NONCE_NOT_RETURNED", 47, 105}, ++ #endif ++ #ifdef TS_R_NO_CONTENT ++ {"NO_CONTENT", ERR_LIB_TS, TS_R_NO_CONTENT}, ++ #else ++ {"NO_CONTENT", 47, 106}, ++ #endif ++ #ifdef TS_R_NO_TIME_STAMP_TOKEN ++ {"NO_TIME_STAMP_TOKEN", ERR_LIB_TS, TS_R_NO_TIME_STAMP_TOKEN}, ++ #else ++ {"NO_TIME_STAMP_TOKEN", 47, 107}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNATURE_ERROR ++ {"PKCS7_ADD_SIGNATURE_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNATURE_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNATURE_ERROR", 47, 118}, ++ #endif ++ #ifdef TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", ERR_LIB_TS, TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR}, ++ #else ++ {"PKCS7_ADD_SIGNED_ATTR_ERROR", 47, 119}, ++ #endif ++ #ifdef TS_R_PKCS7_TO_TS_TST_INFO_FAILED ++ {"PKCS7_TO_TS_TST_INFO_FAILED", ERR_LIB_TS, TS_R_PKCS7_TO_TS_TST_INFO_FAILED}, ++ #else ++ {"PKCS7_TO_TS_TST_INFO_FAILED", 47, 129}, ++ #endif ++ #ifdef TS_R_POLICY_MISMATCH ++ {"POLICY_MISMATCH", ERR_LIB_TS, TS_R_POLICY_MISMATCH}, ++ #else ++ {"POLICY_MISMATCH", 47, 108}, ++ #endif ++ #ifdef TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", ERR_LIB_TS, TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE}, ++ #else ++ {"PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE", 47, 120}, ++ #endif ++ #ifdef TS_R_RESPONSE_SETUP_ERROR ++ {"RESPONSE_SETUP_ERROR", ERR_LIB_TS, TS_R_RESPONSE_SETUP_ERROR}, ++ #else ++ {"RESPONSE_SETUP_ERROR", 47, 121}, ++ #endif ++ #ifdef TS_R_SIGNATURE_FAILURE ++ {"SIGNATURE_FAILURE", ERR_LIB_TS, TS_R_SIGNATURE_FAILURE}, ++ #else ++ {"SIGNATURE_FAILURE", 47, 109}, ++ #endif ++ #ifdef TS_R_THERE_MUST_BE_ONE_SIGNER ++ {"THERE_MUST_BE_ONE_SIGNER", ERR_LIB_TS, TS_R_THERE_MUST_BE_ONE_SIGNER}, ++ #else ++ {"THERE_MUST_BE_ONE_SIGNER", 47, 110}, ++ #endif ++ #ifdef TS_R_TIME_SYSCALL_ERROR ++ {"TIME_SYSCALL_ERROR", ERR_LIB_TS, TS_R_TIME_SYSCALL_ERROR}, ++ #else ++ {"TIME_SYSCALL_ERROR", 47, 122}, ++ #endif ++ #ifdef TS_R_TOKEN_NOT_PRESENT ++ {"TOKEN_NOT_PRESENT", ERR_LIB_TS, TS_R_TOKEN_NOT_PRESENT}, ++ #else ++ {"TOKEN_NOT_PRESENT", 47, 130}, ++ #endif ++ #ifdef TS_R_TOKEN_PRESENT ++ {"TOKEN_PRESENT", ERR_LIB_TS, TS_R_TOKEN_PRESENT}, ++ #else ++ {"TOKEN_PRESENT", 47, 131}, ++ #endif ++ #ifdef TS_R_TSA_NAME_MISMATCH ++ {"TSA_NAME_MISMATCH", ERR_LIB_TS, TS_R_TSA_NAME_MISMATCH}, ++ #else ++ {"TSA_NAME_MISMATCH", 47, 111}, ++ #endif ++ #ifdef TS_R_TSA_UNTRUSTED ++ {"TSA_UNTRUSTED", ERR_LIB_TS, TS_R_TSA_UNTRUSTED}, ++ #else ++ {"TSA_UNTRUSTED", 47, 112}, ++ #endif ++ #ifdef TS_R_TST_INFO_SETUP_ERROR ++ {"TST_INFO_SETUP_ERROR", ERR_LIB_TS, TS_R_TST_INFO_SETUP_ERROR}, ++ #else ++ {"TST_INFO_SETUP_ERROR", 47, 123}, ++ #endif ++ #ifdef TS_R_TS_DATASIGN ++ {"TS_DATASIGN", ERR_LIB_TS, TS_R_TS_DATASIGN}, ++ #else ++ {"TS_DATASIGN", 47, 124}, ++ #endif ++ #ifdef TS_R_UNACCEPTABLE_POLICY ++ {"UNACCEPTABLE_POLICY", ERR_LIB_TS, TS_R_UNACCEPTABLE_POLICY}, ++ #else ++ {"UNACCEPTABLE_POLICY", 47, 125}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_MD_ALGORITHM ++ {"UNSUPPORTED_MD_ALGORITHM", ERR_LIB_TS, TS_R_UNSUPPORTED_MD_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_MD_ALGORITHM", 47, 126}, ++ #endif ++ #ifdef TS_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_TS, TS_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 47, 113}, ++ #endif ++ #ifdef TS_R_VAR_BAD_VALUE ++ {"VAR_BAD_VALUE", ERR_LIB_TS, TS_R_VAR_BAD_VALUE}, ++ #else ++ {"VAR_BAD_VALUE", 47, 135}, ++ #endif ++ #ifdef TS_R_VAR_LOOKUP_FAILURE ++ {"VAR_LOOKUP_FAILURE", ERR_LIB_TS, TS_R_VAR_LOOKUP_FAILURE}, ++ #else ++ {"VAR_LOOKUP_FAILURE", 47, 136}, ++ #endif ++ #ifdef TS_R_WRONG_CONTENT_TYPE ++ {"WRONG_CONTENT_TYPE", ERR_LIB_TS, TS_R_WRONG_CONTENT_TYPE}, ++ #else ++ {"WRONG_CONTENT_TYPE", 47, 114}, ++ #endif ++ #ifdef UI_R_COMMON_OK_AND_CANCEL_CHARACTERS ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", ERR_LIB_UI, UI_R_COMMON_OK_AND_CANCEL_CHARACTERS}, ++ #else ++ {"COMMON_OK_AND_CANCEL_CHARACTERS", 40, 104}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_LARGE ++ {"INDEX_TOO_LARGE", ERR_LIB_UI, UI_R_INDEX_TOO_LARGE}, ++ #else ++ {"INDEX_TOO_LARGE", 40, 102}, ++ #endif ++ #ifdef UI_R_INDEX_TOO_SMALL ++ {"INDEX_TOO_SMALL", ERR_LIB_UI, UI_R_INDEX_TOO_SMALL}, ++ #else ++ {"INDEX_TOO_SMALL", 40, 103}, ++ #endif ++ #ifdef UI_R_NO_RESULT_BUFFER ++ {"NO_RESULT_BUFFER", ERR_LIB_UI, UI_R_NO_RESULT_BUFFER}, ++ #else ++ {"NO_RESULT_BUFFER", 40, 105}, ++ #endif ++ #ifdef UI_R_PROCESSING_ERROR ++ {"PROCESSING_ERROR", ERR_LIB_UI, UI_R_PROCESSING_ERROR}, ++ #else ++ {"PROCESSING_ERROR", 40, 107}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_LARGE ++ {"RESULT_TOO_LARGE", ERR_LIB_UI, UI_R_RESULT_TOO_LARGE}, ++ #else ++ {"RESULT_TOO_LARGE", 40, 100}, ++ #endif ++ #ifdef UI_R_RESULT_TOO_SMALL ++ {"RESULT_TOO_SMALL", ERR_LIB_UI, UI_R_RESULT_TOO_SMALL}, ++ #else ++ {"RESULT_TOO_SMALL", 40, 101}, ++ #endif ++ #ifdef UI_R_SYSASSIGN_ERROR ++ {"SYSASSIGN_ERROR", ERR_LIB_UI, UI_R_SYSASSIGN_ERROR}, ++ #else ++ {"SYSASSIGN_ERROR", 40, 109}, ++ #endif ++ #ifdef UI_R_SYSDASSGN_ERROR ++ {"SYSDASSGN_ERROR", ERR_LIB_UI, UI_R_SYSDASSGN_ERROR}, ++ #else ++ {"SYSDASSGN_ERROR", 40, 110}, ++ #endif ++ #ifdef UI_R_SYSQIOW_ERROR ++ {"SYSQIOW_ERROR", ERR_LIB_UI, UI_R_SYSQIOW_ERROR}, ++ #else ++ {"SYSQIOW_ERROR", 40, 111}, ++ #endif ++ #ifdef UI_R_UNKNOWN_CONTROL_COMMAND ++ {"UNKNOWN_CONTROL_COMMAND", ERR_LIB_UI, UI_R_UNKNOWN_CONTROL_COMMAND}, ++ #else ++ {"UNKNOWN_CONTROL_COMMAND", 40, 106}, ++ #endif ++ #ifdef UI_R_UNKNOWN_TTYGET_ERRNO_VALUE ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", ERR_LIB_UI, UI_R_UNKNOWN_TTYGET_ERRNO_VALUE}, ++ #else ++ {"UNKNOWN_TTYGET_ERRNO_VALUE", 40, 108}, ++ #endif ++ #ifdef UI_R_USER_DATA_DUPLICATION_UNSUPPORTED ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", ERR_LIB_UI, UI_R_USER_DATA_DUPLICATION_UNSUPPORTED}, ++ #else ++ {"USER_DATA_DUPLICATION_UNSUPPORTED", 40, 112}, ++ #endif ++ #ifdef X509V3_R_BAD_IP_ADDRESS ++ {"BAD_IP_ADDRESS", ERR_LIB_X509V3, X509V3_R_BAD_IP_ADDRESS}, ++ #else ++ {"BAD_IP_ADDRESS", 34, 118}, ++ #endif ++ #ifdef X509V3_R_BAD_OBJECT ++ {"BAD_OBJECT", ERR_LIB_X509V3, X509V3_R_BAD_OBJECT}, ++ #else ++ {"BAD_OBJECT", 34, 119}, ++ #endif ++ #ifdef X509V3_R_BAD_OPTION ++ {"BAD_OPTION", ERR_LIB_X509V3, X509V3_R_BAD_OPTION}, ++ #else ++ {"BAD_OPTION", 34, 170}, ++ #endif ++ #ifdef X509V3_R_BAD_VALUE ++ {"BAD_VALUE", ERR_LIB_X509V3, X509V3_R_BAD_VALUE}, ++ #else ++ {"BAD_VALUE", 34, 171}, ++ #endif ++ #ifdef X509V3_R_BN_DEC2BN_ERROR ++ {"BN_DEC2BN_ERROR", ERR_LIB_X509V3, X509V3_R_BN_DEC2BN_ERROR}, ++ #else ++ {"BN_DEC2BN_ERROR", 34, 100}, ++ #endif ++ #ifdef X509V3_R_BN_TO_ASN1_INTEGER_ERROR ++ {"BN_TO_ASN1_INTEGER_ERROR", ERR_LIB_X509V3, X509V3_R_BN_TO_ASN1_INTEGER_ERROR}, ++ #else ++ {"BN_TO_ASN1_INTEGER_ERROR", 34, 101}, ++ #endif ++ #ifdef X509V3_R_DIRNAME_ERROR ++ {"DIRNAME_ERROR", ERR_LIB_X509V3, X509V3_R_DIRNAME_ERROR}, ++ #else ++ {"DIRNAME_ERROR", 34, 149}, ++ #endif ++ #ifdef X509V3_R_DISTPOINT_ALREADY_SET ++ {"DISTPOINT_ALREADY_SET", ERR_LIB_X509V3, X509V3_R_DISTPOINT_ALREADY_SET}, ++ #else ++ {"DISTPOINT_ALREADY_SET", 34, 160}, ++ #endif ++ #ifdef X509V3_R_DUPLICATE_ZONE_ID ++ {"DUPLICATE_ZONE_ID", ERR_LIB_X509V3, X509V3_R_DUPLICATE_ZONE_ID}, ++ #else ++ {"DUPLICATE_ZONE_ID", 34, 133}, ++ #endif ++ #ifdef X509V3_R_EMPTY_KEY_USAGE ++ {"EMPTY_KEY_USAGE", ERR_LIB_X509V3, X509V3_R_EMPTY_KEY_USAGE}, ++ #else ++ {"EMPTY_KEY_USAGE", 34, 169}, ++ #endif ++ #ifdef X509V3_R_ERROR_CONVERTING_ZONE ++ {"ERROR_CONVERTING_ZONE", ERR_LIB_X509V3, X509V3_R_ERROR_CONVERTING_ZONE}, ++ #else ++ {"ERROR_CONVERTING_ZONE", 34, 131}, ++ #endif ++ #ifdef X509V3_R_ERROR_CREATING_EXTENSION ++ {"ERROR_CREATING_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_CREATING_EXTENSION}, ++ #else ++ {"ERROR_CREATING_EXTENSION", 34, 144}, ++ #endif ++ #ifdef X509V3_R_ERROR_IN_EXTENSION ++ {"ERROR_IN_EXTENSION", ERR_LIB_X509V3, X509V3_R_ERROR_IN_EXTENSION}, ++ #else ++ {"ERROR_IN_EXTENSION", 34, 128}, ++ #endif ++ #ifdef X509V3_R_EXPECTED_A_SECTION_NAME ++ {"EXPECTED_A_SECTION_NAME", ERR_LIB_X509V3, X509V3_R_EXPECTED_A_SECTION_NAME}, ++ #else ++ {"EXPECTED_A_SECTION_NAME", 34, 137}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_EXISTS ++ {"EXTENSION_EXISTS", ERR_LIB_X509V3, X509V3_R_EXTENSION_EXISTS}, ++ #else ++ {"EXTENSION_EXISTS", 34, 145}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NAME_ERROR ++ {"EXTENSION_NAME_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_NAME_ERROR}, ++ #else ++ {"EXTENSION_NAME_ERROR", 34, 115}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_NOT_FOUND ++ {"EXTENSION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_EXTENSION_NOT_FOUND}, ++ #else ++ {"EXTENSION_NOT_FOUND", 34, 102}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED ++ {"EXTENSION_SETTING_NOT_SUPPORTED", ERR_LIB_X509V3, X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED}, ++ #else ++ {"EXTENSION_SETTING_NOT_SUPPORTED", 34, 103}, ++ #endif ++ #ifdef X509V3_R_EXTENSION_VALUE_ERROR ++ {"EXTENSION_VALUE_ERROR", ERR_LIB_X509V3, X509V3_R_EXTENSION_VALUE_ERROR}, ++ #else ++ {"EXTENSION_VALUE_ERROR", 34, 116}, ++ #endif ++ #ifdef X509V3_R_ILLEGAL_EMPTY_EXTENSION ++ {"ILLEGAL_EMPTY_EXTENSION", ERR_LIB_X509V3, X509V3_R_ILLEGAL_EMPTY_EXTENSION}, ++ #else ++ {"ILLEGAL_EMPTY_EXTENSION", 34, 151}, ++ #endif ++ #ifdef X509V3_R_INCORRECT_POLICY_SYNTAX_TAG ++ {"INCORRECT_POLICY_SYNTAX_TAG", ERR_LIB_X509V3, X509V3_R_INCORRECT_POLICY_SYNTAX_TAG}, ++ #else ++ {"INCORRECT_POLICY_SYNTAX_TAG", 34, 152}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASNUMBER ++ {"INVALID_ASNUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_ASNUMBER}, ++ #else ++ {"INVALID_ASNUMBER", 34, 162}, ++ #endif ++ #ifdef X509V3_R_INVALID_ASRANGE ++ {"INVALID_ASRANGE", ERR_LIB_X509V3, X509V3_R_INVALID_ASRANGE}, ++ #else ++ {"INVALID_ASRANGE", 34, 163}, ++ #endif ++ #ifdef X509V3_R_INVALID_BOOLEAN_STRING ++ {"INVALID_BOOLEAN_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_BOOLEAN_STRING}, ++ #else ++ {"INVALID_BOOLEAN_STRING", 34, 104}, ++ #endif ++ #ifdef X509V3_R_INVALID_CERTIFICATE ++ {"INVALID_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_INVALID_CERTIFICATE}, ++ #else ++ {"INVALID_CERTIFICATE", 34, 158}, ++ #endif ++ #ifdef X509V3_R_INVALID_EMPTY_NAME ++ {"INVALID_EMPTY_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_EMPTY_NAME}, ++ #else ++ {"INVALID_EMPTY_NAME", 34, 108}, ++ #endif ++ #ifdef X509V3_R_INVALID_EXTENSION_STRING ++ {"INVALID_EXTENSION_STRING", ERR_LIB_X509V3, X509V3_R_INVALID_EXTENSION_STRING}, ++ #else ++ {"INVALID_EXTENSION_STRING", 34, 105}, ++ #endif ++ #ifdef X509V3_R_INVALID_INHERITANCE ++ {"INVALID_INHERITANCE", ERR_LIB_X509V3, X509V3_R_INVALID_INHERITANCE}, ++ #else ++ {"INVALID_INHERITANCE", 34, 165}, ++ #endif ++ #ifdef X509V3_R_INVALID_IPADDRESS ++ {"INVALID_IPADDRESS", ERR_LIB_X509V3, X509V3_R_INVALID_IPADDRESS}, ++ #else ++ {"INVALID_IPADDRESS", 34, 166}, ++ #endif ++ #ifdef X509V3_R_INVALID_MULTIPLE_RDNS ++ {"INVALID_MULTIPLE_RDNS", ERR_LIB_X509V3, X509V3_R_INVALID_MULTIPLE_RDNS}, ++ #else ++ {"INVALID_MULTIPLE_RDNS", 34, 161}, ++ #endif ++ #ifdef X509V3_R_INVALID_NAME ++ {"INVALID_NAME", ERR_LIB_X509V3, X509V3_R_INVALID_NAME}, ++ #else ++ {"INVALID_NAME", 34, 106}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_ARGUMENT ++ {"INVALID_NULL_ARGUMENT", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_ARGUMENT}, ++ #else ++ {"INVALID_NULL_ARGUMENT", 34, 107}, ++ #endif ++ #ifdef X509V3_R_INVALID_NULL_VALUE ++ {"INVALID_NULL_VALUE", ERR_LIB_X509V3, X509V3_R_INVALID_NULL_VALUE}, ++ #else ++ {"INVALID_NULL_VALUE", 34, 109}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBER ++ {"INVALID_NUMBER", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBER}, ++ #else ++ {"INVALID_NUMBER", 34, 140}, ++ #endif ++ #ifdef X509V3_R_INVALID_NUMBERS ++ {"INVALID_NUMBERS", ERR_LIB_X509V3, X509V3_R_INVALID_NUMBERS}, ++ #else ++ {"INVALID_NUMBERS", 34, 141}, ++ #endif ++ #ifdef X509V3_R_INVALID_OBJECT_IDENTIFIER ++ {"INVALID_OBJECT_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_OBJECT_IDENTIFIER}, ++ #else ++ {"INVALID_OBJECT_IDENTIFIER", 34, 110}, ++ #endif ++ #ifdef X509V3_R_INVALID_OPTION ++ {"INVALID_OPTION", ERR_LIB_X509V3, X509V3_R_INVALID_OPTION}, ++ #else ++ {"INVALID_OPTION", 34, 138}, ++ #endif ++ #ifdef X509V3_R_INVALID_POLICY_IDENTIFIER ++ {"INVALID_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_INVALID_POLICY_IDENTIFIER}, ++ #else ++ {"INVALID_POLICY_IDENTIFIER", 34, 134}, ++ #endif ++ #ifdef X509V3_R_INVALID_PROXY_POLICY_SETTING ++ {"INVALID_PROXY_POLICY_SETTING", ERR_LIB_X509V3, X509V3_R_INVALID_PROXY_POLICY_SETTING}, ++ #else ++ {"INVALID_PROXY_POLICY_SETTING", 34, 153}, ++ #endif ++ #ifdef X509V3_R_INVALID_PURPOSE ++ {"INVALID_PURPOSE", ERR_LIB_X509V3, X509V3_R_INVALID_PURPOSE}, ++ #else ++ {"INVALID_PURPOSE", 34, 146}, ++ #endif ++ #ifdef X509V3_R_INVALID_SAFI ++ {"INVALID_SAFI", ERR_LIB_X509V3, X509V3_R_INVALID_SAFI}, ++ #else ++ {"INVALID_SAFI", 34, 164}, ++ #endif ++ #ifdef X509V3_R_INVALID_SECTION ++ {"INVALID_SECTION", ERR_LIB_X509V3, X509V3_R_INVALID_SECTION}, ++ #else ++ {"INVALID_SECTION", 34, 135}, ++ #endif ++ #ifdef X509V3_R_INVALID_SYNTAX ++ {"INVALID_SYNTAX", ERR_LIB_X509V3, X509V3_R_INVALID_SYNTAX}, ++ #else ++ {"INVALID_SYNTAX", 34, 143}, ++ #endif ++ #ifdef X509V3_R_ISSUER_DECODE_ERROR ++ {"ISSUER_DECODE_ERROR", ERR_LIB_X509V3, X509V3_R_ISSUER_DECODE_ERROR}, ++ #else ++ {"ISSUER_DECODE_ERROR", 34, 126}, ++ #endif ++ #ifdef X509V3_R_MISSING_VALUE ++ {"MISSING_VALUE", ERR_LIB_X509V3, X509V3_R_MISSING_VALUE}, ++ #else ++ {"MISSING_VALUE", 34, 124}, ++ #endif ++ #ifdef X509V3_R_NEED_ORGANIZATION_AND_NUMBERS ++ {"NEED_ORGANIZATION_AND_NUMBERS", ERR_LIB_X509V3, X509V3_R_NEED_ORGANIZATION_AND_NUMBERS}, ++ #else ++ {"NEED_ORGANIZATION_AND_NUMBERS", 34, 142}, ++ #endif ++ #ifdef X509V3_R_NEGATIVE_PATHLEN ++ {"NEGATIVE_PATHLEN", ERR_LIB_X509V3, X509V3_R_NEGATIVE_PATHLEN}, ++ #else ++ {"NEGATIVE_PATHLEN", 34, 168}, ++ #endif ++ #ifdef X509V3_R_NO_CONFIG_DATABASE ++ {"NO_CONFIG_DATABASE", ERR_LIB_X509V3, X509V3_R_NO_CONFIG_DATABASE}, ++ #else ++ {"NO_CONFIG_DATABASE", 34, 136}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_CERTIFICATE ++ {"NO_ISSUER_CERTIFICATE", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_CERTIFICATE}, ++ #else ++ {"NO_ISSUER_CERTIFICATE", 34, 121}, ++ #endif ++ #ifdef X509V3_R_NO_ISSUER_DETAILS ++ {"NO_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_ISSUER_DETAILS}, ++ #else ++ {"NO_ISSUER_DETAILS", 34, 127}, ++ #endif ++ #ifdef X509V3_R_NO_POLICY_IDENTIFIER ++ {"NO_POLICY_IDENTIFIER", ERR_LIB_X509V3, X509V3_R_NO_POLICY_IDENTIFIER}, ++ #else ++ {"NO_POLICY_IDENTIFIER", 34, 139}, ++ #endif ++ #ifdef X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", ERR_LIB_X509V3, X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED}, ++ #else ++ {"NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED", 34, 154}, ++ #endif ++ #ifdef X509V3_R_NO_PUBLIC_KEY ++ {"NO_PUBLIC_KEY", ERR_LIB_X509V3, X509V3_R_NO_PUBLIC_KEY}, ++ #else ++ {"NO_PUBLIC_KEY", 34, 114}, ++ #endif ++ #ifdef X509V3_R_NO_SUBJECT_DETAILS ++ {"NO_SUBJECT_DETAILS", ERR_LIB_X509V3, X509V3_R_NO_SUBJECT_DETAILS}, ++ #else ++ {"NO_SUBJECT_DETAILS", 34, 125}, ++ #endif ++ #ifdef X509V3_R_OPERATION_NOT_DEFINED ++ {"OPERATION_NOT_DEFINED", ERR_LIB_X509V3, X509V3_R_OPERATION_NOT_DEFINED}, ++ #else ++ {"OPERATION_NOT_DEFINED", 34, 148}, ++ #endif ++ #ifdef X509V3_R_OTHERNAME_ERROR ++ {"OTHERNAME_ERROR", ERR_LIB_X509V3, X509V3_R_OTHERNAME_ERROR}, ++ #else ++ {"OTHERNAME_ERROR", 34, 147}, ++ #endif ++ #ifdef X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED}, ++ #else ++ {"POLICY_LANGUAGE_ALREADY_DEFINED", 34, 155}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH ++ {"POLICY_PATH_LENGTH", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH}, ++ #else ++ {"POLICY_PATH_LENGTH", 34, 156}, ++ #endif ++ #ifdef X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", ERR_LIB_X509V3, X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED}, ++ #else ++ {"POLICY_PATH_LENGTH_ALREADY_DEFINED", 34, 157}, ++ #endif ++ #ifdef X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", ERR_LIB_X509V3, X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY}, ++ #else ++ {"POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY", 34, 159}, ++ #endif ++ #ifdef X509V3_R_PURPOSE_NOT_UNIQUE ++ {"PURPOSE_NOT_UNIQUE", ERR_LIB_X509V3, X509V3_R_PURPOSE_NOT_UNIQUE}, ++ #else ++ {"PURPOSE_NOT_UNIQUE", 34, 173}, ++ #endif ++ #ifdef X509V3_R_SECTION_NOT_FOUND ++ {"SECTION_NOT_FOUND", ERR_LIB_X509V3, X509V3_R_SECTION_NOT_FOUND}, ++ #else ++ {"SECTION_NOT_FOUND", 34, 150}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS ++ {"UNABLE_TO_GET_ISSUER_DETAILS", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_DETAILS", 34, 122}, ++ #endif ++ #ifdef X509V3_R_UNABLE_TO_GET_ISSUER_KEYID ++ {"UNABLE_TO_GET_ISSUER_KEYID", ERR_LIB_X509V3, X509V3_R_UNABLE_TO_GET_ISSUER_KEYID}, ++ #else ++ {"UNABLE_TO_GET_ISSUER_KEYID", 34, 123}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT ++ {"UNKNOWN_BIT_STRING_ARGUMENT", ERR_LIB_X509V3, X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT}, ++ #else ++ {"UNKNOWN_BIT_STRING_ARGUMENT", 34, 111}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION ++ {"UNKNOWN_EXTENSION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION}, ++ #else ++ {"UNKNOWN_EXTENSION", 34, 129}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_EXTENSION_NAME ++ {"UNKNOWN_EXTENSION_NAME", ERR_LIB_X509V3, X509V3_R_UNKNOWN_EXTENSION_NAME}, ++ #else ++ {"UNKNOWN_EXTENSION_NAME", 34, 130}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_OPTION ++ {"UNKNOWN_OPTION", ERR_LIB_X509V3, X509V3_R_UNKNOWN_OPTION}, ++ #else ++ {"UNKNOWN_OPTION", 34, 120}, ++ #endif ++ #ifdef X509V3_R_UNKNOWN_VALUE ++ {"UNKNOWN_VALUE", ERR_LIB_X509V3, X509V3_R_UNKNOWN_VALUE}, ++ #else ++ {"UNKNOWN_VALUE", 34, 172}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_OPTION ++ {"UNSUPPORTED_OPTION", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_OPTION}, ++ #else ++ {"UNSUPPORTED_OPTION", 34, 117}, ++ #endif ++ #ifdef X509V3_R_UNSUPPORTED_TYPE ++ {"UNSUPPORTED_TYPE", ERR_LIB_X509V3, X509V3_R_UNSUPPORTED_TYPE}, ++ #else ++ {"UNSUPPORTED_TYPE", 34, 167}, ++ #endif ++ #ifdef X509V3_R_USER_TOO_LONG ++ {"USER_TOO_LONG", ERR_LIB_X509V3, X509V3_R_USER_TOO_LONG}, ++ #else ++ {"USER_TOO_LONG", 34, 132}, ++ #endif ++ #ifdef X509_R_AKID_MISMATCH ++ {"AKID_MISMATCH", ERR_LIB_X509, X509_R_AKID_MISMATCH}, ++ #else ++ {"AKID_MISMATCH", 11, 110}, ++ #endif ++ #ifdef X509_R_BAD_SELECTOR ++ {"BAD_SELECTOR", ERR_LIB_X509, X509_R_BAD_SELECTOR}, ++ #else ++ {"BAD_SELECTOR", 11, 133}, ++ #endif ++ #ifdef X509_R_BAD_X509_FILETYPE ++ {"BAD_X509_FILETYPE", ERR_LIB_X509, X509_R_BAD_X509_FILETYPE}, ++ #else ++ {"BAD_X509_FILETYPE", 11, 100}, ++ #endif ++ #ifdef X509_R_BASE64_DECODE_ERROR ++ {"BASE64_DECODE_ERROR", ERR_LIB_X509, X509_R_BASE64_DECODE_ERROR}, ++ #else ++ {"BASE64_DECODE_ERROR", 11, 118}, ++ #endif ++ #ifdef X509_R_CANT_CHECK_DH_KEY ++ {"CANT_CHECK_DH_KEY", ERR_LIB_X509, X509_R_CANT_CHECK_DH_KEY}, ++ #else ++ {"CANT_CHECK_DH_KEY", 11, 114}, ++ #endif ++ #ifdef X509_R_CERTIFICATE_VERIFICATION_FAILED ++ {"CERTIFICATE_VERIFICATION_FAILED", ERR_LIB_X509, X509_R_CERTIFICATE_VERIFICATION_FAILED}, ++ #else ++ {"CERTIFICATE_VERIFICATION_FAILED", 11, 139}, ++ #endif ++ #ifdef X509_R_CERT_ALREADY_IN_HASH_TABLE ++ {"CERT_ALREADY_IN_HASH_TABLE", ERR_LIB_X509, X509_R_CERT_ALREADY_IN_HASH_TABLE}, ++ #else ++ {"CERT_ALREADY_IN_HASH_TABLE", 11, 101}, ++ #endif ++ #ifdef X509_R_CRL_ALREADY_DELTA ++ {"CRL_ALREADY_DELTA", ERR_LIB_X509, X509_R_CRL_ALREADY_DELTA}, ++ #else ++ {"CRL_ALREADY_DELTA", 11, 127}, ++ #endif ++ #ifdef X509_R_CRL_VERIFY_FAILURE ++ {"CRL_VERIFY_FAILURE", ERR_LIB_X509, X509_R_CRL_VERIFY_FAILURE}, ++ #else ++ {"CRL_VERIFY_FAILURE", 11, 131}, ++ #endif ++ #ifdef X509_R_DUPLICATE_ATTRIBUTE ++ {"DUPLICATE_ATTRIBUTE", ERR_LIB_X509, X509_R_DUPLICATE_ATTRIBUTE}, ++ #else ++ {"DUPLICATE_ATTRIBUTE", 11, 140}, ++ #endif ++ #ifdef X509_R_ERROR_GETTING_MD_BY_NID ++ {"ERROR_GETTING_MD_BY_NID", ERR_LIB_X509, X509_R_ERROR_GETTING_MD_BY_NID}, ++ #else ++ {"ERROR_GETTING_MD_BY_NID", 11, 141}, ++ #endif ++ #ifdef X509_R_ERROR_USING_SIGINF_SET ++ {"ERROR_USING_SIGINF_SET", ERR_LIB_X509, X509_R_ERROR_USING_SIGINF_SET}, ++ #else ++ {"ERROR_USING_SIGINF_SET", 11, 142}, ++ #endif ++ #ifdef X509_R_IDP_MISMATCH ++ {"IDP_MISMATCH", ERR_LIB_X509, X509_R_IDP_MISMATCH}, ++ #else ++ {"IDP_MISMATCH", 11, 128}, ++ #endif ++ #ifdef X509_R_INVALID_ATTRIBUTES ++ {"INVALID_ATTRIBUTES", ERR_LIB_X509, X509_R_INVALID_ATTRIBUTES}, ++ #else ++ {"INVALID_ATTRIBUTES", 11, 138}, ++ #endif ++ #ifdef X509_R_INVALID_DIRECTORY ++ {"INVALID_DIRECTORY", ERR_LIB_X509, X509_R_INVALID_DIRECTORY}, ++ #else ++ {"INVALID_DIRECTORY", 11, 113}, ++ #endif ++ #ifdef X509_R_INVALID_DISTPOINT ++ {"INVALID_DISTPOINT", ERR_LIB_X509, X509_R_INVALID_DISTPOINT}, ++ #else ++ {"INVALID_DISTPOINT", 11, 143}, ++ #endif ++ #ifdef X509_R_INVALID_EXTENSION ++ {"INVALID_EXTENSION", ERR_LIB_X509, X509_R_INVALID_EXTENSION}, ++ #else ++ {"INVALID_EXTENSION", 11, 146}, ++ #endif ++ #ifdef X509_R_INVALID_FIELD_NAME ++ {"INVALID_FIELD_NAME", ERR_LIB_X509, X509_R_INVALID_FIELD_NAME}, ++ #else ++ {"INVALID_FIELD_NAME", 11, 119}, ++ #endif ++ #ifdef X509_R_INVALID_TRUST ++ {"INVALID_TRUST", ERR_LIB_X509, X509_R_INVALID_TRUST}, ++ #else ++ {"INVALID_TRUST", 11, 123}, ++ #endif ++ #ifdef X509_R_ISSUER_MISMATCH ++ {"ISSUER_MISMATCH", ERR_LIB_X509, X509_R_ISSUER_MISMATCH}, ++ #else ++ {"ISSUER_MISMATCH", 11, 129}, ++ #endif ++ #ifdef X509_R_KEY_TYPE_MISMATCH ++ {"KEY_TYPE_MISMATCH", ERR_LIB_X509, X509_R_KEY_TYPE_MISMATCH}, ++ #else ++ {"KEY_TYPE_MISMATCH", 11, 115}, ++ #endif ++ #ifdef X509_R_KEY_VALUES_MISMATCH ++ {"KEY_VALUES_MISMATCH", ERR_LIB_X509, X509_R_KEY_VALUES_MISMATCH}, ++ #else ++ {"KEY_VALUES_MISMATCH", 11, 116}, ++ #endif ++ #ifdef X509_R_LOADING_CERT_DIR ++ {"LOADING_CERT_DIR", ERR_LIB_X509, X509_R_LOADING_CERT_DIR}, ++ #else ++ {"LOADING_CERT_DIR", 11, 103}, ++ #endif ++ #ifdef X509_R_LOADING_DEFAULTS ++ {"LOADING_DEFAULTS", ERR_LIB_X509, X509_R_LOADING_DEFAULTS}, ++ #else ++ {"LOADING_DEFAULTS", 11, 104}, ++ #endif ++ #ifdef X509_R_METHOD_NOT_SUPPORTED ++ {"METHOD_NOT_SUPPORTED", ERR_LIB_X509, X509_R_METHOD_NOT_SUPPORTED}, ++ #else ++ {"METHOD_NOT_SUPPORTED", 11, 124}, ++ #endif ++ #ifdef X509_R_NAME_TOO_LONG ++ {"NAME_TOO_LONG", ERR_LIB_X509, X509_R_NAME_TOO_LONG}, ++ #else ++ {"NAME_TOO_LONG", 11, 134}, ++ #endif ++ #ifdef X509_R_NEWER_CRL_NOT_NEWER ++ {"NEWER_CRL_NOT_NEWER", ERR_LIB_X509, X509_R_NEWER_CRL_NOT_NEWER}, ++ #else ++ {"NEWER_CRL_NOT_NEWER", 11, 132}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_FOUND ++ {"NO_CERTIFICATE_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_FOUND}, ++ #else ++ {"NO_CERTIFICATE_FOUND", 11, 135}, ++ #endif ++ #ifdef X509_R_NO_CERTIFICATE_OR_CRL_FOUND ++ {"NO_CERTIFICATE_OR_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CERTIFICATE_OR_CRL_FOUND}, ++ #else ++ {"NO_CERTIFICATE_OR_CRL_FOUND", 11, 136}, ++ #endif ++ #ifdef X509_R_NO_CERT_SET_FOR_US_TO_VERIFY ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", ERR_LIB_X509, X509_R_NO_CERT_SET_FOR_US_TO_VERIFY}, ++ #else ++ {"NO_CERT_SET_FOR_US_TO_VERIFY", 11, 105}, ++ #endif ++ #ifdef X509_R_NO_CRL_FOUND ++ {"NO_CRL_FOUND", ERR_LIB_X509, X509_R_NO_CRL_FOUND}, ++ #else ++ {"NO_CRL_FOUND", 11, 137}, ++ #endif ++ #ifdef X509_R_NO_CRL_NUMBER ++ {"NO_CRL_NUMBER", ERR_LIB_X509, X509_R_NO_CRL_NUMBER}, ++ #else ++ {"NO_CRL_NUMBER", 11, 130}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_DECODE_ERROR ++ {"PUBLIC_KEY_DECODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_DECODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_DECODE_ERROR", 11, 125}, ++ #endif ++ #ifdef X509_R_PUBLIC_KEY_ENCODE_ERROR ++ {"PUBLIC_KEY_ENCODE_ERROR", ERR_LIB_X509, X509_R_PUBLIC_KEY_ENCODE_ERROR}, ++ #else ++ {"PUBLIC_KEY_ENCODE_ERROR", 11, 126}, ++ #endif ++ #ifdef X509_R_SHOULD_RETRY ++ {"SHOULD_RETRY", ERR_LIB_X509, X509_R_SHOULD_RETRY}, ++ #else ++ {"SHOULD_RETRY", 11, 106}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", ERR_LIB_X509, X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN}, ++ #else ++ {"UNABLE_TO_FIND_PARAMETERS_IN_CHAIN", 11, 107}, ++ #endif ++ #ifdef X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", ERR_LIB_X509, X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY}, ++ #else ++ {"UNABLE_TO_GET_CERTS_PUBLIC_KEY", 11, 108}, ++ #endif ++ #ifdef X509_R_UNKNOWN_KEY_TYPE ++ {"UNKNOWN_KEY_TYPE", ERR_LIB_X509, X509_R_UNKNOWN_KEY_TYPE}, ++ #else ++ {"UNKNOWN_KEY_TYPE", 11, 117}, ++ #endif ++ #ifdef X509_R_UNKNOWN_NID ++ {"UNKNOWN_NID", ERR_LIB_X509, X509_R_UNKNOWN_NID}, ++ #else ++ {"UNKNOWN_NID", 11, 109}, ++ #endif ++ #ifdef X509_R_UNKNOWN_PURPOSE_ID ++ {"UNKNOWN_PURPOSE_ID", ERR_LIB_X509, X509_R_UNKNOWN_PURPOSE_ID}, ++ #else ++ {"UNKNOWN_PURPOSE_ID", 11, 121}, ++ #endif ++ #ifdef X509_R_UNKNOWN_SIGID_ALGS ++ {"UNKNOWN_SIGID_ALGS", ERR_LIB_X509, X509_R_UNKNOWN_SIGID_ALGS}, ++ #else ++ {"UNKNOWN_SIGID_ALGS", 11, 144}, ++ #endif ++ #ifdef X509_R_UNKNOWN_TRUST_ID ++ {"UNKNOWN_TRUST_ID", ERR_LIB_X509, X509_R_UNKNOWN_TRUST_ID}, ++ #else ++ {"UNKNOWN_TRUST_ID", 11, 120}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_ALGORITHM ++ {"UNSUPPORTED_ALGORITHM", ERR_LIB_X509, X509_R_UNSUPPORTED_ALGORITHM}, ++ #else ++ {"UNSUPPORTED_ALGORITHM", 11, 111}, ++ #endif ++ #ifdef X509_R_UNSUPPORTED_VERSION ++ {"UNSUPPORTED_VERSION", ERR_LIB_X509, X509_R_UNSUPPORTED_VERSION}, ++ #else ++ {"UNSUPPORTED_VERSION", 11, 145}, ++ #endif ++ #ifdef X509_R_WRONG_LOOKUP_TYPE ++ {"WRONG_LOOKUP_TYPE", ERR_LIB_X509, X509_R_WRONG_LOOKUP_TYPE}, ++ #else ++ {"WRONG_LOOKUP_TYPE", 11, 112}, ++ #endif ++ #ifdef X509_R_WRONG_TYPE ++ {"WRONG_TYPE", ERR_LIB_X509, X509_R_WRONG_TYPE}, ++ #else ++ {"WRONG_TYPE", 11, 122}, ++ #endif ++ {NULL, 0, 0} /* sentinel */ ++}; +diff --git a/Tools/ssl/multissltests.py b/Tools/ssl/multissltests.py +index 99e2a3f33c5..427bc4a4d30 100755 +--- a/Tools/ssl/multissltests.py ++++ b/Tools/ssl/multissltests.py +@@ -54,6 +54,7 @@ + "3.4.8", + "3.5.9", + "3.6.5", ++ "4.0.0", + # See make_ssl_data.py for notes on adding a new version. + ] + +@@ -422,9 +423,11 @@ class BuildOpenSSL(AbstractBuilder): + def _post_install(self): + if self.version.startswith("3."): + self._post_install_3xx() ++ elif self.version.startswith("4."): ++ self._post_install_4xx() + + def _build_src(self, config_args=()): +- if self.version.startswith("3."): ++ if self.version.startswith(("3.", "4.")): + config_args += ("enable-fips",) + super()._build_src(config_args) + +@@ -440,6 +443,9 @@ def _post_install_3xx(self): + lib64 = self.lib_dir + "64" + os.symlink(lib64, self.lib_dir) + ++ def _post_install_4xx(self): ++ self._post_install_3xx() ++ + @property + def short_version(self): + """Short version for OpenSSL download URL""" +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.14.8t b/plugins/python-build/share/python-build/patches/3.14.8t new file mode 120000 index 0000000000..8b820566f4 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.14.8t @@ -0,0 +1 @@ +3.14.8 \ No newline at end of file From e258d55f1fe676666cfb5b5e747f0ef040d823fe Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2026 09:18:55 +0300 Subject: [PATCH 1297/1324] Add CPython 3.10.22, 3.11.17 (#3576) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- .../python-build/share/python-build/3.10.22 | 9 ++ .../python-build/share/python-build/3.11.17 | 11 ++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ ...ognize-an-argument-to-j-in-MAKEFLAGS.patch | 27 +++++ ...ure-with-openssl-rpath-works-on-macO.patch | 64 ++++++++++ ...gh-153711-Avoid-use-of-dup3-and-pipe.patch | 109 ++++++++++++++++++ 7 files changed, 356 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.10.22 create mode 100644 plugins/python-build/share/python-build/3.11.17 create mode 100644 plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch create mode 100644 plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch diff --git a/plugins/python-build/share/python-build/3.10.22 b/plugins/python-build/share/python-build/3.10.22 new file mode 100644 index 0000000000..f41d679a0b --- /dev/null +++ b/plugins/python-build/share/python-build/3.10.22 @@ -0,0 +1,9 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +install_package "openssl-3.6.5" "https://github.com/openssl/openssl/releases/download/openssl-3.6.5/openssl-3.6.5.tar.gz#a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.10.22" "https://www.python.org/ftp/python/3.10.22/Python-3.10.22.tar.xz#c61fe9b1a1a7ec2a0b0388e664187c378a5325a89e3606d220abf5bdfccb2543" standard verify_py310 copy_python_gdb ensurepip +else + install_package "Python-3.10.22" "https://www.python.org/ftp/python/3.10.22/Python-3.10.22.tgz#9448b34d16f8e3db0964ac3ed9fb283197747543c2c021f283ffd2c8b7287357" standard verify_py310 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.11.17 b/plugins/python-build/share/python-build/3.11.17 new file mode 100644 index 0000000000..dc1ab2bd55 --- /dev/null +++ b/plugins/python-build/share/python-build/3.11.17 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-3.6.5" "https://github.com/openssl/openssl/releases/download/openssl-3.6.5/openssl-3.6.5.tar.gz#a2157c2830efdec3788939b00c9b0638306d3f0bbb76dc4832ee503bb397df98" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.11.17" "https://www.python.org/ftp/python/3.11.17/Python-3.11.17.tar.xz#bfb74ad39efae27cda510f134ab408e00f9992c56851cfc0b1cdb5646da11599" standard verify_py311 copy_python_gdb ensurepip +else + install_package "Python-3.11.17" "https://www.python.org/ftp/python/3.11.17/Python-3.11.17.tgz#53cdee63ac4bf12387b7b33a53d3b1f8f4941cad73807a7b4fe91bb001ef004a" standard verify_py311 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..7e5d9aaa68 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.10.22/Python-3.10.22/0002-downstream-3.10-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From cf8eba395ddf888ce7d9e5e4a257209841aff6a4 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.10] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index 4b71c4e00f8..bfe3e819fff 100755 +--- a/configure ++++ b/configure +@@ -11952,7 +11952,7 @@ fi + + # checks for library functions + for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -11962,7 +11962,7 @@ for ac_func in alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -12005,6 +12005,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index ac3be3850a9..0b88132edfb 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -3708,7 +3708,7 @@ fi + + # checks for library functions + AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ +- clock confstr close_range copy_file_range ctermid dup3 execv explicit_bzero \ ++ clock confstr close_range copy_file_range ctermid execv explicit_bzero \ + explicit_memset faccessat fchmod fchmodat fchown fchownat \ + fdwalk fexecve fdopendir fork fpathconf fstatat ftime ftruncate futimesat \ + futimens futimes gai_strerror getentropy \ +@@ -3718,7 +3718,7 @@ AC_CHECK_FUNCS(alarm accept4 setitimer getitimer bind_textdomain_codeset chown \ + if_nameindex \ + initgroups kill killpg lchown lockf linkat lstat lutimes mmap \ + memrchr mbrtowc mkdirat mkfifo \ +- madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause pipe2 plock poll \ ++ madvise mkfifoat mknod mknodat mktime mremap nice openat pathconf pause plock poll \ + posix_fallocate posix_fadvise posix_spawn posix_spawnp pread preadv preadv2 \ + pthread_condattr_setclock pthread_init pthread_kill pwrite pwritev pwritev2 \ + readlink readlinkat readv realpath renameat \ +@@ -3740,6 +3740,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + diff --git a/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch new file mode 100644 index 0000000000..6da534e251 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0001-Recognize-an-argument-to-j-in-MAKEFLAGS.patch @@ -0,0 +1,27 @@ +From 3fec519d6b326918f39ceb142ef762042ce8365f Mon Sep 17 00:00:00 2001 +From: Ivan Pozdeev +Date: Fri, 26 Dec 2025 13:39:21 +0300 +Subject: [PATCH] Recognize an argument to -j in MAKEFLAGS + +--- + setup.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/setup.py b/setup.py +index ad8fb81b218..5666deaf67b 100644 +--- a/setup.py ++++ b/setup.py +@@ -307,8 +307,8 @@ def __init__(self, dist): + self.failed_on_import = [] + self.missing = [] + self.disabled_configure = [] +- if '-j' in os.environ.get('MAKEFLAGS', ''): +- self.parallel = True ++ if (m:=re.search(r'(?:^|\s)(?:-j|--jobs)(?:\s+|=)?(\d*)',os.environ.get('MAKEFLAGS', ''))) is not None: ++ self.parallel = int(m.group(1)) if m.group(1) else True + + def add(self, ext): + self.extensions.append(ext) +-- +2.36.1.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch new file mode 100644 index 0000000000..3997f914f3 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0002-gh-110459-Make-sure-with-openssl-rpath-works-on-macO.patch @@ -0,0 +1,64 @@ +From cc13eabc7ce08accf49656e258ba500f74a1dae8 Mon Sep 17 00:00:00 2001 +From: Ronald Oussoren +Date: Thu, 28 Dec 2023 09:42:05 +0100 +Subject: [PATCH] gh-110459: Make sure --with-openssl-rpath works on macOS + (#113441) + +* gh-110459: Make sure --with-openssl-rpath works on macOS + +On macOS the `-rpath` linker flag is spelled differently +than on on platforms. +--- + .../macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst | 2 ++ + configure | 7 ++++++- + configure.ac | 7 ++++++- + 3 files changed, 14 insertions(+), 2 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst + +diff --git a/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +new file mode 100644 +index 00000000000..44ffd857785 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2023-12-23-22-41-07.gh-issue-110459.NaMBJy.rst +@@ -0,0 +1,2 @@ ++Running ``configure ... --with-openssl-rpath=X/Y/Z`` no longer fails to detect ++OpenSSL on macOS. +diff --git a/configure b/configure +index 7e50abc29d0..6d65d3abc18 100755 +--- a/configure ++++ b/configure +@@ -27478,7 +27478,12 @@ then : + + else $as_nop + +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + + fi + +diff --git a/configure.ac b/configure.ac +index e064848af9e..bfdabc4474e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -6808,7 +6808,12 @@ AX_CHECK_OPENSSL([have_openssl=yes],[have_openssl=no]) + AS_VAR_IF([GNULD], [yes], [ + rpath_arg="-Wl,--enable-new-dtags,-rpath=" + ], [ +- rpath_arg="-Wl,-rpath=" ++ if test "$ac_sys_system" = "Darwin" ++ then ++ rpath_arg="-Wl,-rpath," ++ else ++ rpath_arg="-Wl,-rpath=" ++ fi + ]) + + AC_MSG_CHECKING([for --with-openssl-rpath]) +-- +2.46.2.windows.1 + diff --git a/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch new file mode 100644 index 0000000000..0025217f36 --- /dev/null +++ b/plugins/python-build/share/python-build/patches/3.11.17/Python-3.11.17/0003-downstream-3.11-gh-153711-Avoid-use-of-dup3-and-pipe.patch @@ -0,0 +1,109 @@ +From 29e98f7040994fa86bf63845b00ab9a4d80f5931 Mon Sep 17 00:00:00 2001 +From: Ned Deily +Date: Wed, 5 Aug 2026 10:30:17 +0300 +Subject: [PATCH] (downstream) [3.11] gh-153711: Avoid use of dup3 and pipe2 + calls introduced in macOS 27 (#155211) + +--- + ...-08-05-02-02-33.gh-issue-153711.pO9fFb.rst | 3 +++ + configure | 23 +++++++++++++++++-- + configure.ac | 11 +++++++-- + 3 files changed, 33 insertions(+), 4 deletions(-) + create mode 100644 Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst + +diff --git a/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +new file mode 100644 +index 00000000000..90804c179a4 +--- /dev/null ++++ b/Misc/NEWS.d/next/macOS/2026-08-05-02-02-33.gh-issue-153711.pO9fFb.rst +@@ -0,0 +1,3 @@ ++On macOS, do not attempt to use the :manpage:`dup3(2)` and ++:manpage:`pipe2(2)` system calls introduced in ++macOS 27 to prevent problems when running on older systems. +diff --git a/configure b/configure +index a1ad0ae2510..76a3eec37be 100755 +--- a/configure ++++ b/configure +@@ -15209,7 +15209,7 @@ fi + # checks for library functions + for ac_func in \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -15219,7 +15219,7 @@ for ac_func in \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -15262,6 +15262,25 @@ done + + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ ac_fn_c_check_func "$LINENO" "dup3" "ac_cv_func_dup3" ++if test "x$ac_cv_func_dup3" = xyes ++then : ++ printf '%s\n' "#define HAVE_DUP3 1" >>confdefs.h ++ ++fi ++ac_fn_c_check_func "$LINENO" "pipe2" "ac_cv_func_pipe2" ++if test "x$ac_cv_func_pipe2" = xyes ++then : ++ printf '%s\n' "#define HAVE_PIPE2 1" >>confdefs.h ++ ++fi ++ ++fi ++ + ac_fn_c_check_decl "$LINENO" "dirfd" "ac_cv_have_decl_dirfd" "#include + #include + " +diff --git a/configure.ac b/configure.ac +index 7b4000fa9c3..44167040f3e 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -4594,7 +4594,7 @@ fi + # checks for library functions + AC_CHECK_FUNCS([ \ + accept4 alarm bind_textdomain_codeset chmod chown clock close_range confstr \ +- copy_file_range ctermid dup dup3 execv explicit_bzero explicit_memset \ ++ copy_file_range ctermid dup execv explicit_bzero explicit_memset \ + faccessat fchmod fchmodat fchown fchownat fdopendir fdwalk fexecve \ + fork fork1 fpathconf fstatat ftime ftruncate futimens futimes futimesat \ + gai_strerror getegid getentropy geteuid getgid getgrgid getgrgid_r \ +@@ -4604,7 +4604,7 @@ AC_CHECK_FUNCS([ \ + getspnam getuid getwd if_nameindex initgroups kill killpg lchown linkat \ + lockf lstat lutimes madvise mbrtowc memrchr mkdirat mkfifo mkfifoat \ + mknod mknodat mktime mmap mremap nice openat opendir pathconf pause pipe \ +- pipe2 plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ ++ plock poll posix_fadvise posix_fallocate posix_spawn posix_spawnp \ + pread preadv preadv2 pthread_condattr_setclock pthread_init pthread_kill \ + pwrite pwritev pwritev2 readlink readlinkat readv realpath renameat \ + rtpSpawn sched_get_priority_max sched_rr_get_interval sched_setaffinity \ +@@ -4626,6 +4626,13 @@ if test "$MACHDEP" != linux; then + AC_CHECK_FUNCS(lchmod) + fi + ++# macOS introduced dup3 and pipe2 in macOS 27, late in the ++# lifetime of this version of Python. Rather than adding weaklinking ++# support for them, just continue to ignore them. ++if test "$ac_sys_system" != "Darwin"; then ++ AC_CHECK_FUNCS([dup3 pipe2]) ++fi ++ + AC_CHECK_DECL(dirfd, + AC_DEFINE(HAVE_DIRFD, 1, + Define if you have the 'dirfd' function or macro.), , +-- +2.55.0.windows.3 + From 42c75f3c53f7fb3cd265cd844f2f8e193f96a628 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Thu, 1 Oct 2026 09:22:36 +0300 Subject: [PATCH 1298/1324] 2.8.7 --- CHANGELOG.md | 22 ++++++++++++++++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fe15eccb00..de559ad275 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,28 @@ # Version History +## Release v2.8.7 +* Fix rehash repair of individually corrupted shims by @aprylewu in https://github.com/pyenv/pyenv/pull/3540 +* CI: publish Apple Silicon macOS binaries by @macayu17 in https://github.com/pyenv/pyenv/pull/3556 +* python-build: create PEP 394 symlinks for Pyston by @dmrlawson in https://github.com/pyenv/pyenv/pull/3557 +* Add GraalPy 3.13 25.4.4 by @msimacek in https://github.com/pyenv/pyenv/pull/3558 +* python-build: create PEP 394 symlinks for PyPy by @native-api in https://github.com/pyenv/pyenv/pull/3559 +* install-prerequisites: add an option for optional dependencies by @native-api in https://github.com/pyenv/pyenv/pull/3560 +* python-build: create pypy* symlinks for PyPy by @native-api in https://github.com/pyenv/pyenv/pull/3562 +* Add PyPy v7.3.23 by @exurd in https://github.com/pyenv/pyenv/pull/3553 +* Add PyPy v7.3.21 by @exurd in https://github.com/pyenv/pyenv/pull/3564 +* python-build: Add `add_pypy.py` for pypy versions by @exurd in https://github.com/pyenv/pyenv/pull/3566 +* pyenv-binary: install published CPython packages by @macayu17 in https://github.com/pyenv/pyenv/pull/3567 +* python-build: show download progress in interactive terminals by @n0tl3ss in https://github.com/pyenv/pyenv/pull/3561 +* Fix minimum macOS version check for PyPy v7.3.8+ by @exurd in https://github.com/pyenv/pyenv/pull/3570 +* Add PyPy v8.0.0 by @exurd in https://github.com/pyenv/pyenv/pull/3552 +* python-build: Speed up permission fix step by @native-api in https://github.com/pyenv/pyenv/pull/3571 +* fix(init): honor custom PYENV_ROOT in init setup tips by @r3wretrhy in https://github.com/pyenv/pyenv/pull/3569 +* tests: python-build: use helpers from core by @macayu17 in https://github.com/pyenv/pyenv/pull/3572 +* Add CPython 3.12.15, 3.13.16 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3575 +* Add CPython 3.14.8 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3574 +* Add CPython 3.10.22, 3.11.17 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3576 + ## Release v2.8.6 * Update graalpy URLs for 25.3.4.1 by @msimacek in https://github.com/pyenv/pyenv/pull/3533 * python-build: add build prerequisite installer by @macayu17 in https://github.com/pyenv/pyenv/pull/3532 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 069b231ee3..33a7f3eed4 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.6" +version="2.8.7" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index f2d485f921..c68bca162c 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.6" +PYTHON_BUILD_VERSION="2.8.7" OLDIFS="$IFS" From 6ff25c51d37362fe8070713c41e58d6c2353f99e Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Fri, 2 Oct 2026 07:49:21 +0530 Subject: [PATCH 1299/1324] pyenv-binary: allow local definitions to override published packages (#3577) --- plugins/pyenv-binary/README.md | 5 ++ .../pyenv-binary/libexec/pyenv-binary-install | 6 ++ plugins/pyenv-binary/test/install.bats | 67 +++++++++++++++++-- 3 files changed, 74 insertions(+), 4 deletions(-) diff --git a/plugins/pyenv-binary/README.md b/plugins/pyenv-binary/README.md index 14004dd558..0eace53669 100644 --- a/plugins/pyenv-binary/README.md +++ b/plugins/pyenv-binary/README.md @@ -33,6 +33,11 @@ proceeds. pyenv binary install 3.14.7 ``` +A definition with the selected package entry's name in a plugin's +`share/python-build` directory overrides the published definition. The normal +Python-Build search order applies, including `PYTHON_BUILD_DEFINITIONS`. +Local definitions are installed without downloading the stock definition. + ### `pyenv binary package [-v|--verbose] [:] --archive-base-url ` Installs `` from source under a separate name, packages that install diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-install b/plugins/pyenv-binary/libexec/pyenv-binary-install index 80c73b8748..a8f956e949 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-install +++ b/plugins/pyenv-binary/libexec/pyenv-binary-install @@ -100,6 +100,12 @@ if [ -z "$entry" ]; then echo "pyenv-binary: no binary available for $requested on $os/$arch" >&2 exit 1 fi +definitions="$(pyenv-install --list --bare)" || definitions="" +if printf '%s\n' "$definitions" | grep -qxF -- "$entry"; then + pyenv-install "$entry:$version" + exit +fi + if ! [[ "$expected_sha" =~ ^[0-9a-fA-F]{64}$ ]]; then echo "pyenv-binary: invalid checksum for $entry" >&2 exit 1 diff --git a/plugins/pyenv-binary/test/install.bats b/plugins/pyenv-binary/test/install.bats index 367e7b4fb8..028e207dbb 100644 --- a/plugins/pyenv-binary/test/install.bats +++ b/plugins/pyenv-binary/test/install.bats @@ -44,7 +44,7 @@ STUB "$(host_distro)" 0 >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" stub_downloads create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' - create_stub pyenv-install 'echo installed' + create_stub pyenv-install '[ "$1" = --list ] && exit; echo installed' run pyenv-binary-install 3.14.7 assert_failure @@ -58,6 +58,64 @@ STUB assert_success "" } +@test "a plugin definition overrides a published binary without its checksum" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' + use_manifest + export TMPDIR="$BATS_TEST_TMPDIR/temp" + mkdir -p "$TMPDIR" + local entry="3.14.7-ubuntu-24.04-x86_64" + printf '3.14.7\t%s\tLinux\tx86_64\t%s\t%s\n' "$entry" \ + "$(host_distro)" "" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub curl 'touch "$BATS_TEST_TMPDIR/downloaded"; exit 1' + PATH="${BATS_TEST_DIRNAME}/../../python-build/bin:$PATH" + mkdir -p "$PYENV_ROOT/plugins/first/share/python-build" "$PYENV_ROOT/plugins/second/share/python-build" + printf '%s\n' 'mkdir -p "$PREFIX_PATH"; echo first > "$PREFIX_PATH/marker"' \ + > "$PYENV_ROOT/plugins/first/share/python-build/$entry" + echo 'exit 1' > "$PYENV_ROOT/plugins/second/share/python-build/$entry" + + run pyenv-binary-install 3.14 + assert_success "" + assert_equal first "$(cat "$PYENV_ROOT/versions/3.14.7/marker")" + [ ! -e "$BATS_TEST_TMPDIR/downloaded" ] + assert_equal "" "$(find "$TMPDIR" -mindepth 1 -maxdepth 1 -type d)" +} + +@test "an explicit definition path takes precedence over a plugin definition" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' + use_manifest + local entry="3.14.7-ubuntu-24.04-x86_64" + printf '3.14.7\t%s\tLinux\tx86_64\t%s\t%s\n' "$entry" \ + "$(host_distro)" "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub curl 'touch "$BATS_TEST_TMPDIR/downloaded"; exit 1' + PATH="${BATS_TEST_DIRNAME}/../../python-build/bin:$PATH" + export PYTHON_BUILD_DEFINITIONS="$BATS_TEST_TMPDIR/custom definitions" + mkdir -p "$PYTHON_BUILD_DEFINITIONS" "$PYENV_ROOT/plugins/custom/share/python-build" + printf '%s\n' 'mkdir -p "$PREFIX_PATH"; echo custom > "$PREFIX_PATH/marker"' \ + > "$PYTHON_BUILD_DEFINITIONS/$entry" + echo 'exit 1' > "$PYENV_ROOT/plugins/custom/share/python-build/$entry" + + run pyenv-binary-install 3.14.7 + assert_success "" + assert_equal custom "$(cat "$PYENV_ROOT/versions/3.14.7/marker")" + [ ! -e "$BATS_TEST_TMPDIR/downloaded" ] +} + +@test "rejects an invalid published checksum when definition lookup fails" { + create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' + use_manifest + printf '3.14.7\t3.14.7-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\tinvalid\n' \ + "$(host_distro)" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" + create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' + create_stub pyenv-install 'exit 1' + create_stub curl 'touch "$BATS_TEST_TMPDIR/downloaded"; exit 1' + + run pyenv-binary-install 3.14.7 + assert_failure "pyenv-binary: invalid checksum for 3.14.7-ubuntu-24.04-x86_64" + [ ! -e "$BATS_TEST_TMPDIR/downloaded" ] +} + @test "installs a matching published binary with an uppercase checksum" { create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' use_manifest @@ -70,6 +128,7 @@ STUB stub_downloads create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' create_stub pyenv-install <<'STUB' +[ "$1" = --list ] && exit definition="${1%:*}" printf '%s:%s\n' "${definition##*/}" "${1##*:}" cat "$definition" @@ -89,7 +148,7 @@ definition" "$(host_distro)" "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" stub_downloads create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' - create_stub pyenv-install 'echo "${1##*:}"' + create_stub pyenv-install '[ "$1" = --list ] && exit; echo "${1##*:}"' run pyenv-binary-install 3.14 assert_success "3.14.10" @@ -125,7 +184,7 @@ definition" stub_downloads create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' create_stub sw_vers 'echo 26.6.2' - create_stub pyenv-install 'echo "${1##*:}"' + create_stub pyenv-install '[ "$1" = --list ] && exit; echo "${1##*:}"' run pyenv-binary-install 3.14.7 assert_success "3.14.7" @@ -137,7 +196,7 @@ definition" "$definition_sha" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" create_stub uname 'case "$1" in -s) echo Darwin;; -m) echo arm64;; esac' create_stub sw_vers 'echo 15.7.8' - create_stub pyenv-install 'echo installed' + create_stub pyenv-install '[ "$1" = --list ] && exit; echo installed' run pyenv-binary-install 3.14.7 assert_failure "pyenv-binary: no binary available for 3.14.7 on Darwin/arm64" From f8b1d7ae09e3ee07321cc820f77cb19d4d499284 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82?= <103243820+Romwierz@users.noreply.github.com> Date: Fri, 2 Oct 2026 10:17:30 +0200 Subject: [PATCH 1300/1324] pyenv-exec: add the `--environment` option for programs that embed `libpython` without a path (#3537) --------- Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com> Co-authored-by: native-api --- COMMANDS.md | 15 ++++++++++++-- libexec/pyenv-exec | 42 +++++++++++++++++++++++++++++++++++++- test/exec.bats | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 105 insertions(+), 3 deletions(-) diff --git a/COMMANDS.md b/COMMANDS.md index 748b98e0c8..2067e72ac0 100644 --- a/COMMANDS.md +++ b/COMMANDS.md @@ -315,7 +315,7 @@ Lists all Python versions with the given command installed. ## `pyenv exec` - Usage: pyenv exec [arg1 arg2...] + Usage: pyenv exec [-N|--environment] [arg1 arg2...] Runs an executable by first preparing PATH so that the selected Python version's `bin` directory is at the front. @@ -326,7 +326,18 @@ For example, if the currently selected Python version is 3.9.7: is equivalent to: - PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt + PYENV_VERSION="3.9.7" PATH="$PYENV_ROOT/versions/3.9.7/bin:$PATH" pip install -r requirements.txt + +The `--environment` option sets `PYTHONHOME` and `LD_LIBRARY_PATH` (`DYLD_LIBRARY_PATH` in macOS) in the program's environment. +This is needed to run programs that embed Python by loading `libpython` without specifying rpath or an explicit path. +This breaks linking for programs that expect to link to a different `libpython` with the same name as one +in selected Python -- thus it's not done by default. + +In macOS, System Integrity Protection (SIP) removes `DYLD_LIBRARY_PATH` from a process' environment +upon `exec` (not `fork`) if the executable being run is protected. The protection covers preinstalled system software +(including preinstalled shells) and does not cover user-installed apps and 3rd-party software. See +[About System Integrity Protection on your Mac - Apple Support](https://support.apple.com/en-us/102149) +for details. ## `pyenv root` diff --git a/libexec/pyenv-exec b/libexec/pyenv-exec index d0f6d07163..59a8d6d7e8 100755 --- a/libexec/pyenv-exec +++ b/libexec/pyenv-exec @@ -2,7 +2,17 @@ # # Summary: Run an executable with the selected Python version # -# Usage: pyenv exec [arg1 arg2...] +# Usage: pyenv exec [-N|--environment] [arg1 arg2...] +# +# -N/--environment Set PYTHONHOME and LD_LIBRARY_PATH (DYLD_LIBRARY_PATH in macOS) +# envvars for the running command. +# This allows to run programs that embed Python without using rpath or +# exact library path to libpython. +# WARNING: For the running command and its child processes, this will +# break linkage for programs that expect to be linked to a different +# libpython instance with the same name! +# WARNING: In macOS, DYLD_LIBRARY_PATH will be unset by the system for +# processes covered by System Integrity Protection. # # Runs an executable by first preparing PATH so that the selected Python # version's `bin' directory is at the front. @@ -18,9 +28,16 @@ set -e # Provide pyenv completions if [ "$1" = "--complete" ]; then + echo --environment exec pyenv-shims --short fi +unset MODIFY_ENV +if [ "$1" = "-N" ] || [ "$1" = "--environment" ]; then + MODIFY_ENV=true + shift +fi + PYENV_VERSION="$(pyenv-version-name -f)" PYENV_COMMAND="$1" @@ -54,4 +71,27 @@ if [ "${PYENV_BIN_PATH#${PYENV_ROOT}}" != "${PYENV_BIN_PATH}" ]; then # Only add to $PATH for non-system version. export PATH="${PYENV_BIN_PATH}:${PATH}" fi +if [ -n "$MODIFY_ENV" ]; then + + # Check if multiple Python versions are selected + VERSIONS=$(pyenv-prefix) + if [[ "$VERSIONS" == *:* ]]; then + VERSION="${VERSIONS%%:*}" + echo "pyenv: Warning: multiple Python versions are selected." \ + "Setting environment variables for the first one, (${VERSION#$PYENV_ROOT})" >&2 + else + VERSION="$VERSIONS" + fi + + # Assign the correct version of PYTHONHOME + export PYTHONHOME="$VERSION" + case "$(uname -s)" in + Darwin) + export DYLD_LIBRARY_PATH="${PYTHONHOME}/lib${DYLD_LIBRARY_PATH:+:${DYLD_LIBRARY_PATH}}" + ;; + *) + export LD_LIBRARY_PATH="${PYTHONHOME}/lib${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}" + ;; + esac +fi exec "$PYENV_COMMAND_PATH" "$@" diff --git a/test/exec.bats b/test/exec.bats index ff49912bea..fb1422fa72 100644 --- a/test/exec.bats +++ b/test/exec.bats @@ -34,6 +34,7 @@ EOF assert_success assert_output < Date: Sat, 3 Oct 2026 07:09:29 +0300 Subject: [PATCH 1301/1324] README: grammar fixes [no ci] --- plugins/python-build/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index e0a333b35e..f6f4de5b1c 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -182,13 +182,13 @@ You can set certain environment variables to control the build process. their original source URLs instead of using a mirror. * `PYTHON_BUILD_HTTP_CLIENT`, explicitly specify the HTTP client type to use. `aria2`, `curl` and `wget` are the supported values and by default, are searched in that order. * `PYTHON_BUILD_CURL_OPTS`, `PYTHON_BUILD_WGET_OPTS`, `PYTHON_BUILD_ARIA2_OPTS` pass additional parameters to the corresponding HTTP client. -* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it would normally will. -* `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it would normally not. +* `PYTHON_BUILD_SKIP_HOMEBREW`, if set, will not search for libraries installed by Homebrew when it normally would. +* `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it normally wouldn't. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. * `PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA`, override the MacPorts OpenSSL formula to use. The default is `openssl3 openssl`. * `PYTHON_BUILD_TCLTK_FORMULA`, override the Homebrew Tcl/Tk formula to use. -* `PYTHON_BUILD_SKIP_MACPORTS`, if set, will not search for libraries installed by MacPorts when it would normally will. -* `PYTHON_BUILD_USE_MACPORTS`, if set, will search for libraries installed by MacPorts when it would normally not. +* `PYTHON_BUILD_SKIP_MACPORTS`, if set, will not search for libraries installed by MacPorts when it normally would. +* `PYTHON_BUILD_USE_MACPORTS`, if set, will search for libraries installed by MacPorts when it normally wouldn't. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions in `share/python-build/` are looked up. * `PYTHON_BUILD_DEFINITIONS` can be a list of colon-separated paths that get From 7d8d87afc000f641796b94107ea13b98dcb3c9f0 Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Sat, 3 Oct 2026 09:47:28 +0300 Subject: [PATCH 1302/1324] Add CPython 3.15.0rc3 (#3578) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.15.0rc2 | 11 ----------- plugins/python-build/share/python-build/3.15.0rc3 | 11 +++++++++++ .../share/python-build/{3.15.0rc2t => 3.15.0rc3t} | 0 3 files changed, 11 insertions(+), 11 deletions(-) delete mode 100644 plugins/python-build/share/python-build/3.15.0rc2 create mode 100644 plugins/python-build/share/python-build/3.15.0rc3 rename plugins/python-build/share/python-build/{3.15.0rc2t => 3.15.0rc3t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0rc2 b/plugins/python-build/share/python-build/3.15.0rc2 deleted file mode 100644 index 7e588bd1c4..0000000000 --- a/plugins/python-build/share/python-build/3.15.0rc2 +++ /dev/null @@ -1,11 +0,0 @@ -prefer_openssl3 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 -export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 -export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 -install_package "openssl-4.0.2" "https://github.com/openssl/openssl/releases/download/openssl-4.0.2/openssl-4.0.2.tar.gz#736b467530f916737b7031310ccb21d8218c6229e61e8e160cd1d3458cd543a8" mac_openssl --if has_broken_mac_openssl -install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline -if has_tar_xz_support; then - install_package "Python-3.15.0rc2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc2.tar.xz#8d93af5eaaaea5adfd41bd786a7ba3f03f2ad1ab57c6a65e0b963deab91d5ad7" standard verify_py315 copy_python_gdb ensurepip -else - install_package "Python-3.15.0rc2" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc2.tgz#164dbb80f5e1fdd8768387724bfa014da1000401b2015d872a2396c8b858b829" standard verify_py315 copy_python_gdb ensurepip -fi diff --git a/plugins/python-build/share/python-build/3.15.0rc3 b/plugins/python-build/share/python-build/3.15.0rc3 new file mode 100644 index 0000000000..7b3f8e3dba --- /dev/null +++ b/plugins/python-build/share/python-build/3.15.0rc3 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.3" "https://github.com/openssl/openssl/releases/download/openssl-4.0.3/openssl-4.0.3.tar.gz#325b5c806167c13b40b1ffeadfe0248197c00eccc4cf123ec1e28d2d2fd216d9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.15.0rc3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc3.tar.xz#506630aa66d5441188f34df22c0760bfe87fc92212630493ebc9ff3b3a7a1d49" standard verify_py315 copy_python_gdb ensurepip +else + install_package "Python-3.15.0rc3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc3.tgz#98a6264c7a48e4ce0f9a9ea4bdd211ea9fcff32b55c79c5efc1ae6d91b032210" standard verify_py315 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.15.0rc2t b/plugins/python-build/share/python-build/3.15.0rc3t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0rc2t rename to plugins/python-build/share/python-build/3.15.0rc3t From 07171d013cac53d1cc9248b4c160217f288a2965 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Oct 2026 11:30:37 +0300 Subject: [PATCH 1303/1324] 2.8.8 --- CHANGELOG.md | 4 ++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index de559ad275..51b38437bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Version History +## Release v2.8.8 +* pyenv-binary: allow local definitions to override published packages by @macayu17 in https://github.com/pyenv/pyenv/pull/3577 +* exec: add the `--environment` option for programs that embed `libpython` without a path by @Romwierz in https://github.com/pyenv/pyenv/pull/3537 +* Add CPython 3.15.0rc3 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3578 ## Release v2.8.7 * Fix rehash repair of individually corrupted shims by @aprylewu in https://github.com/pyenv/pyenv/pull/3540 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 33a7f3eed4..83e3e8ab38 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.7" +version="2.8.8" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c68bca162c..12ea3f0668 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.7" +PYTHON_BUILD_VERSION="2.8.8" OLDIFS="$IFS" From f217e6c6cfdf82575d14c1b31abd28682c5d5f11 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Oct 2026 17:15:05 +0300 Subject: [PATCH 1304/1324] Fix "broken pipe" in pyenv-binary-install --- plugins/pyenv-binary/libexec/pyenv-binary-install | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-install b/plugins/pyenv-binary/libexec/pyenv-binary-install index a8f956e949..18c6fa4460 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-install +++ b/plugins/pyenv-binary/libexec/pyenv-binary-install @@ -100,8 +100,8 @@ if [ -z "$entry" ]; then echo "pyenv-binary: no binary available for $requested on $os/$arch" >&2 exit 1 fi -definitions="$(pyenv-install --list --bare)" || definitions="" -if printf '%s\n' "$definitions" | grep -qxF -- "$entry"; then +definitions="$(pyenv-install --list --bare)" +if grep -qxF -- "$entry" <<<"$definitions"; then pyenv-install "$entry:$version" exit fi From 67cfc116b9b0f89054e7552f94b5295be1aced4e Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Oct 2026 17:37:36 +0300 Subject: [PATCH 1305/1324] -redundant check invalid-format checksums will be rejected during comparison anyway --- plugins/pyenv-binary/libexec/pyenv-binary-install | 6 +----- plugins/pyenv-binary/test/install.bats | 14 -------------- 2 files changed, 1 insertion(+), 19 deletions(-) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-install b/plugins/pyenv-binary/libexec/pyenv-binary-install index 18c6fa4460..f52c7b6dcc 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-install +++ b/plugins/pyenv-binary/libexec/pyenv-binary-install @@ -106,10 +106,6 @@ if grep -qxF -- "$entry" <<<"$definitions"; then exit fi -if ! [[ "$expected_sha" =~ ^[0-9a-fA-F]{64}$ ]]; then - echo "pyenv-binary: invalid checksum for $entry" >&2 - exit 1 -fi expected_sha="$(printf '%s' "$expected_sha" | tr '[:upper:]' '[:lower:]')" curl -fsSL -o "$tmpdir/$entry" "$base_url/$entry" @@ -123,7 +119,7 @@ else echo "pyenv-binary: need sha256sum, shasum or openssl to verify $entry" >&2 exit 1 fi -if [ "$actual_sha" != "$expected_sha" ]; then +if [[ $expected_sha != "$actual_sha" ]]; then echo "pyenv-binary: checksum mismatch for $entry" >&2 exit 1 fi diff --git a/plugins/pyenv-binary/test/install.bats b/plugins/pyenv-binary/test/install.bats index 028e207dbb..6b71024eba 100644 --- a/plugins/pyenv-binary/test/install.bats +++ b/plugins/pyenv-binary/test/install.bats @@ -102,20 +102,6 @@ STUB [ ! -e "$BATS_TEST_TMPDIR/downloaded" ] } -@test "rejects an invalid published checksum when definition lookup fails" { - create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' - use_manifest - printf '3.14.7\t3.14.7-ubuntu-24.04-x86_64\tLinux\tx86_64\t%s\tinvalid\n' \ - "$(host_distro)" >> "$BATS_TEST_TMPDIR/plugin/share/pyenv-binary/versions/3.14" - create_stub uname 'case "$1" in -s) echo Linux;; -m) echo x86_64;; esac' - create_stub pyenv-install 'exit 1' - create_stub curl 'touch "$BATS_TEST_TMPDIR/downloaded"; exit 1' - - run pyenv-binary-install 3.14.7 - assert_failure "pyenv-binary: invalid checksum for 3.14.7-ubuntu-24.04-x86_64" - [ ! -e "$BATS_TEST_TMPDIR/downloaded" ] -} - @test "installs a matching published binary with an uppercase checksum" { create_stub lsb_release 'case "$1" in -si) echo Ubuntu;; -sr) echo 24.04;; esac' use_manifest From f9d17bfc06ccbda37edd84df99a4f50d8d7d2a4a Mon Sep 17 00:00:00 2001 From: native-api Date: Sat, 3 Oct 2026 18:51:15 +0300 Subject: [PATCH 1306/1324] Rename PYTHON_BUILD_TCLTK_FORMULA to PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA; deprecate the old name (#3580) * Update tcl/tk note --- plugins/python-build/README.md | 2 +- plugins/python-build/bin/python-build | 11 ++++++--- plugins/python-build/test/build.bats | 34 +++++++++++++++++++++++++-- 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/plugins/python-build/README.md b/plugins/python-build/README.md index f6f4de5b1c..d0626482d7 100644 --- a/plugins/python-build/README.md +++ b/plugins/python-build/README.md @@ -186,7 +186,7 @@ You can set certain environment variables to control the build process. * `PYTHON_BUILD_USE_HOMEBREW`, if set, will search for libraries installed by Homebrew when it normally wouldn't. * `PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA`, override the Homebrew OpenSSL formula to use. * `PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA`, override the MacPorts OpenSSL formula to use. The default is `openssl3 openssl`. -* `PYTHON_BUILD_TCLTK_FORMULA`, override the Homebrew Tcl/Tk formula to use. +* `PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA`, override the Homebrew Tcl/Tk formula to use. * `PYTHON_BUILD_SKIP_MACPORTS`, if set, will not search for libraries installed by MacPorts when it normally would. * `PYTHON_BUILD_USE_MACPORTS`, if set, will search for libraries installed by MacPorts when it normally wouldn't. * `PYTHON_BUILD_ROOT` overrides the default location from where build definitions diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 12ea3f0668..fd1240db43 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2006,9 +2006,14 @@ use_homebrew_tcltk() { can_use_homebrew || return 1 local tcltk_formula # Since https://github.com/Homebrew/homebrew-core/commit/f10e88617b41555193c22fdcba6109fe82155ee2 (10.11.2024), - # tcl-tk is 9.0. It's supported in CPython since 3.14.0a1 (gh-124111) but is not officially supported as of 3.14.0 - # so we prefer 8 - for tcltk_formula in ${PYTHON_BUILD_TCLTK_FORMULA:-tcl-tk@8 tcl-tk}; do + # tcl-tk is 9.0. It's supported in CPython since 3.14.0a1 (gh-124111) but is not officially supported as of 3.14.0, + # as of 3.15.0rc3, there are still test failures. + # So we prefer 8. + if [[ -n $PYTHON_BUILD_TCLTK_FORMULA ]]; then + export PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-$PYTHON_BUILD_TCLTK_FORMULA}" + echo "warning: the PYTHON_BUILD_TCLTK_FORMULA envvar has been renamed to PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA" >&2 + fi + for tcltk_formula in ${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk@8 tcl-tk}; do local tcltk_prefix="$(brew --prefix "${tcltk_formula}" 2>/dev/null || true)" if [ -d "$tcltk_prefix" ]; then echo "python-build: use ${tcltk_formula} from homebrew" diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 9003f78ff1..959a27dc1e 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -1066,8 +1066,10 @@ make install OUT } -@test "tcl-tk is linked from Homebrew with PYTHON_BUILD_TCLTK_FORMULA" { +test_tcltk_var() { + local var="${1:?}" cached_tarball "Python-3.6.2" + stub_tcltk "${tcl_tk_libdir:=$BATS_TEST_TMPDIR/homebrew-tcl-tk}" stub uname '-s : echo Darwin' @@ -1080,7 +1082,7 @@ OUT stub_make_install run_inline_definition < Date: Thu, 8 Oct 2026 08:43:24 +0300 Subject: [PATCH 1307/1324] python-build: install_git: Support verifying the checkout by SHA-1 (#3586) * For annotated tags, support matching both tag SHA and peeled commit SHA --- plugins/python-build/bin/python-build | 31 ++++++++++ plugins/python-build/test/fetch.bats | 81 +++++++++++++++++++++++++++ 2 files changed, 112 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index fd1240db43..4fee895fd4 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -681,6 +681,18 @@ fetch_git() { local package_name="$1" local git_url="$2" local git_ref="$3" + local git_sha= + + # Checking the ref's SHA-1 is enough to ensure its authenticity according to Linus Torvalds + # https://security.stackexchange.com/questions/67920/how-safe-are-signed-git-tags-only-as-safe-as-sha-1-or-somehow-safer + # ":" is illegal in ref names, see git-check-ref-format(1) manpage + # https://stackoverflow.com/questions/3651860/which-characters-are-illegal-within-a-branch-name + # So we can use it as a delimiter + if [[ $git_ref =~ :(.*)$ ]]; then + git_sha="${BASH_REMATCH[1]}" + # Bash 3.2/Busybox don't support negative length in substring expansion + git_ref="${git_ref::${#git_ref}-${#BASH_REMATCH[0]}}" + fi echo "Cloning ${git_url}..." >&2 @@ -711,6 +723,25 @@ fetch_git() { echo "error: please install \`git\` and try again" >&2 exit 1 fi + + if [[ -n $git_sha ]]; then + #If the tag is annotated, its underlying ("peeled") commit is checked out instead + #In this case, we accept either commit's SHA or tag's SHA for convenience + ( + declare tag_sha commit_sha + cd "${package_name}"; + if git describe --exact-match 2>/dev/null | grep -xF "$git_ref" >/dev/null;then + tag_sha=$(git rev-parse "$git_ref") + fi + commit_sha=$(git rev-parse HEAD) + if [[ (-z $tag_sha || $git_sha != "$tag_sha") && $git_sha != "$commit_sha" ]]; then + echo -n "error: ref \`${git_ref}' SHA-1 mismatch: expected $git_sha, got $commit_sha" >&2 + if [[ -n $tag_sha ]]; then echo -n "(commit) and $tag_sha(tag)" >&2; fi + echo >&2 + exit 1 + fi + ) + fi } fetch_hg() { diff --git a/plugins/python-build/test/fetch.bats b/plugins/python-build/test/fetch.bats index 0846574514..b52d55c85e 100644 --- a/plugins/python-build/test/fetch.bats +++ b/plugins/python-build/test/fetch.bats @@ -112,3 +112,84 @@ Installed package-dev to ${BATS_TEST_TMPDIR}/install OUT unstub git } + +@test "verifying git ref against a sha1 (not an annotated tag) (match)" { + stub git "clone --depth 1 --branch some_tag http://example.com/packages/package.git package-release : mkdir package-release" + stub git "describe --exact-match : false" + stub git "rev-parse HEAD : $BASH -ec '[[ \${PWD##*/} == package-release ]]; echo good_sha1'" + + run_inline_definition < Date: Thu, 8 Oct 2026 11:34:50 +0300 Subject: [PATCH 1308/1324] python-build: support additional versioned OpenSSL Homebrew formulae (#3588) --- plugins/python-build/bin/python-build | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 4fee895fd4..c39d457972 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1770,7 +1770,7 @@ use_macports_ncurses() { } prefer_openssl11() { - PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl}" + PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@1.1 openssl@3 openssl@3.5 openssl@3.0 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl11 openssl3 openssl}" @@ -1779,7 +1779,7 @@ prefer_openssl11() { } prefer_openssl3() { - PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@1.1 openssl}" + PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@3.5 openssl@3.0 openssl@1.1 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3 openssl openssl11}" @@ -1787,7 +1787,7 @@ prefer_openssl3() { } prefer_openssl3_to_4() { - PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@4 openssl@1.1 openssl}" + PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@3.5 openssl@3.0 openssl@4 openssl@1.1 openssl}" export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3 openssl4 openssl openssl11}" From 24a581a624cfd52637cbe281cfbecde0b43a1415 Mon Sep 17 00:00:00 2001 From: native-api Date: Thu, 8 Oct 2026 12:03:43 +0300 Subject: [PATCH 1309/1324] python-build: use more dependencies from Homebrew/MacPorts for PyPy source build (#3587) --- plugins/python-build/bin/python-build | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index c39d457972..7dab4742c9 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1237,6 +1237,11 @@ build_package_pypy() { build_package_pypy_builder() { use_homebrew_openssl || use_macports_openssl || true + export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 + use_homebrew_tcltk || true + use_homebrew_ncurses || use_macports_ncurses || true + use_homebrew || use_macports || true + if [ -f "rpython/bin/rpython" ]; then # pypy 2.x if [ -z "${PYPY_OPTS}" ]; then From 051e82374e69c1e7f5ebb3daedc74ecd9f9557ce Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Sat, 3 Oct 2026 20:55:06 +0300 Subject: [PATCH 1310/1324] Old PyPy: use available softwareheritage links --- .../share/python-build/pypy-2.0.2 | 4 ++-- .../python-build/share/python-build/pypy-2.1 | 4 ++-- .../python-build/share/python-build/pypy-2.2 | 4 ++-- .../share/python-build/pypy-2.2.1 | 4 ++-- .../python-build/share/python-build/pypy-2.3 | 4 ++-- .../share/python-build/pypy-2.3.1 | 14 ++++---------- .../share/python-build/pypy-2.4.0 | 12 ++---------- .../share/python-build/pypy-2.5.0 | 12 ++---------- .../share/python-build/pypy-2.5.1 | 12 ++---------- .../share/python-build/pypy-2.6.0 | 12 ++---------- .../share/python-build/pypy-2.6.1 | 12 ++---------- .../share/python-build/pypy-4.0.0 | 12 ++---------- .../share/python-build/pypy-4.0.1 | 12 ++---------- .../share/python-build/pypy-5.0.0 | 12 ++---------- .../share/python-build/pypy-5.0.1 | 12 ++---------- .../python-build/share/python-build/pypy-5.1 | 12 ++---------- .../share/python-build/pypy-5.1.1 | 12 ++---------- .../share/python-build/pypy2-5.3.1 | 12 ++---------- .../python-build/share/python-build/pypy2-5.4 | 12 ++---------- .../share/python-build/pypy2-5.4.1 | 12 ++---------- .../share/python-build/pypy2-5.6.0 | 12 ++---------- .../share/python-build/pypy2-5.7.0 | 11 +++-------- .../share/python-build/pypy2-5.7.1 | 10 ++-------- .../share/python-build/pypy2.7-5.10.0 | 11 +++-------- .../share/python-build/pypy2.7-5.8.0 | 11 +++-------- .../share/python-build/pypy2.7-5.9.0 | 11 +++-------- .../share/python-build/pypy2.7-6.0.0 | 19 +++---------------- .../share/python-build/pypy2.7-7.0.0 | 19 +++---------------- .../share/python-build/pypy2.7-7.1.0 | 19 +++---------------- .../share/python-build/pypy3-2.3.1 | 12 ++---------- .../share/python-build/pypy3-2.4.0 | 12 ++---------- .../share/python-build/pypy3.3-5.2-alpha1 | 12 ++---------- .../share/python-build/pypy3.3-5.5-alpha | 12 ++---------- .../share/python-build/pypy3.5-5.10.0 | 11 +++-------- .../share/python-build/pypy3.5-5.10.1 | 11 +++-------- .../share/python-build/pypy3.5-5.7-beta | 6 +----- .../share/python-build/pypy3.5-5.7.1-beta | 6 +----- .../share/python-build/pypy3.5-5.8.0 | 6 +----- .../share/python-build/pypy3.5-5.9.0 | 6 +----- .../share/python-build/pypy3.5-6.0.0 | 11 +++-------- .../share/python-build/pypy3.5-7.0.0 | 19 +++---------------- .../share/python-build/pypy3.6-7.0.0 | 15 +-------------- .../share/python-build/pypy3.6-7.1.0 | 19 +++---------------- .../share/python-build/pypy3.6-7.1.1 | 19 +++---------------- 44 files changed, 98 insertions(+), 404 deletions(-) diff --git a/plugins/python-build/share/python-build/pypy-2.0.2 b/plugins/python-build/share/python-build/pypy-2.0.2 index 2e605a90ef..0486c7381d 100644 --- a/plugins/python-build/share/python-build/pypy-2.0.2 +++ b/plugins/python-build/share/python-build/pypy-2.0.2 @@ -1,11 +1,11 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-linux.tar.bz2#3b43c1ac147f6bb11981dd7f8c5458b95d6bdcf1adceb8043c32ca5e8fcab4da" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.2" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.0.2-linux_i686-portable.tar.bz2#4bbd9d8ca9035489d196dc3fc1ac52a6887709776f03e98a8559fdd49ab1e7d3" "pypy" verify_py27 ensurepip ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-linux64.tar.bz2#3f9bc07959a2d6058a0c1b84da837e2ec457642fe03ac46123d145c419a7b5cd" "pypy" verify_py27 ensurepip + install_package "pypy-2.0.2" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.0.2-linux_x86_64-portable.tar.bz2#46ba5719447e4aa2520ba62c677cb4b96f72b3293837105317c963ba9a619986" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.0.2" "https://downloads.python.org/pypy/pypy-2.0.2-osx64.tar.bz2#34f5a7bf22a8bca3b9d79ae3186016c34638669ab19b4af6e38412181c757761" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.1 b/plugins/python-build/share/python-build/pypy-2.1 index 6cb58d308c..7d7924982d 100644 --- a/plugins/python-build/share/python-build/pypy-2.1 +++ b/plugins/python-build/share/python-build/pypy-2.1 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux.tar.bz2#9c0a38a40d3b4e642a159e51abef2827b33e3f7a254365daa24eae85d840eaf5" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.1-linux_i686-portable.tar.bz2#05a269b12c35fd3038e8373bf447ea769b506977c99b778bc23b0beb76def85c" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,7 +17,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-linux64.tar.bz2#80f90bb473635a0249049e87c5cc7cf738e13537c1f1e2857b6345848a3e6d20" "pypy" verify_py27 ensurepip + install_package "pypy-2.1" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.1-linux_x86_64-portable.tar.bz2#a066b6f2627bae90f53a9538f00f38d17bb80c75f3b6b270ac64918811ec86ff" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.1" "https://downloads.python.org/pypy/pypy-2.1-osx64.tar.bz2#d0d788c6d54bb866ace67a1740133cb5bc62357b5ca4783244097f1f648876f0" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.2 b/plugins/python-build/share/python-build/pypy-2.2 index 08403febb2..02ce589194 100644 --- a/plugins/python-build/share/python-build/pypy-2.2 +++ b/plugins/python-build/share/python-build/pypy-2.2 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.2-linux" "https://downloads.python.org/pypy/pypy-2.2-linux.tar.bz2#2bdab70106f6b6d0dd97e42535ce73711c987887fb81fb821801f6fdcd92cdc4" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.2-linux_i686-portable.tar.bz2#9ea0399720e5d06f664386cac7447797e7e281ed7036f461488a8a4e82e68b07" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,7 +17,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.2-linux64" "https://downloads.python.org/pypy/pypy-2.2-linux64.tar.bz2#1583af0122c6ccb0cb95f8c3732925551ce3ca6d5ea0657e21523f8bf97837a3" "pypy" verify_py27 ensurepip + install_package "pypy-2.2-linux64" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.2-linux_x86_64-portable.tar.bz2#005a5ede0e37f3127c565d6cdceb3761f5fa168551d9930aa448e539ed544865" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.2-osx64" "https://downloads.python.org/pypy/pypy-2.2-osx64.tar.bz2#8aa943de7ec38f13fa836b6964dbf58b45142e4fe7b3fdd5fffe37fdcf974e01" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.2.1 b/plugins/python-build/share/python-build/pypy-2.2.1 index 172bed078a..deffc3f2f4 100644 --- a/plugins/python-build/share/python-build/pypy-2.2.1 +++ b/plugins/python-build/share/python-build/pypy-2.2.1 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.2.1-linux" "https://downloads.python.org/pypy/pypy-2.2.1-linux.tar.bz2#4d13483a0e13fc617a7b3d36918ed0e63cf07a7d2827c0a08132b80bc401a55a" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.2.1-linux_i686-portable.tar.bz2#4ed590d7cdc8f3087207d8ea73d2c332f4468a7c61214806178e5b948ea54063" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,7 +17,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.2.1-linux64" "https://downloads.python.org/pypy/pypy-2.2.1-linux64.tar.bz2#022d611ac62a276890d3e262f4f7cc839fcf9f5e1416df01dcd83ba335eacb16" "pypy" verify_py27 ensurepip + install_package "pypy-2.2.1-linux64" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.2.1-linux_x86_64-portable.tar.bz2#5abf3486abffe9208dbf3a173a1241e1ceeaeb0652409a9c1ecad5c697e5a680" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.2.1-osx64" "https://downloads.python.org/pypy/pypy-2.2.1-osx64.tar.bz2#93e215dcffc9073acf41c63518f47fb59de60386aca4416cfe32190c7a096f29" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3 b/plugins/python-build/share/python-build/pypy-2.3 index 08b7ccb9dd..452249aa06 100644 --- a/plugins/python-build/share/python-build/pypy-2.3 +++ b/plugins/python-build/share/python-build/pypy-2.3 @@ -1,7 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) require_distro "Ubuntu 10.04" || true - install_package "pypy-2.3-linux" "https://downloads.python.org/pypy/pypy-2.3-linux.tar.bz2#9071072d42344fb37cc588429864b00fff447bd5d33d51008641fe6822823f1b" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3-linux_i686-portable.tar.bz2#d54b1f460a45ef121ac1af9697de0178255ce0bef6772121e4a4e685fc0dfd2b" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,7 +17,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in ;; "linux64" ) require_distro "Ubuntu 12.04" || true - install_package "pypy-2.3-linux64" "https://downloads.python.org/pypy/pypy-2.3-linux64.tar.bz2#777dbdd9c67ad1b8906288b01ae76bc9f7b80c95e967836f9a700a1679b80008" "pypy" verify_py27 ensurepip + install_package "pypy-2.3-linux64" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3-linux_x86_64-portable.tar.bz2#afe736b855330a3508c4df0e4c74f6e91ec2b61d38ebade816b642c1add8f707" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.3-osx64" "https://downloads.python.org/pypy/pypy-2.3-osx64.tar.bz2#df7ca23ba6c8a63149d910b482be04f069b26dd1f7d0ca15e6342cac94e759d7" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3.1 b/plugins/python-build/share/python-build/pypy-2.3.1 index ffaaeca82b..3d62c0c3a6 100644 --- a/plugins/python-build/share/python-build/pypy-2.3.1 +++ b/plugins/python-build/share/python-build/pypy-2.3.1 @@ -1,10 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.3.1-linux" "https://downloads.python.org/pypy/pypy-2.3.1-linux.tar.bz2#3eed698e8533cca7cbd2c2c87fce39dc14baa7dec03f4b082d870131d2a470e4" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3.1-linux_i686-portable.tar.bz2#d8784020f6b8a5812fd8b3f5e1df8afb176fd56c2a929d4408d28d4a925525fa" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 10.04" || true + install_package "pypy-2.3.1-linux" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3.1-linux_i686-portable.tar.bz2#d8784020f6b8a5812fd8b3f5e1df8afb176fd56c2a929d4408d28d4a925525fa" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +16,8 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "linux64" ) - if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy-2.3.1-linux64" "https://downloads.python.org/pypy/pypy-2.3.1-linux64.tar.bz2#dab7940496d96f1f255a8ef402fa96b94444775e373484e057d2fcabc3928b42" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3.1-linux_x86_64-portable.tar.bz2#453bd1291f0372e25ceab6b37b7a8d1756bebd3e708fcce1379ef931ccf9f75a" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 12.04" || true + install_package "pypy-2.3.1-linux64" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.3.1-linux_x86_64-portable.tar.bz2#453bd1291f0372e25ceab6b37b7a8d1756bebd3e708fcce1379ef931ccf9f75a" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.3.1-osx64" "https://downloads.python.org/pypy/pypy-2.3.1-osx64.tar.bz2#12e363bf5ea3a508600e043b68c47d4148359ca3d999ee207665bb139f8fbf37" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.4.0 b/plugins/python-build/share/python-build/pypy-2.4.0 index 513570c819..bc652ce730 100644 --- a/plugins/python-build/share/python-build/pypy-2.4.0 +++ b/plugins/python-build/share/python-build/pypy-2.4.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.4.0-linux" "https://downloads.python.org/pypy/pypy-2.4.0-linux.tar.bz2#a24adb366f87ac0eba829d7188a156a7d897e71893689fab06502c3f4152ac0e" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.4-linux_i686-portable.tar.bz2#2a330bbeae038c143366982f2104bf4096752f1ec7520fc5608f0527c124b0c2" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.4-linux_i686-portable.tar.bz2#2a330bbeae038c143366982f2104bf4096752f1ec7520fc5608f0527c124b0c2" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "linux64" ) - if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy-2.4.0-linux64" "https://downloads.python.org/pypy/pypy-2.4.0-linux64.tar.bz2#27cdc0d6e8bce2637678f6d076fc780877dffe1bf9aec9e253f95219af9ed099" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.4-linux_x86_64-portable.tar.bz2#b6ed31aff0ebcc9b40554576b1ce789fe4e8c93f7a34cd3983515e1a9a8a45b6" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.4-linux_x86_64-portable.tar.bz2#b6ed31aff0ebcc9b40554576b1ce789fe4e8c93f7a34cd3983515e1a9a8a45b6" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.4.0-osx64" "https://downloads.python.org/pypy/pypy-2.4.0-osx64.tar.bz2#3eb8afdfa42bc9b08b4d3058e21d4ce978a52722fdcfdc67d6c3ee5013a51aaa" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.0 b/plugins/python-build/share/python-build/pypy-2.5.0 index fd0f2fa64e..e1753533ac 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.0 +++ b/plugins/python-build/share/python-build/pypy-2.5.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.5.0-linux" "https://downloads.python.org/pypy/pypy-2.5.0-linux.tar.bz2#3dfd56a986d25929b4ed9f40a5484f72f1d513cd816cf8aaa683106c3391247c" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.5-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5-linux_i686-portable.tar.bz2#6cbe3e1a48900f22c8e4412f82906fba92dd4a165bac5fe6866a2a26383fe3b8" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.5-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5-linux_i686-portable.tar.bz2#6cbe3e1a48900f22c8e4412f82906fba92dd4a165bac5fe6866a2a26383fe3b8" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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.5.0-linux64" "https://downloads.python.org/pypy/pypy-2.5.0-linux64.tar.bz2#7764fb6b662407f8709eaa334c542aac9cb6bfe3291ac198dad0980ca129f3c2" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.5-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5-linux_x86_64-portable.tar.bz2#26c5a0964b32b09be0282766c27937c843a12b6820ff2d440c6d47a6092837e0" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.5-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5-linux_x86_64-portable.tar.bz2#26c5a0964b32b09be0282766c27937c843a12b6820ff2d440c6d47a6092837e0" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.5.0-osx64" "https://downloads.python.org/pypy/pypy-2.5.0-osx64.tar.bz2#30b392b969b54cde281b07f5c10865a7f2e11a229c46b8af384ca1d3fe8d4e6e" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.1 b/plugins/python-build/share/python-build/pypy-2.5.1 index 19326da9b4..1b9ae05818 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.1 +++ b/plugins/python-build/share/python-build/pypy-2.5.1 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.5.1-linux" "https://downloads.python.org/pypy/pypy-2.5.1-linux.tar.bz2#c0035a2650cafcb384050a8c476ddc41c9fd40b0c3677fab68026f57c715907a" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.5.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5.1-linux_i686-portable.tar.bz2#ed532ddde3332d10faa59af49854cacbca458c597889352e619a87ab22363063" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.5.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5.1-linux_i686-portable.tar.bz2#ed532ddde3332d10faa59af49854cacbca458c597889352e619a87ab22363063" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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.5.1-linux64" "https://downloads.python.org/pypy/pypy-2.5.1-linux64.tar.bz2#68e0955dbc80a0d51dfa9a8a76d8623f34920ece1bcbc6d910c2be019a653ba8" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.5.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5.1-linux_x86_64-portable.tar.bz2#157bee6349878cf0ef575b0d7bfd6cbb837c00e83b2872c924580ef7bc32c0d7" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.5.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.5.1-linux_x86_64-portable.tar.bz2#157bee6349878cf0ef575b0d7bfd6cbb837c00e83b2872c924580ef7bc32c0d7" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.5.1-osx64" "https://downloads.python.org/pypy/pypy-2.5.1-osx64.tar.bz2#db40dc8b5e95ef9c3322bd9897099e91555ef34188cf1c3852a92b081142d183" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.0 b/plugins/python-build/share/python-build/pypy-2.6.0 index b1e6b4f2cb..f50bdf0348 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.0 +++ b/plugins/python-build/share/python-build/pypy-2.6.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.6.0-linux" "https://downloads.python.org/pypy/pypy-2.6.0-linux.tar.bz2#6e0b052c40a59bf5a85ee239980bbcab8b031b4c2bc33b99efe1b072977d9910" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.6-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6-linux_i686-portable.tar.bz2#e01db0984f7fecd80dadfb1d5f65118e596e3984d12643b4d552e83f92bff549" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.6-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6-linux_i686-portable.tar.bz2#e01db0984f7fecd80dadfb1d5f65118e596e3984d12643b4d552e83f92bff549" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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://downloads.python.org/pypy/pypy-2.6.0-linux64.tar.bz2#f5d2b0e3594cec57e32d3e43a951041ec330e1e962a836be470d591633e51388" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.6-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6-linux_x86_64-portable.tar.bz2#97284b66476c5d1b17a62f5017569a0073730928e19f95b49d78d6bc60b69495" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.6-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6-linux_x86_64-portable.tar.bz2#97284b66476c5d1b17a62f5017569a0073730928e19f95b49d78d6bc60b69495" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.6.0-osx64" "https://downloads.python.org/pypy/pypy-2.6.0-osx64.tar.bz2#77f1d056484e40e0a8e2e2b2b489eedfe785605ef36b144ffce05f7b748f6acd" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.1 b/plugins/python-build/share/python-build/pypy-2.6.1 index 30d444465c..a7df646acd 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.1 +++ b/plugins/python-build/share/python-build/pypy-2.6.1 @@ -3,11 +3,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-2.6.1-freebsd64" "https://downloads.python.org/pypy/pypy-2.6.1-freebsd64.tar.bz2#58118e88ce01c1d48b31d293db40687efbdeba54334eb55ba96de9ecf3c39055" "pypy" verify_py27 ensurepip ;; "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-2.6.1-linux" "https://downloads.python.org/pypy/pypy-2.6.1-linux.tar.bz2#d010b1f1aafdb01beb107f16843985508ce81698260ce830690686d9b2768c88" "pypy" verify_py27 ensurepip - else - install_package "pypy-2.6.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6.1-linux_i686-portable.tar.bz2#af8f05790fe21bffdb0619d39f2890e2ecabe47bbd3b21c2c97b9778e4cdb378" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.6.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6.1-linux_i686-portable.tar.bz2#af8f05790fe21bffdb0619d39f2890e2ecabe47bbd3b21c2c97b9778e4cdb378" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -22,11 +18,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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://downloads.python.org/pypy/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-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6.1-linux_x86_64-portable.tar.bz2#ed6a35dee4c982123af716e62975039e18920b599afc4f6a2f3c7c89d0403389" "pypy" verify_py27 ensurepip - fi + install_package "pypy-2.6.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-2.6.1-linux_x86_64-portable.tar.bz2#ed6a35dee4c982123af716e62975039e18920b599afc4f6a2f3c7c89d0403389" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-2.6.1-osx64" "https://downloads.python.org/pypy/pypy-2.6.1-osx64.tar.bz2#4a78ef76ec38a49a9de40225c337e89486fa09938c600df2bd2dd60110066f65" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.0 b/plugins/python-build/share/python-build/pypy-4.0.0 index 46ee1cde58..2a12261dda 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.0 +++ b/plugins/python-build/share/python-build/pypy-4.0.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-4.0.0-linux" "https://downloads.python.org/pypy/pypy-4.0.0-linux.tar.bz2#365600947775bc73a902a5b1d11f8b96cf49f07cdbbab28bb47240097b4bb4c5" "pypy" verify_py27 ensurepip - else - install_package "pypy-4.0-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0-linux_i686-portable.tar.bz2#8d6b775a1fdc79db453f80e6b50cd9979d89be3714cd71d3af21bf9f56745610" "pypy" verify_py27 ensurepip - fi + install_package "pypy-4.0-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0-linux_i686-portable.tar.bz2#8d6b775a1fdc79db453f80e6b50cd9979d89be3714cd71d3af21bf9f56745610" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -27,11 +23,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-4.0.0-ppc64le" "https://downloads.python.org/pypy/pypy-4.0.0-ppc64le.tar.bz2#0ba3c313afb48cba2798c9b46e9a27e24a597f90e092b649b6ac9cd8af4f7765" "pypy" verify_py27 ensurepip ;; "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-4.0.0-linux64" "https://downloads.python.org/pypy/pypy-4.0.0-linux64.tar.bz2#30365cf4fa6cd8e9ff44126f06dcaebefda35c2543ddcf9b9e8516c29cabe726" "pypy" verify_py27 ensurepip - else - install_package "pypy-4.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0-linux_x86_64-portable.tar.bz2#61fb04eaa823763b8de777e16edc02b09116985586f53c14c6e85d531072a38f" "pypy" verify_py27 ensurepip - fi + install_package "pypy-4.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0-linux_x86_64-portable.tar.bz2#61fb04eaa823763b8de777e16edc02b09116985586f53c14c6e85d531072a38f" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-4.0.0-osx64" "https://downloads.python.org/pypy/pypy-4.0.0-osx64.tar.bz2#d9e590fe5b9461bbdff56c76636e844ef90a297f82d0d2e204866c8a21759a50" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.1 b/plugins/python-build/share/python-build/pypy-4.0.1 index c2b70d9d49..355409e4fa 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.1 +++ b/plugins/python-build/share/python-build/pypy-4.0.1 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-4.0.1-linux" "https://downloads.python.org/pypy/pypy-4.0.1-linux.tar.bz2#721920fcbb6aefc9a98e868e32b7f4ea5fd68b7f9305d08d0a2595327c9c0611" "pypy" verify_py27 ensurepip - else - install_package "pypy-4.0.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0.1-linux_i686-portable.tar.bz2#2a1078bf36372b1c2919c11c418860dd7f0d44c92e6772bb36490eaf793b5c47" "pypy" verify_py27 ensurepip - fi + install_package "pypy-4.0.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0.1-linux_i686-portable.tar.bz2#2a1078bf36372b1c2919c11c418860dd7f0d44c92e6772bb36490eaf793b5c47" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -27,11 +23,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-4.0.1-ppc64le" "https://downloads.python.org/pypy/pypy-4.0.1-ppc64le.tar.bz2" "pypy" verify_py27 ensurepip ;; "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-4.0.1-linux64" "https://downloads.python.org/pypy/pypy-4.0.1-linux64.tar.bz2#0d6090cee59f4b9bab91ddbea76580d0c232b78dae65aaa9e8fa8d4449ba25b4" "pypy" verify_py27 ensurepip - else - install_package "pypy-4.0.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0.1-linux_x86_64-portable.tar.bz2#b3803f6dd9bbb964f7d322aa4aeb93191ff0ebe573428c1d2014ea26da49ff53" "pypy" verify_py27 ensurepip - fi + install_package "pypy-4.0.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-4.0.1-linux_x86_64-portable.tar.bz2#b3803f6dd9bbb964f7d322aa4aeb93191ff0ebe573428c1d2014ea26da49ff53" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-4.0.1-osx64" "https://downloads.python.org/pypy/pypy-4.0.1-osx64.tar.bz2#06be1299691f7ea558bf8e3bdf3d20debb8ba03cd7cadf04f2d6cbd5fd084430" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.0 b/plugins/python-build/share/python-build/pypy-5.0.0 index f65f2cdbb6..7d435c9443 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.0 +++ b/plugins/python-build/share/python-build/pypy-5.0.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-5.0.0-linux" "https://downloads.python.org/pypy/pypy-5.0.0-linux.tar.bz2#a9cc9afa94ff1cde811626a70081c477c9840e7816c0562d1903fd823d222ceb" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.0-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0-linux_i686-portable.tar.bz2#316e03afdd2f6212857789933c01f0d41a1665c80d28526c0fb4082b6d3f4f60" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.0-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0-linux_i686-portable.tar.bz2#316e03afdd2f6212857789933c01f0d41a1665c80d28526c0fb4082b6d3f4f60" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -27,11 +23,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-5.0.0-ppc64le" "https://downloads.python.org/pypy/pypy-5.0.0-ppc64le.tar.bz2#e72fe5c094186f79c997000ddbaa01616def652a8d1338b75a27dfa3755eb86c" "pypy" verify_py27 ensurepip ;; "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-5.0.0-linux64" "https://downloads.python.org/pypy/pypy-5.0.0-linux64.tar.bz2#b9c73be8e3c3b0835df83bdb86335712005240071cdd4dc245ac30b457063ae0" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0-linux_x86_64-portable.tar.bz2#57c9ea251bf1e7074e14aeecdd1ac8bb2fc53dbf3f90a9613d03e33076a7fa08" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0-linux_x86_64-portable.tar.bz2#57c9ea251bf1e7074e14aeecdd1ac8bb2fc53dbf3f90a9613d03e33076a7fa08" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-5.0.0-osx64" "https://downloads.python.org/pypy/pypy-5.0.0-osx64.tar.bz2#45ed8bf799d0fd8eb051cbcc427173fba74dc9c2f6c309d7a3cc90f4917e6a10" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.1 b/plugins/python-build/share/python-build/pypy-5.0.1 index da95819dd9..3d2e7a3935 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.1 +++ b/plugins/python-build/share/python-build/pypy-5.0.1 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy-5.0.1-linux" "https://downloads.python.org/pypy/pypy-5.0.1-linux.tar.bz2#4b9a294033f917a1674c9ddcb2e7e8d32c4f4351f8216fd1fe23f6d2ad2b1a36" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.0.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0.1-linux_i686-portable.tar.bz2#96f1b487655c914a03f56747dfff9c20350175cae01e2911f19b1016442ed6b5" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.0.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0.1-linux_i686-portable.tar.bz2#96f1b487655c914a03f56747dfff9c20350175cae01e2911f19b1016442ed6b5" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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-5.0.1-linux64" "https://downloads.python.org/pypy/pypy-5.0.1-linux64.tar.bz2#1b1363a48edd1c1b31ca5e995987eda3d460a3404f36c3bb2dd9f52c93eecff5" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.0.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0.1-linux_x86_64-portable.tar.bz2#14d65f84fe8228cfa2b8e924364cf4c71e2bc6b13649098fa340baf044606436" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.0.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.0.1-linux_x86_64-portable.tar.bz2#14d65f84fe8228cfa2b8e924364cf4c71e2bc6b13649098fa340baf044606436" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-5.0.1-osx64" "https://downloads.python.org/pypy/pypy-5.0.1-osx64.tar.bz2#6ebdb9d91203f053b38e3c21841c11a72f416dc185f7b3b7c908229df15e924a" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1 b/plugins/python-build/share/python-build/pypy-5.1 index 0a124772c0..9f63219f18 100644 --- a/plugins/python-build/share/python-build/pypy-5.1 +++ b/plugins/python-build/share/python-build/pypy-5.1 @@ -1,10 +1,6 @@ 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-5.1.0-linux" "https://downloads.python.org/pypy/pypy-5.1.0-linux.tar.bz2#2f6c521b5b3c1082eab58be78655aa01ec400d19baeec93c455864a7483b8744" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1-linux_i686-portable.tar.bz2#893507603a58b8983b69924e60591de39b8f71f70ba36d6e3894db8f7c49c3ea" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1-linux_i686-portable.tar.bz2#893507603a58b8983b69924e60591de39b8f71f70ba36d6e3894db8f7c49c3ea" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -27,11 +23,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in install_package "pypy-5.1.0-ppc64le" "https://downloads.python.org/pypy/pypy-5.1.0-ppc64le.tar.bz2#303764f44154f81d7f0753258c89f8a14653658911a16ec2bcfee04055cbfab6" "pypy" verify_py27 ensurepip ;; "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-5.1.0-linux64" "https://downloads.python.org/pypy/pypy-5.1.0-linux64.tar.bz2#0e8913351d043a50740b98cb89d99852b8bd6d11225a41c8abfc0baf7084cbf6" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1-linux_x86_64-portable.tar.bz2#b2df9b0127457d1c3cc0dc9b8f027a53569ccd3ba5a79012d641e576d9cc003a" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1-linux_x86_64-portable.tar.bz2#b2df9b0127457d1c3cc0dc9b8f027a53569ccd3ba5a79012d641e576d9cc003a" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-5.1.0-osx64" "https://downloads.python.org/pypy/pypy-5.1.0-osx64.tar.bz2#7e270c66347158dd794c101c4817f742f760ed805aa0d10abe19ba4a78a75118" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1.1 b/plugins/python-build/share/python-build/pypy-5.1.1 index d84028ddfd..604b7e965c 100644 --- a/plugins/python-build/share/python-build/pypy-5.1.1 +++ b/plugins/python-build/share/python-build/pypy-5.1.1 @@ -1,10 +1,6 @@ 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-5.1.1-linux" "https://downloads.python.org/pypy/pypy-5.1.1-linux.tar.bz2#7951fd2b87c9e621ec57c932c20da2b8a4a9e87d8daeb9e2b7373f9444219abc" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.1.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1.1-linux_i686-portable.tar.bz2#f00faf426f41f9980344d03fd74bb949875c0cf86048ad762dd445f72353eb8f" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.1.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1.1-linux_i686-portable.tar.bz2#f00faf426f41f9980344d03fd74bb949875c0cf86048ad762dd445f72353eb8f" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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-5.1.1-linux64" "https://downloads.python.org/pypy/pypy-5.1.1-linux64.tar.bz2#c852622e8bc81618c137da35fcf57b2349b956c07b6fd853300846e3cefa64fc" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.1.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1.1-linux_x86_64-portable.tar.bz2#c0502d8db1cc2b81513cc6047813669b0a561cb20e41d60e179f51fe8657a794" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.1.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.1.1-linux_x86_64-portable.tar.bz2#c0502d8db1cc2b81513cc6047813669b0a561cb20e41d60e179f51fe8657a794" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy-5.1.1-osx64" "https://downloads.python.org/pypy/pypy-5.1.1-osx64.tar.bz2#fe2bbb7cf95eb91b1724029f81e85d1dbb6025a2e9a005cfe7258fe07602f771" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.3.1 b/plugins/python-build/share/python-build/pypy2-5.3.1 index 01c4e103f5..1f0db330d4 100644 --- a/plugins/python-build/share/python-build/pypy2-5.3.1 +++ b/plugins/python-build/share/python-build/pypy2-5.3.1 @@ -1,10 +1,6 @@ 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 "pypy2-v5.3.1-linux" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux32.tar.bz2#da69f4280b288e524387103eaa3eb4d036965724c3e546da27135c15a77bd2eb" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.3.1-linux_i686-portable.tar.bz2#4460dad6376406c221406676208abae989c126115b0f0b2e46c8b8a027bf978a" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.3.1-linux_i686-portable.tar.bz2#4460dad6376406c221406676208abae989c126115b0f0b2e46c8b8a027bf978a" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v5.3.1-linux64" "https://downloads.python.org/pypy/pypy2-v5.3.1-linux64.tar.bz2#6d0e8b14875b76b1e77f06a2ee3f1fb5015a645a951ba7a7586289344d4d9c22" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.3.1-linux_x86_64-portable.tar.bz2#73014c3840609a62c0984b9c383652097f0a8c52fb74dd9de70d9df2a9a743ff" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.3.1-linux_x86_64-portable.tar.bz2#73014c3840609a62c0984b9c383652097f0a8c52fb74dd9de70d9df2a9a743ff" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.3.1-osx64" "https://downloads.python.org/pypy/pypy2-v5.3.1-osx64.tar.bz2#7a242d7373b4f18c7f5fe6c2fe6f15e2a405d9adf1f4f934c89b875e60ac5def" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.4 b/plugins/python-build/share/python-build/pypy2-5.4 index ae563e4d63..70b76f4d22 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4 +++ b/plugins/python-build/share/python-build/pypy2-5.4 @@ -1,10 +1,6 @@ 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 "pypy2-v5.4.0-linux" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux32.tar.bz2#ce581270464b14cdecd13dedb9bd7bf98232f767ac4ac282229a405d8e807af1" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4-linux_i686-portable.tar.bz2#7d7d253f009bb2624f43db6b8caeeb73d29177c4166a643a581a231a099c8689" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4-linux_i686-portable.tar.bz2#7d7d253f009bb2624f43db6b8caeeb73d29177c4166a643a581a231a099c8689" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v5.4.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.4.0-linux64.tar.bz2#bdfea513d59dcd580970cb6f79f3a250d00191fd46b68133d5327e924ca845f8" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4-linux_x86_64-portable.tar.bz2#0a48c7ba7163589b1ade9cfe184f422d1bc9a0f988321b2fdcbd924d90594d9a" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4-linux_x86_64-portable.tar.bz2#0a48c7ba7163589b1ade9cfe184f422d1bc9a0f988321b2fdcbd924d90594d9a" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.4.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.4.0-osx64.tar.bz2#3adf21c2bf3432759c99123f21240d71a72aba81d73129e48ef912c34631b723" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.4.1 b/plugins/python-build/share/python-build/pypy2-5.4.1 index 0c17c56ace..331f0ede7a 100644 --- a/plugins/python-build/share/python-build/pypy2-5.4.1 +++ b/plugins/python-build/share/python-build/pypy2-5.4.1 @@ -1,10 +1,6 @@ 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 "pypy2-v5.4.1-linux32" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux32.tar.bz2#6d1e2386ec1e05dffed493aa2d5e6db5cf5de18d7350d44b85f2e45aa5c9a774" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.4.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4.1-linux_i686-portable.tar.bz2#190e1df78886f0b2bd700f110b7d312d91cafc84886c5de3c5d55c10fe1a5e75" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.4.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4.1-linux_i686-portable.tar.bz2#190e1df78886f0b2bd700f110b7d312d91cafc84886c5de3c5d55c10fe1a5e75" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v5.4.1-linux64" "https://downloads.python.org/pypy/pypy2-v5.4.1-linux64.tar.bz2#9c85319778224d7fb0c348f55fe3fada15bb579c5f3870a13ad63b42a737dd72" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.4.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4.1-linux_x86_64-portable.tar.bz2#0b59f8e69c7883d454fce6364ab01a5ec6a481ed7f0cc0f1612c3b0c253f7da4" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.4.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.4.1-linux_x86_64-portable.tar.bz2#0b59f8e69c7883d454fce6364ab01a5ec6a481ed7f0cc0f1612c3b0c253f7da4" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.4.1-osx64" "https://downloads.python.org/pypy/pypy2-v5.4.1-osx64.tar.bz2#ae9329c8f0a6df431c6224c27c634f998688ac803e8d100cee9a774e6bba38b5" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.6.0 b/plugins/python-build/share/python-build/pypy2-5.6.0 index 6cc1e531d0..6a93dfb9c0 100644 --- a/plugins/python-build/share/python-build/pypy2-5.6.0 +++ b/plugins/python-build/share/python-build/pypy2-5.6.0 @@ -1,10 +1,6 @@ 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 "pypy2-v5.6.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux32.tar.bz2#5d4ad43aed5c5e147f7e7c84766c729f34f63b714b6d224e912a2bb42dc95d62" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.6-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.6-linux_i686-portable.tar.bz2#1f220e05ddd4423882794f0e9d3e2dfdecee259d00f1151a52dd244607313399" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.6-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.6-linux_i686-portable.tar.bz2#1f220e05ddd4423882794f0e9d3e2dfdecee259d00f1151a52dd244607313399" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v5.6.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.6.0-linux64.tar.bz2#aad55328cb0673a60b2633dcc3c36cf452917ac906b577eb3aed5876a7666fca" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.6-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.6-linux_x86_64-portable.tar.bz2#9bd220bc54000e142bd4929435959305efeef8c832fbe3c907211cc5214095ce" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.6-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.6-linux_x86_64-portable.tar.bz2#9bd220bc54000e142bd4929435959305efeef8c832fbe3c907211cc5214095ce" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.6.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.6.0-osx64.tar.bz2#6121f791f440564d3a0a41315e9f2d2d61bc484654acffd85d9e1c6e92b85c36" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.7.0 b/plugins/python-build/share/python-build/pypy2-5.7.0 index 19df20db4b..69b0c5b6ba 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.0 +++ b/plugins/python-build/share/python-build/pypy2-5.7.0 @@ -1,8 +1,7 @@ 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 "pypy2-v5.7.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux32.tar.bz2#aaa55085d11a49cb982b059b4159495d7a4fb9afcfda7bfd680cc0175e9fa33b" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true + install_package "pypy2-v5.7.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux32.tar.bz2#aaa55085d11a49cb982b059b4159495d7a4fb9afcfda7bfd680cc0175e9fa33b" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,11 +16,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v5.7.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.7.0-linux64.tar.bz2#64bed80e299b09c13296f577a0f52c5d4be9f7c699a390ca6026f967aeff3846" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.7-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.7-linux_x86_64-portable.tar.bz2#209d2224fe461d85afb201a0c8da18df21219687defadd4550b60420a120bacb" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.7-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.7-linux_x86_64-portable.tar.bz2#209d2224fe461d85afb201a0c8da18df21219687defadd4550b60420a120bacb" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.7.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.7.0-osx64.tar.bz2#9204aa1b55771a374a3118bb43e498c88caca8c33710eecf3249855c4dd1352a" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2-5.7.1 b/plugins/python-build/share/python-build/pypy2-5.7.1 index eb9bedd35e..d2b3ac247f 100644 --- a/plugins/python-build/share/python-build/pypy2-5.7.1 +++ b/plugins/python-build/share/python-build/pypy2-5.7.1 @@ -1,8 +1,6 @@ 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 "pypy2-v5.7.1-linux32" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux32.tar.bz2#f125a227f8c814ba1698168a639ea6ca59bb69c280529639eed29076d8429a73" "pypy" verify_py27 ensurepip - fi + install_package "pypy2-v5.7.1-linux32" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux32.tar.bz2#f125a227f8c814ba1698168a639ea6ca59bb69c280529639eed29076d8429a73" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v5.7.1-linux64" "https://downloads.python.org/pypy/pypy2-v5.7.1-linux64.tar.bz2#c4fa3da42156bed4a9d912433b618a141e0c5161d7cc8c328786736ea5d1c2da" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.7.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.7.1-linux_x86_64-portable.tar.bz2#8a6a194963eb58d582413c4bcdef6119f9f9f117a05032d1fb13192d934510c6" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.7.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.7.1-linux_x86_64-portable.tar.bz2#8a6a194963eb58d582413c4bcdef6119f9f9f117a05032d1fb13192d934510c6" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.7.1-osx64" "https://downloads.python.org/pypy/pypy2-v5.7.1-osx64.tar.bz2#4e99ba356432861534917a9477ace0ccee617bd631512759a530f8383e153a3d" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.10.0 b/plugins/python-build/share/python-build/pypy2.7-5.10.0 index e88a59d8d9..4f4e9055f6 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.10.0 +++ b/plugins/python-build/share/python-build/pypy2.7-5.10.0 @@ -1,15 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.10.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux32.tar.bz2#ee1980467ac8cc9fa9d609f7da93c5282503e59a548781248fe1914a7199d540" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 14.04" || true + install_package "pypy2-v5.10.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux32.tar.bz2#ee1980467ac8cc9fa9d609f7da93c5282503e59a548781248fe1914a7199d540" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.10.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.10.0-linux64.tar.bz2#da85af9240220179493ad66c857934dc7ea91aef8f168cd293a2d99af8346ee2" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.10.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.10.0-linux_x86_64-portable.tar.bz2#c966124497ba8728654ce1161fa4c46b035ff30f289be70960f58292e5897cc8" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.10.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.10.0-linux_x86_64-portable.tar.bz2#c966124497ba8728654ce1161fa4c46b035ff30f289be70960f58292e5897cc8" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true diff --git a/plugins/python-build/share/python-build/pypy2.7-5.8.0 b/plugins/python-build/share/python-build/pypy2.7-5.8.0 index 645498f98a..c6203dcf4e 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.8.0 +++ b/plugins/python-build/share/python-build/pypy2.7-5.8.0 @@ -1,8 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.8.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux32.tar.bz2#a0b125a5781f7e5ddfc3baca46503b14f4ee6a0e234e8d72bfcf3afdf4120bef" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 14.04" || true + install_package "pypy2-v5.8.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux32.tar.bz2#a0b125a5781f7e5ddfc3baca46503b14f4ee6a0e234e8d72bfcf3afdf4120bef" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,11 +16,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "linux64" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.8.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.8.0-linux64.tar.bz2#6274292d0e954a2609b15978cde6efa30942ba20aa5d2acbbf1c70c0a54e9b1e" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.8-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.8-1-linux_x86_64-portable.tar.bz2#52556230af5769c656173ae8a1bdcb2e16aef46e3993ed89f3aec3d220aec862" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.8-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.8-1-linux_x86_64-portable.tar.bz2#52556230af5769c656173ae8a1bdcb2e16aef46e3993ed89f3aec3d220aec862" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.8.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.8.0-osx64.tar.bz2#04b61d1cf13aaca6d0420e854c820b8bd049dc88be16c02542abe8ca26eb075c" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.9.0 b/plugins/python-build/share/python-build/pypy2.7-5.9.0 index e41a5529be..c33081d022 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.9.0 +++ b/plugins/python-build/share/python-build/pypy2.7-5.9.0 @@ -1,8 +1,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.9.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux32.tar.bz2#a2431a9e4ef879da1a2b56b111013b4a6efb87d4173a37bf650de47834ac5fe4" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 14.04" || true + install_package "pypy2-v5.9.0-linux32" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux32.tar.bz2#a2431a9e4ef879da1a2b56b111013b4a6efb87d4173a37bf650de47834ac5fe4" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -17,11 +16,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "linux64" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy2-v5.9.0-linux64" "https://downloads.python.org/pypy/pypy2-v5.9.0-linux64.tar.bz2#790febd4f09e22d6e2f81154efc7dc4b2feec72712aaf4f82aa91b550abb4b48" "pypy" verify_py27 ensurepip - else - install_package "pypy-5.9-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.9-linux_x86_64-portable.tar.bz2#8d39eb98df3adf7882a7f3551f47b8c7cff47a0e20d6aabc57bb592f155c2616" "pypy" verify_py27 ensurepip - fi + install_package "pypy-5.9-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-5.9-linux_x86_64-portable.tar.bz2#8d39eb98df3adf7882a7f3551f47b8c7cff47a0e20d6aabc57bb592f155c2616" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v5.9.0-osx64" "https://downloads.python.org/pypy/pypy2-v5.9.0-osx64.tar.bz2#94de50ed80c7f6392ed356c03fd54cdc84858df43ad21e9e971d1b6da0f6b867" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-6.0.0 b/plugins/python-build/share/python-build/pypy2.7-6.0.0 index 6024fac031..99be870485 100644 --- a/plugins/python-build/share/python-build/pypy2.7-6.0.0 +++ b/plugins/python-build/share/python-build/pypy2.7-6.0.0 @@ -1,16 +1,7 @@ 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 "pypy2-v6.0.0-linux32" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux32.tar.bz2#ad1082d4328ae8f32617b14628648583b82b6d29df3aa42b97bd1853c08c4bc8" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true), OS X < 10.13." - echo "try 'pypy3.5-6.0.0-src' to build from source." - echo - } >&2 - exit 1 - fi + require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true + install_package "pypy2-v6.0.0-linux32" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux32.tar.bz2#ad1082d4328ae8f32617b14628648583b82b6d29df3aa42b97bd1853c08c4bc8" "pypy" verify_py27 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -30,11 +21,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy2-v6.0.0-linux64" "https://downloads.python.org/pypy/pypy2-v6.0.0-linux64.tar.bz2#6cbf942ba7c90f504d8d6a2e45d4244e3bf146c8722d64e9410b85eac6b5af67" "pypy" verify_py27 ensurepip - else - install_package "pypy-6.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-6.0.0-linux_x86_64-portable.tar.bz2#1d2a833680f9432b6b5f6b8503f656535f429eeb6c4bc5408abe5b637bfb9b94" "pypy" verify_py27 ensurepip - fi + install_package "pypy-6.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-6.0.0-linux_x86_64-portable.tar.bz2#1d2a833680f9432b6b5f6b8503f656535f429eeb6c4bc5408abe5b637bfb9b94" "pypy" verify_py27 ensurepip ;; "osx64" ) install_package "pypy2-v6.0.0-osx64" "https://downloads.python.org/pypy/pypy2-v6.0.0-osx64.tar.bz2#d7dc443e6bb9a45212e8d8f5a63e9f6ce23f1d88c50709efea1c75b76c8bc186" "pypy" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.0.0 b/plugins/python-build/share/python-build/pypy2.7-7.0.0 index 1aea960b97..6094ba9f79 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.0.0 +++ b/plugins/python-build/share/python-build/pypy2.7-7.0.0 @@ -1,23 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.0.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-linux32.tar.bz2#446fc208dd77a0048368da830564e6e4180bcd786e524b5369c61785af5c903a" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy2.7-7.0.0-src' to build from source." - echo - } >&2 - exit 1 - fi + require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" || true + install_package "pypy2.7-v7.0.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-linux32.tar.bz2#446fc208dd77a0048368da830564e6e4180bcd786e524b5369c61785af5c903a" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.0.0-linux64" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-linux64.tar.bz2#971b1909f9fe960c4c643a6940d3f8a60d9a7a2937119535ab0cfaf83498ecd7" "pypy" verify_py27 ensurepip - else - install_package "pypy-7.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.0.0-linux_x86_64-portable.tar.bz2#fd71f2bef69c342e492239c2de04a67676bbc08b262d31948bef9e1385a44646" "pypy" verify_py27 ensurepip - fi + install_package "pypy-7.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.0.0-linux_x86_64-portable.tar.bz2#fd71f2bef69c342e492239c2de04a67676bbc08b262d31948bef9e1385a44646" "pypy" verify_py27 ensurepip ;; "osx64" ) if require_osx_version "10.13"; then diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.0 b/plugins/python-build/share/python-build/pypy2.7-7.1.0 index 7f9aaebfbd..23d4ed0e1e 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.0 +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.0 @@ -1,23 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.1.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-linux32.tar.bz2#44ec91e8cb01caab289d8763c203f3aaf288d14325a6c42692bd1ac4e870d758" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy2.7-7.1.0-src' to build from source." - echo - } >&2 - exit 1 - fi + require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" || true + install_package "pypy2.7-v7.1.0-linux32" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-linux32.tar.bz2#44ec91e8cb01caab289d8763c203f3aaf288d14325a6c42692bd1ac4e870d758" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy2.7-v7.1.0-linux64" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-linux64.tar.bz2#fef176a29a2ef068c00c8098e59dab935ca6e956f089672b3f7351da95a034f5" "pypy" verify_py27 ensurepip - else - install_package "pypy-7.1.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.1.0-linux_x86_64-portable.tar.bz2#ee917d9d72fb6a7d15e31e6c5e470ce561a940f112e99f29ac5dd6b41f512657" "pypy" verify_py27 ensurepip - fi + install_package "pypy-7.1.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy-7.1.0-linux_x86_64-portable.tar.bz2#ee917d9d72fb6a7d15e31e6c5e470ce561a940f112e99f29ac5dd6b41f512657" "pypy" verify_py27 ensurepip ;; "osx64" ) if require_osx_version "10.13"; then diff --git a/plugins/python-build/share/python-build/pypy3-2.3.1 b/plugins/python-build/share/python-build/pypy3-2.3.1 index 1e7910c956..5d31ad0cbb 100644 --- a/plugins/python-build/share/python-build/pypy3-2.3.1 +++ b/plugins/python-build/share/python-build/pypy3-2.3.1 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.3.1-linux" "https://downloads.python.org/pypy/pypy3-2.3.1-linux.tar.bz2#7eddc6826e58c9c89e68b59ec8caf1596b76401517ad8d26ad5e18e0ffa45db9" "pypy" verify_py32 ensurepip - else - install_package "pypy3-2.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.3.1-linux_i686-portable.tar.bz2#32a5b3fd4299b13aedf7bc6262eee0f6be9a27744ccf787718553d973ec38abb" "pypy" verify_py32 ensurepip - fi + install_package "pypy3-2.3.1-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.3.1-linux_i686-portable.tar.bz2#32a5b3fd4299b13aedf7bc6262eee0f6be9a27744ccf787718553d973ec38abb" "pypy" verify_py32 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "linux64" ) - if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.3.1-linux64" "https://downloads.python.org/pypy/pypy3-2.3.1-linux64.tar.bz2#303df2cf4766db20ec77786d9091dce284fdab01d7173c5828a35e86bc931b99" "pypy" verify_py32 ensurepip - else - install_package "pypy3-2.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.3.1-linux_x86_64-portable.tar.bz2#cb56b5bde8f444d44a0ea9cd475ddeed00aa895f3dcc89fd37577a51439540aa" "pypy" verify_py32 ensurepip - fi + install_package "pypy3-2.3.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.3.1-linux_x86_64-portable.tar.bz2#cb56b5bde8f444d44a0ea9cd475ddeed00aa895f3dcc89fd37577a51439540aa" "pypy" verify_py32 ensurepip ;; "osx64" ) install_package "pypy3-2.3.1-osx64" "https://downloads.python.org/pypy/pypy3-2.3.1-osx64.tar.bz2#600d4dad2039b8035582c0e0ce9b71e8236d95db26cff48c84c6d1e0ea6814c1" "pypy" verify_py32 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3-2.4.0 b/plugins/python-build/share/python-build/pypy3-2.4.0 index 38065d936f..4460584886 100644 --- a/plugins/python-build/share/python-build/pypy3-2.4.0 +++ b/plugins/python-build/share/python-build/pypy3-2.4.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.4.0-linux" "https://downloads.python.org/pypy/pypy3-2.4.0-linux.tar.bz2#108fdcccfddb9b2cb2fc3cbca5e6f7902ed3ab74a24c8ae29da7fbdadbab4345" "pypy" verify_py32 ensurepip - else - install_package "pypy3-2.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.4-linux_i686-portable.tar.bz2#7ce050b4928dc58f7e9dd01e3e48c443c85616ca83f4bcc9147f1078d0fd126c" "pypy" verify_py32 ensurepip - fi + install_package "pypy3-2.4-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.4-linux_i686-portable.tar.bz2#7ce050b4928dc58f7e9dd01e3e48c443c85616ca83f4bcc9147f1078d0fd126c" "pypy" verify_py32 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" "Ubuntu 12.10" "Ubuntu 13.04" "Ubuntu 13.10" "Ubuntu 14.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in fi ;; "linux64" ) - if require_distro "Ubuntu 12.04" 1>/dev/null 2>&1; then - install_package "pypy3-2.4.0-linux64" "https://downloads.python.org/pypy/pypy3-2.4.0-linux64.tar.bz2#24e680b1742af7361107876a421dd793f5ef852dd5f097546f84b1378f7f70cc" "pypy" verify_py32 ensurepip - else - install_package "pypy3-2.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.4-linux_x86_64-portable.tar.bz2#7b3e0f0bc924bd0d68d85c0b566979e74a2b366595db3d81502267367370a5fb" "pypy" verify_py32 ensurepip - fi + install_package "pypy3-2.4-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3-2.4-linux_x86_64-portable.tar.bz2#7b3e0f0bc924bd0d68d85c0b566979e74a2b366595db3d81502267367370a5fb" "pypy" verify_py32 ensurepip ;; "osx64" ) install_package "pypy3-2.4.0-osx64" "https://downloads.python.org/pypy/pypy3-2.4.0-osx64.tar.bz2#dcd86bdb753e93dbf55e1f3af3ffa97eea328b8b77aa60e92ea2260a6258cedb" "pypy" verify_py32 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 index 52d3b10a0c..b60d8c2fbd 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 +++ b/plugins/python-build/share/python-build/pypy3.3-5.2-alpha1 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 10.04" 1>/dev/null 2>&1; then - install_package "pypy3.3-v5.2.0-alpha1-linux" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux32.tar.bz2#351aec101bdedddae7ea1b63845a5654b1a95fc9393894ef84a66749f6945f17" "pypy" verify_py33 ensurepip - else - install_package "pypy3.3-5.2-alpha-20160602-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.2-alpha-20160602-linux_i686-portable.tar.bz2#6f2412167c63d6711b41062a23794828f95a75400082a6957595867762cb170d" "pypy" verify_py33 ensurepip - fi + install_package "pypy3.3-5.2-alpha-20160602-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.2-alpha-20160602-linux_i686-portable.tar.bz2#6f2412167c63d6711b41062a23794828f95a75400082a6957595867762cb170d" "pypy" verify_py33 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -19,11 +15,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy3.3-v5.2.0-alpha1-linux64" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-linux64.tar.bz2#f5e66ab24267d6ddf662d07c512d06c10ebc732ae62093dabbd775ac63b9060a" "pypy" verify_py33 ensurepip - else - install_package "pypy3.3-5.2-alpha-20160602-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.2-alpha-20160602-linux_x86_64-portable.tar.bz2#4d1e7dd727448c1b2caa90c943713c0aa10b32e9d977c2c3b348835f515a3ad4" "pypy" verify_py33 ensurepip - fi + install_package "pypy3.3-5.2-alpha-20160602-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.2-alpha-20160602-linux_x86_64-portable.tar.bz2#4d1e7dd727448c1b2caa90c943713c0aa10b32e9d977c2c3b348835f515a3ad4" "pypy" verify_py33 ensurepip ;; "osx64" ) install_package "pypy3.3-v5.2.0-alpha1-osx64" "https://downloads.python.org/pypy/pypy3.3-v5.2.0-alpha1-osx64.tar.bz2#abaceab5d2790f49e04e0d80669283da41f94b77cf483b30ac0de48d3c19f304" "pypy" verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha index 328b5b580f..7dcca4c988 100644 --- a/plugins/python-build/share/python-build/pypy3.3-5.5-alpha +++ b/plugins/python-build/share/python-build/pypy3.3-5.5-alpha @@ -1,10 +1,6 @@ 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 "pypy3.3-v5.5.0-linux32" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-linux32.tar.bz2#966ee7951ad497ac907e01554fe48da77cc64a5e35a1307477c2f78652eba622" "pypy" verify_py33 ensurepip - else - install_package "pypy3.3-5.5-alpha-20161014-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.5-alpha-20161014-linux_i686-portable.tar.bz2#af32420f368bc3276d15a5cf4e2e8cb0bef16f711ee830a636ad117e55c3268f" "pypy" verify_py33 ensurepip - fi + install_package "pypy3.3-5.5-alpha-20161014-linux_i686-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.5-alpha-20161014-linux_i686-portable.tar.bz2#af32420f368bc3276d15a5cf4e2e8cb0bef16f711ee830a636ad117e55c3268f" "pypy" verify_py33 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true @@ -24,11 +20,7 @@ case "$(pypy_architecture 2>/dev/null || true)" in 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 "pypy3-v5.5.0-linux64" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-linux64.tar.bz2#41ef7c25fd04eeb20deaa83c5d88c10aef2bbc8bcfd9e53e7cc61136220861cc" "pypy" verify_py33 ensurepip - else - install_package "pypy3.3-5.5-alpha-20161013-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.5-alpha-20161013-linux_x86_64-portable.tar.bz2#1cd7a00da376b2db29b3e1f3e9bb7a77afc8ad988b3f13fd0805f37b23960a34" "pypy" verify_py33 ensurepip - fi + install_package "pypy3.3-5.5-alpha-20161013-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.3-5.5-alpha-20161013-linux_x86_64-portable.tar.bz2#1cd7a00da376b2db29b3e1f3e9bb7a77afc8ad988b3f13fd0805f37b23960a34" "pypy" verify_py33 ensurepip ;; "osx64" ) install_package "pypy3-v5.5.0-osx64" "https://downloads.python.org/pypy/pypy3.3-v5.5.0-alpha-osx64.tar.bz2#fa45f861a6c40ae44f99ec94c521adfb6b64b0c9c0b6fc6e9df018241a648986" "pypy" verify_py33 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.0 b/plugins/python-build/share/python-build/pypy3.5-5.10.0 index 7fb0347708..55fddedd34 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.0 @@ -1,15 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.0-linux32" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux32.tar.bz2#529bc3b11edbdcdd676d90c805b8f607f6eedd5f0ec457a31bbe09c03f5bebfe" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 14.04" || true + install_package "pypy3-v5.10.0-linux32" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux32.tar.bz2#529bc3b11edbdcdd676d90c805b8f607f6eedd5f0ec457a31bbe09c03f5bebfe" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.10.0-linux64.tar.bz2#aa4fb52fb858d973dd838dcf8d74f30705e5afdf1150acb8e056eb99353dfe77" "pypy" verify_py27 ensurepip - else - install_package "pypy3.5-5.10.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.10.0-linux_x86_64-portable.tar.bz2#d03f81f26e5e67d808569c5c69d56ceb007df78f7e36ab1c50da4d9096cebde0" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-5.10.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.10.0-linux_x86_64-portable.tar.bz2#d03f81f26e5e67d808569c5c69d56ceb007df78f7e36ab1c50da4d9096cebde0" "pypy" verify_py35 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.1 b/plugins/python-build/share/python-build/pypy3.5-5.10.1 index 43c0a3104c..282676890e 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.1 +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.1 @@ -1,15 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.1-linux32" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux32.tar.bz2#a6ceca9ee5dc511de7902164464b88311fec9366c5673d0c00528eda862bbe54" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 14.04" || true + install_package "pypy3-v5.10.1-linux32" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux32.tar.bz2#a6ceca9ee5dc511de7902164464b88311fec9366c5673d0c00528eda862bbe54" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.10.1-linux64" "https://downloads.python.org/pypy/pypy3-v5.10.1-linux64.tar.bz2#75a276e1ee1863967bbacb70c5bff636de200768c0ec90e72f7ec17aace0aefe" "pypy" verify_py27 ensurepip - else - install_package "pypy3.5-5.10.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.10.1-linux_x86_64-portable.tar.bz2#b7c7b0e0905208ce8a8061b1a0ae136a702e5218d0d350cb5216ad5a7c20d12e" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-5.10.1-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.10.1-linux_x86_64-portable.tar.bz2#b7c7b0e0905208ce8a8061b1a0ae136a702e5218d0d350cb5216ad5a7c20d12e" "pypy" verify_py35 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7-beta b/plugins/python-build/share/python-build/pypy3.5-5.7-beta index 8cfe37ae12..6f279ff3e9 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7-beta +++ b/plugins/python-build/share/python-build/pypy3.5-5.7-beta @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "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 "pypy3-v5.7.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.7.0-linux64.tar.bz2#921894884a647220a712ecdaad516d9c22fbadf3b4bb3a5db8f3635c60eabc7b" "pypy" verify_py35 ensurepip - else - install_package "pypy3.5-5.7-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.7-beta-linux_x86_64-portable.tar.bz2#d289ff7c32fd4263c3889994c8191c626891513e8ab60a65ba41a58b331db92c" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-5.7-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.7-beta-linux_x86_64-portable.tar.bz2#d289ff7c32fd4263c3889994c8191c626891513e8ab60a65ba41a58b331db92c" "pypy" verify_py35 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta index b9a8d70b96..ef4538460e 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta +++ b/plugins/python-build/share/python-build/pypy3.5-5.7.1-beta @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "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 "pypy3-v5.7.1-linux64" "https://downloads.python.org/pypy/pypy3-v5.7.1-linux64.tar.bz2#2abaa54d88c9b70b64c37083e7e430a1d3a8f78f8de92e484a988b7aca1e50a7" "pypy" verify_py35 ensurepip - else - install_package "pypy3.5-5.7.1-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2#3d1b02f6ef50d4e9069885e0b3f19f26491c7f4f9c5ccc8aa118e38fd6a23997" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-5.7.1-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.7.1-beta-linux_x86_64-portable.tar.bz2#3d1b02f6ef50d4e9069885e0b3f19f26491c7f4f9c5ccc8aa118e38fd6a23997" "pypy" verify_py35 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-5.8.0 b/plugins/python-build/share/python-build/pypy3.5-5.8.0 index 502b216196..18ad077604 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.8.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.8.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux64" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.8.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.8.0-linux64.tar.bz2#57d871a7f1135719c138cee4e3533c3275d682a76a40ff668e95150c65923035" "pypy" verify_py35 ensurepip - else - install_package "pypy3.5-5.8-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.8-1-beta-linux_x86_64-portable.tar.bz2#cab20a6d315a1bb05aa953ebc37d8deaa34dcbe298cb5938e373c42c05542b99" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-5.8-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.8-1-beta-linux_x86_64-portable.tar.bz2#cab20a6d315a1bb05aa953ebc37d8deaa34dcbe298cb5938e373c42c05542b99" "pypy" verify_py35 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-5.9.0 b/plugins/python-build/share/python-build/pypy3.5-5.9.0 index 4aed1a45a9..aad34626dc 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.9.0 +++ b/plugins/python-build/share/python-build/pypy3.5-5.9.0 @@ -1,10 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux64" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v5.9.0-linux64" "https://downloads.python.org/pypy/pypy3-v5.9.0-linux64.tar.bz2#d8c41ede3758127718944cc2fd6bf78ed4303d946f85596cac91281ccce36165" "pypy" verify_py35 ensurepip - else - install_package "pypy3.5-5.9-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.9-beta-linux_x86_64-portable.tar.bz2#b0a79dabe2c48b0374d567936139ecf1379904a504d4a645be5c3e7e35140575" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-5.9-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-5.9-beta-linux_x86_64-portable.tar.bz2#b0a79dabe2c48b0374d567936139ecf1379904a504d4a645be5c3e7e35140575" "pypy" verify_py35 ensurepip ;; * ) { echo diff --git a/plugins/python-build/share/python-build/pypy3.5-6.0.0 b/plugins/python-build/share/python-build/pypy3.5-6.0.0 index e9349a3064..bc176b7bf0 100644 --- a/plugins/python-build/share/python-build/pypy3.5-6.0.0 +++ b/plugins/python-build/share/python-build/pypy3.5-6.0.0 @@ -1,15 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 14.04" 1>/dev/null 2>&1; then - install_package "pypy3-v6.0.0-linux32" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux32.tar.bz2#b04eeee5160e6cb5f8962de80f077ea1dc7be34e77d74bf075519c23603f5ff9" "pypy" verify_py27 ensurepip - fi + require_distro "Ubuntu 14.04" || true + install_package "pypy3-v6.0.0-linux32" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux32.tar.bz2#b04eeee5160e6cb5f8962de80f077ea1dc7be34e77d74bf075519c23603f5ff9" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3-v6.0.0-linux64" "https://downloads.python.org/pypy/pypy3-v6.0.0-linux64.tar.bz2#4cfffa292b9ef34bb6ba39cdbaa196c5c5cbbc5aa3faaa157cf45d7e34027048" "pypy" verify_py27 ensurepip - else - install_package "pypy3.5-6.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2#07f16282d126abfa759702baea869b0f661aa97f4c553ebec66c624bda28155f" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-6.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-6.0.0-linux_x86_64-portable.tar.bz2#07f16282d126abfa759702baea869b0f661aa97f4c553ebec66c624bda28155f" "pypy" verify_py35 ensurepip ;; "linux-armel" ) require_distro "Ubuntu 12.04" || true diff --git a/plugins/python-build/share/python-build/pypy3.5-7.0.0 b/plugins/python-build/share/python-build/pypy3.5-7.0.0 index 06af24fcd4..078701fadd 100644 --- a/plugins/python-build/share/python-build/pypy3.5-7.0.0 +++ b/plugins/python-build/share/python-build/pypy3.5-7.0.0 @@ -1,23 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.5-v7.0.0-linux32" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-linux32.tar.bz2#b8db8fbca9621de8ea8cd7184b322f2dddb2f385e8e5a63dfb75bb3fea4b2e3f" "pypy" verify_py35 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy3.5-7.0.0-src' to build from source." - echo - } >&2 - exit 1 - fi + require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" || true + install_package "pypy3.5-v7.0.0-linux32" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-linux32.tar.bz2#b8db8fbca9621de8ea8cd7184b322f2dddb2f385e8e5a63dfb75bb3fea4b2e3f" "pypy" verify_py35 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.5-v7.0.0-linux64" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-linux64.tar.bz2#729e3c54325969c98bd3658c6342b9f5987b96bad1d6def04250a08401b54c4b" "pypy" verify_py35 ensurepip - else - install_package "pypy3.5-7.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-7.0.0-linux_x86_64-portable.tar.bz2#b0fa200f25a5a0ef90b8776ab1d0665c47d47c607d2ef057cce1da1ad2568e1f" "pypy" verify_py35 ensurepip - fi + install_package "pypy3.5-7.0.0-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.5-7.0.0-linux_x86_64-portable.tar.bz2#b0fa200f25a5a0ef90b8776ab1d0665c47d47c607d2ef057cce1da1ad2568e1f" "pypy" verify_py35 ensurepip ;; "osx64" ) if require_osx_version "10.13"; then diff --git a/plugins/python-build/share/python-build/pypy3.6-7.0.0 b/plugins/python-build/share/python-build/pypy3.6-7.0.0 index f49ad7c492..5867fa661d 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.0.0 +++ b/plugins/python-build/share/python-build/pypy3.6-7.0.0 @@ -1,19 +1,6 @@ case "$(pypy_architecture 2>/dev/null || true)" in -"linux" ) - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy3.6-7.0.0-src' to build from source." - echo - } >&2 - exit 1 - ;; "linux64" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.0.0-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-linux64.tar.bz2#8576bde0760c239040706cf4952995eb0e77938b175885392a465a0d1616173d" "pypy" verify_py36 ensurepip - else - install_package "pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable.tar.bz2#ef8a5254b9a082dec23a6e029b1bb674a122a789c29d9c452452a9e97498bcbe" "pypy" verify_py36 ensurepip - fi + install_package "pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.0.0-alpha-20190209-linux_x86_64-portable.tar.bz2#ef8a5254b9a082dec23a6e029b1bb674a122a789c29d9c452452a9e97498bcbe" "pypy" verify_py36 ensurepip ;; "osx64" ) if require_osx_version "10.13"; then diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.0 b/plugins/python-build/share/python-build/pypy3.6-7.1.0 index 593a810685..0b3879f046 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.0 +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.0 @@ -1,23 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.0-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-linux32.tar.bz2#031bfac61210a6e161bace0691b854dc15d01b0e624dc0588c544ee5e1621a83" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy3.6-7.1.0-src' to build from source." - echo - } >&2 - exit 1 - fi + require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" || true + install_package "pypy3.6-v7.1.0-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-linux32.tar.bz2#031bfac61210a6e161bace0691b854dc15d01b0e624dc0588c544ee5e1621a83" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.0-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-linux64.tar.bz2#270dd06633cf03337e6f815d7235e790e90dabba6f4b6345c9745121006925fc" "pypy" verify_py36 ensurepip - else - install_package "pypy3.6-7.1.0-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.1.0-beta-linux_x86_64-portable.tar.bz2#d1bde814fb0c3645dfc0bdab67c335c8aa259b83fb39106e2e11b0112bcbb602" "pypy" verify_py36 ensurepip - fi + install_package "pypy3.6-7.1.0-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.1.0-beta-linux_x86_64-portable.tar.bz2#d1bde814fb0c3645dfc0bdab67c335c8aa259b83fb39106e2e11b0112bcbb602" "pypy" verify_py36 ensurepip ;; "osx64" ) if require_osx_version "10.13"; then diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.1 b/plugins/python-build/share/python-build/pypy3.6-7.1.1 index 6a1534bbd1..c7f2927cf2 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.1 +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.1 @@ -1,23 +1,10 @@ case "$(pypy_architecture 2>/dev/null || true)" in "linux" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.1-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-linux32.tar.bz2#cb11ef4b0df569c28390b1ee93029159e1b90bfbad98df6abd629d5203b2abd9" "pypy" verify_py27 ensurepip - else - { echo - colorize 1 "ERROR" - echo ": The binary distribution of PyPy is not available for $(pypy_architecture 2>/dev/null || true)." - echo "try 'pypy3.6-7.1.1-src' to build from source." - echo - } >&2 - exit 1 - fi + require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" || true + install_package "pypy3.6-v7.1.1-linux32" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-linux32.tar.bz2#cb11ef4b0df569c28390b1ee93029159e1b90bfbad98df6abd629d5203b2abd9" "pypy" verify_py27 ensurepip ;; "linux64" ) - if require_distro "Ubuntu 12.04" "Ubuntu 14.04" "Ubuntu 16.04" 1>/dev/null 2>&1; then - install_package "pypy3.6-v7.1.1-linux64" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-linux64.tar.bz2#8014f63b1a34b155548852c7bf73aab2d41ebddf2c8fb603dc9dd8509be93db0" "pypy" verify_py36 ensurepip - else - install_package "pypy3.6-7.1.1-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.1.1-beta-linux_x86_64-portable.tar.bz2#82c878b61ad34fc2cf1686fa600a7a002d352e1b33a99a43007eec486ecd068e" "pypy" verify_py36 ensurepip - fi + install_package "pypy3.6-7.1.1-beta-linux_x86_64-portable" "https://bitbucket-archive.softwareheritage.org/static/14/140b7b14-aa94-424e-b191-9cd3438381f7/attachments/pypy3.6-7.1.1-beta-linux_x86_64-portable.tar.bz2#82c878b61ad34fc2cf1686fa600a7a002d352e1b33a99a43007eec486ecd068e" "pypy" verify_py36 ensurepip ;; "osx64" ) if require_osx_version "10.13"; then From 3a61d6edaa6746518aac7ac67be56cb4a60af09a Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 7 Oct 2026 00:10:56 +0300 Subject: [PATCH 1311/1324] pypy-src: Use current official Git repo PyPy maintainers only provide downloads at https://downloads.python.org/pypy/ for a couple of latest releases, after which they delete them. So using Git checkouts from corresponding tags is more future-proof. Cannot use GitHub-generated Zip downloads because they might change -- thus are impossible to verify. * verify Git checkouts by SHA-1 hashes * refactor files that use variables * Update dependencies according to Matti Picus (https://github.com/pyenv/pyenv/pull/3552#issuecomment-5893742658): * 7.3.18+ -- OpenSSL 3 * OpenSSL 1.1.1 gives build errors so require OpenSSL strictly * 7.3.21+ -- Tcl/Tk 9 --- plugins/python-build/bin/python-build | 8 ++++++++ plugins/python-build/share/python-build/pypy-1.5-src | 2 +- plugins/python-build/share/python-build/pypy-2.3-src | 2 +- .../python-build/share/python-build/pypy-2.3.1-src | 2 +- .../python-build/share/python-build/pypy-2.5.0-src | 2 +- .../python-build/share/python-build/pypy-2.5.1-src | 2 +- .../python-build/share/python-build/pypy-2.6.0-src | 2 +- .../python-build/share/python-build/pypy-2.6.1-src | 2 +- .../python-build/share/python-build/pypy-4.0.0-src | 2 +- .../python-build/share/python-build/pypy-4.0.1-src | 2 +- .../python-build/share/python-build/pypy-5.0.1-src | 2 +- plugins/python-build/share/python-build/pypy-5.1-src | 2 +- .../python-build/share/python-build/pypy-5.1.1-src | 2 +- plugins/python-build/share/python-build/pypy-dev | 4 +--- .../share/python-build/pypy2.7-5.10.0-src | 2 +- .../share/python-build/pypy2.7-5.8.0-src | 2 +- .../share/python-build/pypy2.7-5.9.0-src | 2 +- .../share/python-build/pypy2.7-6.0.0-src | 2 +- .../share/python-build/pypy2.7-7.0.0-src | 2 +- .../share/python-build/pypy2.7-7.1.0-src | 2 +- .../share/python-build/pypy2.7-7.1.1-src | 2 +- .../share/python-build/pypy2.7-7.2.0-src | 2 +- .../share/python-build/pypy2.7-7.3.0-src | 2 +- .../share/python-build/pypy2.7-7.3.1-src | 2 +- .../share/python-build/pypy2.7-7.3.10-src | 8 ++------ .../share/python-build/pypy2.7-7.3.11-src | 8 ++------ .../share/python-build/pypy2.7-7.3.12-src | 8 ++------ .../share/python-build/pypy2.7-7.3.13-src | 8 ++------ .../share/python-build/pypy2.7-7.3.14-src | 8 ++------ .../share/python-build/pypy2.7-7.3.15-src | 8 ++------ .../share/python-build/pypy2.7-7.3.16-src | 8 ++------ .../share/python-build/pypy2.7-7.3.17-src | 8 ++------ .../share/python-build/pypy2.7-7.3.18-src | 11 +++-------- .../share/python-build/pypy2.7-7.3.19-src | 11 +++-------- .../share/python-build/pypy2.7-7.3.2-src | 2 +- .../share/python-build/pypy2.7-7.3.20-src | 11 +++-------- .../share/python-build/pypy2.7-7.3.21-src | 12 ++++-------- .../share/python-build/pypy2.7-7.3.22-src | 12 ++++-------- .../share/python-build/pypy2.7-7.3.23-src | 12 ++++-------- .../share/python-build/pypy2.7-7.3.3-src | 2 +- .../share/python-build/pypy2.7-7.3.4-src | 2 +- .../share/python-build/pypy2.7-7.3.5-src | 2 +- .../share/python-build/pypy2.7-7.3.6-src | 2 +- .../share/python-build/pypy2.7-7.3.8-src | 8 ++------ .../share/python-build/pypy2.7-7.3.9-src | 8 ++------ .../share/python-build/pypy2.7-8.0.0-src | 10 ++++------ .../share/python-build/pypy3.10-7.3.12-src | 8 ++------ .../share/python-build/pypy3.10-7.3.13-src | 8 ++------ .../share/python-build/pypy3.10-7.3.14-src | 8 ++------ .../share/python-build/pypy3.10-7.3.15-src | 8 ++------ .../share/python-build/pypy3.10-7.3.16-src | 8 ++------ .../share/python-build/pypy3.10-7.3.17-src | 8 ++------ .../share/python-build/pypy3.10-7.3.18-src | 11 +++-------- .../share/python-build/pypy3.10-7.3.19-src | 11 +++-------- .../share/python-build/pypy3.11-7.3.18-src | 11 +++-------- .../share/python-build/pypy3.11-7.3.19-src | 11 +++-------- .../share/python-build/pypy3.11-7.3.20-src | 11 +++-------- .../share/python-build/pypy3.11-7.3.21-src | 12 ++++-------- .../share/python-build/pypy3.11-7.3.22-src | 12 ++++-------- .../share/python-build/pypy3.11-7.3.23-src | 12 ++++-------- .../share/python-build/pypy3.11-8.0.0-src | 10 ++++------ .../share/python-build/pypy3.12-8.0.0-src | 10 ++++------ .../share/python-build/pypy3.5-5.10.0-src | 2 +- .../share/python-build/pypy3.5-5.10.1-src | 2 +- .../share/python-build/pypy3.5-5.8.0-src | 2 +- .../share/python-build/pypy3.5-5.9.0-src | 2 +- .../share/python-build/pypy3.5-6.0.0-src | 2 +- .../share/python-build/pypy3.5-7.0.0-src | 2 +- .../share/python-build/pypy3.6-7.0.0-src | 2 +- .../share/python-build/pypy3.6-7.1.0-src | 2 +- .../share/python-build/pypy3.6-7.1.1-src | 2 +- .../share/python-build/pypy3.6-7.2.0-src | 2 +- .../share/python-build/pypy3.6-7.3.0-src | 2 +- .../share/python-build/pypy3.6-7.3.1-src | 2 +- .../share/python-build/pypy3.6-7.3.2-src | 2 +- .../share/python-build/pypy3.6-7.3.3-src | 2 +- .../share/python-build/pypy3.7-7.3.2-src | 2 +- .../share/python-build/pypy3.7-7.3.3-src | 2 +- .../share/python-build/pypy3.7-7.3.4-src | 2 +- .../share/python-build/pypy3.7-7.3.5-src | 2 +- .../share/python-build/pypy3.7-7.3.6-src | 2 +- .../share/python-build/pypy3.7-7.3.7-src | 3 +-- .../share/python-build/pypy3.7-7.3.8-src | 8 ++------ .../share/python-build/pypy3.7-7.3.9-src | 8 ++------ .../share/python-build/pypy3.8-7.3.10-src | 8 ++------ .../share/python-build/pypy3.8-7.3.11-src | 8 ++------ .../share/python-build/pypy3.8-7.3.6-src | 3 +-- .../share/python-build/pypy3.8-7.3.7-src | 3 +-- .../share/python-build/pypy3.8-7.3.8-src | 8 ++------ .../share/python-build/pypy3.8-7.3.9-src | 8 ++------ .../share/python-build/pypy3.9-7.3.10-src | 8 ++------ .../share/python-build/pypy3.9-7.3.11-src | 8 ++------ .../share/python-build/pypy3.9-7.3.12-src | 8 ++------ .../share/python-build/pypy3.9-7.3.13-src | 8 ++------ .../share/python-build/pypy3.9-7.3.14-src | 8 ++------ .../share/python-build/pypy3.9-7.3.15-src | 8 ++------ .../share/python-build/pypy3.9-7.3.16-src | 8 ++------ .../share/python-build/pypy3.9-7.3.8-src | 8 ++------ .../share/python-build/pypy3.9-7.3.9-src | 8 ++------ 99 files changed, 180 insertions(+), 371 deletions(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 7dab4742c9..a07aef3108 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -1799,6 +1799,14 @@ prefer_openssl3_to_4() { export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA } +require_openssl3() { + PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA="${PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA:-openssl@3 openssl@3.5 openssl@3.0}" + export PYTHON_BUILD_HOMEBREW_OPENSSL_FORMULA + + PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA="${PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA:-openssl3}" + export PYTHON_BUILD_MACPORTS_OPENSSL_FORMULA +} + build_package_mac_readline() { # Install to a subdirectory since we don't want shims for bin/readline. READLINE_PREFIX_PATH="${PREFIX_PATH}/readline" diff --git a/plugins/python-build/share/python-build/pypy-1.5-src b/plugins/python-build/share/python-build/pypy-1.5-src index cab008b098..bdb4259ee0 100644 --- a/plugins/python-build/share/python-build/pypy-1.5-src +++ b/plugins/python-build/share/python-build/pypy-1.5-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-1.5-src" "https://foss.heptapod.net/pypy/pypy/-/archive/release-1.5/pypy-release-1.5.tar.gz" "pypy_builder" verify_py27 ensurepip +install_git "pypy-1.5-src" https://github.com/pypy/pypy release-1.5:bd397139d3725147eb199189e48e0d6d23a15cf7 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3-src b/plugins/python-build/share/python-build/pypy-2.3-src index 96c7251717..1549592da4 100644 --- a/plugins/python-build/share/python-build/pypy-2.3-src +++ b/plugins/python-build/share/python-build/pypy-2.3-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-394146e9bb67" "https://downloads.python.org/pypy/pypy-2.3-src.tar.bz2#be2c271e7f9d7c0059a551ba1501713c00336e551e7f13107f0f34c721d95b0c" "pypy_builder" verify_py27 ensurepip +install_git "pypy-pypy-394146e9bb67" https://github.com/pypy/pypy release-2.3:3a6b704498a7dd87fb4416f927fbe68b17fd3483 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.3.1-src b/plugins/python-build/share/python-build/pypy-2.3.1-src index 326536e8a2..a537769367 100644 --- a/plugins/python-build/share/python-build/pypy-2.3.1-src +++ b/plugins/python-build/share/python-build/pypy-2.3.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-32f35069a16d" "https://downloads.python.org/pypy/pypy-2.3.1-src.tar.bz2#6b10efab2be5502b475a25181870616e9ff83296b225aa2c7a7ec617c0ff78ef" "pypy_builder" verify_py27 ensurepip +install_git "pypy-pypy-32f35069a16d" https://github.com/pypy/pypy release-2.3.1:99e0833b4d6c7767500f3d28a6e5e8d4741199bd "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.0-src b/plugins/python-build/share/python-build/pypy-2.5.0-src index 6e5bfccd28..9017c04987 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.0-src +++ b/plugins/python-build/share/python-build/pypy-2.5.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-pypy-10f1b29a2bd2" "https://downloads.python.org/pypy/pypy-2.5.0-src.tar.bz2#8ff1e131d8fefd79032dd81bcf3fde927e152d3acde5105356f6ffc1aad33f81" "pypy_builder" verify_py27 ensurepip +install_git "pypy-pypy-10f1b29a2bd2" https://github.com/pypy/pypy release-2.5.0:819bd6eb36791c24b1ef9057721205c8ec7ea940 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.5.1-src b/plugins/python-build/share/python-build/pypy-2.5.1-src index 88f2c75e69..2c65717f1e 100644 --- a/plugins/python-build/share/python-build/pypy-2.5.1-src +++ b/plugins/python-build/share/python-build/pypy-2.5.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.5.1-src" "https://downloads.python.org/pypy/pypy-2.5.1-src.tar.bz2#ddb3a580b1ee99c5a699172d74be91c36dda9a38946d4731d8c6a63120a3ba2a" "pypy_builder" verify_py27 ensurepip +install_git "pypy-2.5.1-src" https://github.com/pypy/pypy release-2.5.1:4b732b03ad728d086aac84de2a4a68e10a4c419c "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.0-src b/plugins/python-build/share/python-build/pypy-2.6.0-src index 1ebe1d9003..915e66d5c0 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.0-src +++ b/plugins/python-build/share/python-build/pypy-2.6.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.6.0-src" "https://downloads.python.org/pypy/pypy-2.6.0-src.tar.bz2#9bf353f22d25e97a85a6d3766619966055edea1ea1b2218445d683a8ad0399d9" "pypy_builder" verify_py27 ensurepip +install_git "pypy-2.6.0-src" https://github.com/pypy/pypy release-2.6.0:eb02a97e0d681d97d68707289aa519239005fc8f "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-2.6.1-src b/plugins/python-build/share/python-build/pypy-2.6.1-src index b1482d547f..250cd12f09 100644 --- a/plugins/python-build/share/python-build/pypy-2.6.1-src +++ b/plugins/python-build/share/python-build/pypy-2.6.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-2.6.1-src" "https://downloads.python.org/pypy/pypy-2.6.1-src.tar.bz2#7fddd414c9348c2f899f79ad86adc3fc2b19443855b5243f58487e1f0ac46560" "pypy_builder" verify_py27 ensurepip +install_git "pypy-2.6.1-src" https://github.com/pypy/pypy release-2.6.1:5e4a4cbc4127d398f4738da71a28a42970363296 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.0-src b/plugins/python-build/share/python-build/pypy-4.0.0-src index 451f0b5fe3..33b770befc 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.0-src +++ b/plugins/python-build/share/python-build/pypy-4.0.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-4.0.0-src" "https://downloads.python.org/pypy/pypy-4.0.0-src.tar.bz2#acff480e44ce92acd057f2e786775af36dc3c2cd12e9efc60a1ac6a562ad7b4d" "pypy_builder" verify_py27 ensurepip +install_git "pypy-4.0.0-src" https://github.com/pypy/pypy release-4.0.0:03721401c55137cf1cc4a57ac1bdd4fb411fce12 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-4.0.1-src b/plugins/python-build/share/python-build/pypy-4.0.1-src index 76aa78cfbd..d44ed76a49 100644 --- a/plugins/python-build/share/python-build/pypy-4.0.1-src +++ b/plugins/python-build/share/python-build/pypy-4.0.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-4.0.1-src" "https://downloads.python.org/pypy/pypy-4.0.1-src.tar.bz2#29f5aa6ba17b34fd980e85172dfeb4086fdc373ad392b1feff2677d2d8aea23c" "pypy_builder" verify_py27 ensurepip +install_git "pypy-4.0.1-src" https://github.com/pypy/pypy release-4.0.1:58a9d336a4483f94c57f23f3beea98fcd287ea1c "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.0.1-src b/plugins/python-build/share/python-build/pypy-5.0.1-src index 070add671d..d498144d0a 100644 --- a/plugins/python-build/share/python-build/pypy-5.0.1-src +++ b/plugins/python-build/share/python-build/pypy-5.0.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.0.1-src" "https://downloads.python.org/pypy/pypy-5.0.1-src.tar.bz2#1573c9284d3ec236c8e6ef3b954753932dff29462c54b5885b761d1ee68b6e05" "pypy_builder" verify_py27 ensurepip +install_git "pypy-5.0.1-src" https://github.com/pypy/pypy release-5.0.1:e868a862dba520db0e1ebaa010d79edccee1f9e9 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1-src b/plugins/python-build/share/python-build/pypy-5.1-src index a401980252..5000125811 100644 --- a/plugins/python-build/share/python-build/pypy-5.1-src +++ b/plugins/python-build/share/python-build/pypy-5.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.1.0-src" "https://downloads.python.org/pypy/pypy-5.1.0-src.tar.bz2#16bab9501e942c0704abbf9cd6c4e950c6a76dc226cf1e447ea084916aef4714" "pypy_builder" verify_py27 ensurepip +install_git "pypy-5.1.0-src" https://github.com/pypy/pypy release-5.1:29c415e7a67051b4c6c2c6e814b8ce174cd69c42 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-5.1.1-src b/plugins/python-build/share/python-build/pypy-5.1.1-src index a8aed02fa7..eaea5a6889 100644 --- a/plugins/python-build/share/python-build/pypy-5.1.1-src +++ b/plugins/python-build/share/python-build/pypy-5.1.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy-5.1.1-src" "https://downloads.python.org/pypy/pypy-5.1.1-src.tar.bz2#ca3d943d7fbd78bb957ee9e5833ada4bb8506ac99a41b7628790e286a65ed2be" "pypy_builder" verify_py27 ensurepip +install_git "pypy-5.1.1-src" https://github.com/pypy/pypy release-5.1.1:8242a56baceb99b3f5c05d4f5d37b39609c7c4be "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy-dev b/plugins/python-build/share/python-build/pypy-dev index 02960d34f4..d6f1db545f 100644 --- a/plugins/python-build/share/python-build/pypy-dev +++ b/plugins/python-build/share/python-build/pypy-dev @@ -1,3 +1 @@ -prefer_openssl11 -install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_hg "pypy-dev" "https://foss.heptapod.net/pypy/pypy" "default" "pypy_builder" verify_py27 ensurepip +install_git "pypy-dev" "https://github.com/pypy/pypy" "main" "pypy_builder" verify_py3_latest ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.10.0-src b/plugins/python-build/share/python-build/pypy2.7-5.10.0-src index 5a1a85ab31..3f9f783148 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.10.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.10.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.10.0-src" "https://downloads.python.org/pypy/pypy2-v5.10.0-src.tar.bz2#1209f2db718e6afda17528baa5138177a14a0938588a7d3e1b7c722c483079a8" "pypy_builder" verify_py27 ensurepip +install_git "pypy2-v5.10.0-src" https://github.com/pypy/pypy release-pypy2.7-v5.10.0:feaca5ecd96b6e7b70cba18126a42632fefb0198 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.8.0-src b/plugins/python-build/share/python-build/pypy2.7-5.8.0-src index 6f97bef4a3..7ed09589a7 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.8.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.8.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.8.0-src" "https://downloads.python.org/pypy/pypy2-v5.8.0-src.tar.bz2#504c2d522595baf8775ae1045a217a2b120732537861d31b889d47c340b58bd5" "pypy_builder" verify_py27 ensurepip +install_git "pypy2-v5.8.0-src" https://github.com/pypy/pypy release-pypy2.7-v5.8.0:ce9330b6e3c0a199961e83837bda038d837a9acf "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-5.9.0-src b/plugins/python-build/share/python-build/pypy2.7-5.9.0-src index 350416940a..28528aab1a 100644 --- a/plugins/python-build/share/python-build/pypy2.7-5.9.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-5.9.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v5.9.0-src" "https://downloads.python.org/pypy/pypy2-v5.9.0-src.tar.bz2#de4bf05df47f1349dbac97233d9277bbaf1ef3331663ea2557fd5da3dbcfd0a7" "pypy_builder" verify_py27 ensurepip +install_git "pypy2-v5.9.0-src" https://github.com/pypy/pypy release-pypy2.7-v5.9.0:18762da776613171d77022b52b4025741946b67f "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-6.0.0-src b/plugins/python-build/share/python-build/pypy2.7-6.0.0-src index 423f0cab15..e232e69b36 100644 --- a/plugins/python-build/share/python-build/pypy2.7-6.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-6.0.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2-v6.0.0-src" "https://downloads.python.org/pypy/pypy2-v6.0.0-src.tar.bz2#6097ec5ee23d0d34d8cd27a1072bed041c8a080ad48731190a03a2223029212d" "pypy_builder" verify_py27 ensurepip +install_git "pypy2-v6.0.0-src" https://github.com/pypy/pypy release-pypy2.7-v6.0.0:16b20ef7e132ec56d84dd4dc42f3b4b817abcba8 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.0.0-src b/plugins/python-build/share/python-build/pypy2.7-7.0.0-src index b5856cb630..ce9664ae0f 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.0.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.0.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.0.0-src.tar.bz2#f51d8bbfc4e73a8a01820b7871a45d13c59f1399822cdf8a19388c69eb20c18c" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.0.0-src" https://github.com/pypy/pypy release-pypy2.7-v7.0.0:7b51bd10d0e27c7dc81d7efb7afea87f5c940642 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.0-src b/plugins/python-build/share/python-build/pypy2.7-7.1.0-src index 5c0a9357d1..49b8d74186 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.1.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.1.0-src.tar.bz2#b051a71ea5b4fa27d0a744b28e6054661adfce8904dcc82500716b5edff5ce4b" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.1.0-src" https://github.com/pypy/pypy release-pypy2.7-v7.1.0:7b6c58da56cc5f02d390b73cf374f1b4b0106b4a "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.1.1-src b/plugins/python-build/share/python-build/pypy2.7-7.1.1-src index 060e3ebc5c..a51710da74 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.1.1-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.1.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.1.1-src" "https://downloads.python.org/pypy/pypy2.7-v7.1.1-src.tar.bz2#5f06bede6d71dce8dfbfe797aab26c8e35cb990e16b826914652dc093ad74451" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.1.1-src" https://github.com/pypy/pypy release-pypy2.7-v7.1.1:79bd128a8854309763c232ea0f7b5ea63897111a "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.2.0-src b/plugins/python-build/share/python-build/pypy2.7-7.2.0-src index abdb3e6e31..95252ac063 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.2.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.2.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.2.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.2.0-src.tar.bz2#55cb7757784fbe3952102447f65b27d80e6c885a464a7af1a9ce264492439dcc" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.2.0-src" https://github.com/pypy/pypy release-pypy2.7-v7.2.0:040dabe1ff823579ec001ee8d1c7bc5bfa03b8ac "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.0-src b/plugins/python-build/share/python-build/pypy2.7-7.3.0-src index ea593c5fa1..9a6d3988ad 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy2.7-v7.3.0-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.0-src.tar.bz2#b0b25c7f8938ab0fedd8dedf26b9e73c490913b002b484c1b2f19d5844a518de" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.0-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.0:05799c544451f6e9fdee9b7a3be15204b00c489d "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.1-src b/plugins/python-build/share/python-build/pypy2.7-7.3.1-src index 5a22502237..c3e1224e31 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.1-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.1-src @@ -1,3 +1,3 @@ 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 "pypy2.7-v7.3.1-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.1-src.tar.bz2#fa3771514c8a354969be9bd3b26d65a489c30e28f91d350e4ad2f4081a9c9321" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.1-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.1:eca913a5ff37668605d85f723296da7c7f6a583d "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.10-src b/plugins/python-build/share/python-build/pypy2.7-7.3.10-src index 2b638e21f5..121bd414b6 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.10-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.10-src @@ -1,14 +1,10 @@ VERSION='7.3.10' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=35e2cf4519cb51c4d5ffb4493ee24f0c7f42b4b04944903ca4b33981a04a3bc5 +sha=5f093bb91ef8154ea81a0c4e899e7bcebad69e42 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.11-src b/plugins/python-build/share/python-build/pypy2.7-7.3.11-src index b3d38cd606..2403460f9e 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.11-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.11-src @@ -1,14 +1,10 @@ VERSION='7.3.11' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=1117afb66831da4ea6f39d8d2084787a74689fd0229de0be301f9ed9b255093c +sha=ec97da94c7d73f78604f7ad44ae89a9f2a90a021 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.12-src b/plugins/python-build/share/python-build/pypy2.7-7.3.12-src index 6a62e74bf6..88bca86f8f 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.12-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.12-src @@ -1,14 +1,10 @@ VERSION='7.3.12' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=dd61d88da274c2ce2cec77667d4a3df9a652bcc50e26f90991d4dd0af66bccf4 +sha=1466921886ad24c1f648e1b94d3a15f92f51b3a3 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.13-src b/plugins/python-build/share/python-build/pypy2.7-7.3.13-src index 4704161ec3..17a85346cc 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.13-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.13-src @@ -1,14 +1,10 @@ VERSION='7.3.13' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=976984bc6ca5ec9d37ae4e219b020cbed2751d1a02267033f59ed700ba8cec40 +sha=a4fde3b30a193840c660e33a2ae690e8b59fefd2 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.14-src b/plugins/python-build/share/python-build/pypy2.7-7.3.14-src index 1cc47f06cb..0388bb78df 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.14-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.14-src @@ -1,14 +1,10 @@ VERSION='7.3.14' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=e096fe67ce2d8d4d5e7dceb84fe1ca854498f00766d31b27d32c8d8833131373 +sha=ec75aea5c6cd620412f1f582eb92e9974c5adad9 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.15-src b/plugins/python-build/share/python-build/pypy2.7-7.3.15-src index 65082f7196..a0cd6d2a32 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.15-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.15-src @@ -1,14 +1,10 @@ VERSION='7.3.15' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=a66ddaed39544a35bb7ab7a17dbf673a020c7cb3a614bd2b61a54776888daf2c +sha=742153cf331ad011cd80c37249ac9f2612466516 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.16-src b/plugins/python-build/share/python-build/pypy2.7-7.3.16-src index fdf2005a4c..6814410f72 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.16-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.16-src @@ -1,14 +1,10 @@ VERSION='7.3.16' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=43721cc0c397f0f3560b325c20c70b11f7c76c27910d3df09f8418cec4f9c2ad +sha=6aa1e9d1397592641cb75fb1b98759651a6cf98a ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.17-src b/plugins/python-build/share/python-build/pypy2.7-7.3.17-src index 28c84dc1c1..a51212fbd3 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.17-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.17-src @@ -1,14 +1,10 @@ VERSION='7.3.17' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=50e06840f4bbde91448080a4118068a89b8fbcae25ff8da1e2bb1402dc9a0346 +sha=90694368ada9aac6802edbae9ffe07b703577112 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.18-src b/plugins/python-build/share/python-build/pypy2.7-7.3.18-src index 792a48f594..151f75104c 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.18-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.18-src @@ -1,14 +1,9 @@ VERSION='7.3.18' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=737435ddfc5afa5b97a7209c87d70d5f1062426c053b9bb8b99a0347cb4891fa +sha=639309b2bd147c86b8907350f38a37d7d3f49703 ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.19-src b/plugins/python-build/share/python-build/pypy2.7-7.3.19-src index 30aec5e6a6..7e9f6bf84c 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.19-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.19-src @@ -1,14 +1,9 @@ VERSION='7.3.19' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=8703cdcb01f9f82966dd43b6a6018f140399db51ebb43c125c1f9a215e7bb003 +sha=09418b2db4218a8bea681afbb3477b92b6553d82 ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.2-src b/plugins/python-build/share/python-build/pypy2.7-7.3.2-src index 736cd0c8ff..6a078c656e 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.2-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.2-src @@ -1,3 +1,3 @@ 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 "pypy2.7-v7.3.2-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.2-src.tar.bz2#8189480d8350ad6364d05c2b39fd7d832644d4b1cd018f785126389df45928d1" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.2-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.2:5998ca153504377ad51da187b59cfd28fdef9848 "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.20-src b/plugins/python-build/share/python-build/pypy2.7-7.3.20-src index b4a81b426e..96cd0964c7 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.20-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.20-src @@ -1,14 +1,9 @@ VERSION='7.3.20' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=bf958498445f7bf78338723c8d86bd6711e8792461725d2481df77a9566a3e62 +sha=c8e5dc4b395b0f7f6b71dfe67c4ac3c19276f369 ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.21-src b/plugins/python-build/share/python-build/pypy2.7-7.3.21-src index 40a01ecc85..6c3c563353 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.21-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.21-src @@ -1,14 +1,10 @@ VERSION='7.3.21' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=23537c62e875ad1a3e675c64d4435eff392ea20843e20d690fd1400b79363d64 +sha=d3b512ec2c511e8d8afe9e030cf013a853ce0bfe ### 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' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.22-src b/plugins/python-build/share/python-build/pypy2.7-7.3.22-src index 5b3b1d8cbe..981b75c6b9 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.22-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.22-src @@ -1,14 +1,10 @@ VERSION='7.3.22' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=f4445c1a835effe4d3b26521e73a7780893dec02520aa6799a377c9a0fcdd8ad +sha=6d3a19754055f79f607b5c3f4373fb4fd4a0e6f1 ### 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' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.23-src b/plugins/python-build/share/python-build/pypy2.7-7.3.23-src index 6dc2b01694..d9d753f4b0 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.23-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.23-src @@ -1,14 +1,10 @@ VERSION='7.3.23' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=7aa8eaf414d25f916fe426365404759c56aa28aea6190e65967c4a45f64dc899 +sha=7142a5722df2ebd66203f90cc6304cc646b1395d ### 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' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.3-src b/plugins/python-build/share/python-build/pypy2.7-7.3.3-src index 8d5b49c526..76fa460741 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.3-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.3-src @@ -1,3 +1,3 @@ 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 "pypy2.7-v7.3.3-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.3-src.tar.bz2#f63488051ba877fd65840bf8d53822a9c6423d947839023b8720139f4b6e2336" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.3-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.3:ae9d4390ce7be7d36e38ffc35703c63041b9d76a "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.4-src b/plugins/python-build/share/python-build/pypy2.7-7.3.4-src index 0824a399db..76ac8dc98f 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.4-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.4-src @@ -1,3 +1,3 @@ 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 "pypy2.7-v7.3.4-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.4-src.tar.bz2#ff9b928237767efe08ccfba79dae489519b3c768fb6e3af52d39c2a8a1c21ca4" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.4-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.4:7ba4450f4fec0f0f9bb83af0546881ccf26e763b "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.5-src b/plugins/python-build/share/python-build/pypy2.7-7.3.5-src index c846078f6e..5a62da0059 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.5-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.5-src @@ -1,3 +1,3 @@ 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 "pypy2.7-v7.3.5-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.5-src.tar.bz2#c0444fd9873058c1c0d99e13a934e92285cb05992c9968bf523c32bf9bec0a9d" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.5-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.5:929d011f7099ad93ffba427c5fd459b7f945199d "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.6-src b/plugins/python-build/share/python-build/pypy2.7-7.3.6-src index a7f411cbf2..914723b398 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.6-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.6-src @@ -1,3 +1,3 @@ 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 "pypy2.7-v7.3.6-src" "https://downloads.python.org/pypy/pypy2.7-v7.3.6-src.tar.bz2#0114473c8c57169cdcab1a69c60ad7fef7089731fdbe6f46af55060b29be41e4" "pypy_builder" verify_py27 ensurepip +install_git "pypy2.7-v7.3.6-src" https://github.com/pypy/pypy release-pypy2.7-v7.3.6:c31826d0d297dccd1989c909fcbb90cb77ec722e "pypy_builder" verify_py27 ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.8-src b/plugins/python-build/share/python-build/pypy2.7-7.3.8-src index 91dd043819..98d961197d 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.8-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.8-src @@ -1,14 +1,10 @@ VERSION='7.3.8' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=0cdad270c62d3ccc53cc87eeb069a6dc46acaf95521b584624bcd6697d94fa1c +sha=498b769a83bd3ddede27e69cea2831bbed3f3192 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-7.3.9-src b/plugins/python-build/share/python-build/pypy2.7-7.3.9-src index c0d4bb4874..16bf7edf7b 100644 --- a/plugins/python-build/share/python-build/pypy2.7-7.3.9-src +++ b/plugins/python-build/share/python-build/pypy2.7-7.3.9-src @@ -1,14 +1,10 @@ VERSION='7.3.9' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=39b0972956f6548ce5828019dbae12503c32d6cbe91a2becf88d3e42cc52197b +sha=73ed8cbff751b6c9d05a7578aa915c0d72cf7f1e ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy2.7-8.0.0-src b/plugins/python-build/share/python-build/pypy2.7-8.0.0-src index c362fdafbc..597b3abb79 100644 --- a/plugins/python-build/share/python-build/pypy2.7-8.0.0-src +++ b/plugins/python-build/share/python-build/pypy2.7-8.0.0-src @@ -1,12 +1,10 @@ VERSION='8.0.0' PYVER='2.7' -# https://www.pypy.org/checksums.html -hash=e2a56b587014a97a7e6bd14ae99b55247cf2939d67a05a09e62af0afc16125cb +sha=fd14cff2dc980bf60785f794a2ea80fa302c3e69 ### end of manual settings - following lines same for every download -ver="pypy${PYVER}-v${VERSION}-src" -url="https://downloads.python.org/pypy/${ver}.tar.gz" - -install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip_lt21' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" 'ensurepip_lt21' diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.12-src b/plugins/python-build/share/python-build/pypy3.10-7.3.12-src index cb91866678..f837199095 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.12-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.12-src @@ -1,14 +1,10 @@ VERSION='7.3.12' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=86e4e4eacc36046c6182f43018796537fe33a60e1d2a2cc6b8e7f91a5dcb3e42 +sha=110175455d9f38964ef61952d6e8398980d16472 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.13-src b/plugins/python-build/share/python-build/pypy3.10-7.3.13-src index 4ebe5f2f8d..d6141b3bce 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.13-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.13-src @@ -1,14 +1,10 @@ VERSION='7.3.13' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=4ac1733c19d014d3193c804e7f40ffccbf6924bcaaee1b6089b82b9bf9353a6d +sha=62dff65c640da79b2c192b96d35c256aedc225ab ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.14-src b/plugins/python-build/share/python-build/pypy3.10-7.3.14-src index 7f469f95ab..93b4589794 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.14-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.14-src @@ -1,14 +1,10 @@ VERSION='7.3.14' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=a3481af466103fa13740db4e27780e0423dcf8626b3340f60d3d3c28fbc11ae0 +sha=16d42fc451b8903c5f3bfd6a100d74c8ce0a54bc ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.15-src b/plugins/python-build/share/python-build/pypy3.10-7.3.15-src index 1cf78ac53e..dcc4739750 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.15-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.15-src @@ -1,14 +1,10 @@ VERSION='7.3.15' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=837622130b36603a1893899bd9f529961a8e4a56c9eb67268d72ddf8920c9579 +sha=6111e43ecf18d185823f267b66cdd354ef609fae ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.16-src b/plugins/python-build/share/python-build/pypy3.10-7.3.16-src index fede58269b..5097438d01 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.16-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.16-src @@ -1,14 +1,10 @@ VERSION='7.3.16' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=4a3a3177d0a1f51d59982bb981d1d485403bda3419d5437b9e077f55f59424ff +sha=75b3de9d90359ba787d13f66950da7e579a7a8c3 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.17-src b/plugins/python-build/share/python-build/pypy3.10-7.3.17-src index e94a3a85c0..3a79c936ed 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.17-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.17-src @@ -1,14 +1,10 @@ VERSION='7.3.17' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=6ad74bc578e9c6d3a8a1c51503313058e3c58c35df86f7485453c4be6ab24bf7 +sha=bfb22a7ad06f3cf727058dd71a00423a7bb872f8 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.18-src b/plugins/python-build/share/python-build/pypy3.10-7.3.18-src index 3b041ee181..b6c4e69222 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.18-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.18-src @@ -1,14 +1,9 @@ VERSION='7.3.18' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=08eb70e866987e4abe88ae9f54a98f919df92b595f7cdf4041703e8802b11552 +sha=e90335a7776c7e5f3f2a4f4d52848e447716b814 ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.10-7.3.19-src b/plugins/python-build/share/python-build/pypy3.10-7.3.19-src index 625d016f6b..eb856dd512 100644 --- a/plugins/python-build/share/python-build/pypy3.10-7.3.19-src +++ b/plugins/python-build/share/python-build/pypy3.10-7.3.19-src @@ -1,14 +1,9 @@ VERSION='7.3.19' PYVER='3.10' -# https://www.pypy.org/checksums.html -hash=a7c22930b918f40870865ed8a74147f4434ef84d3d6ca2b3c1eba9355d4929c8 +sha=64367dfeb2639a9eabdcf1659f804efc47a783ce ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.18-src b/plugins/python-build/share/python-build/pypy3.11-7.3.18-src index 970fe1cb7c..a0079bb26e 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.18-src +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.18-src @@ -1,14 +1,9 @@ VERSION='7.3.18' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=fbc82b8ff67b942e6fce49980dc0f0f83193b005173f9bddd39d6396fb6b939d +sha=b38de282ceade09de223a35c450387da97e4938b ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.19-src b/plugins/python-build/share/python-build/pypy3.11-7.3.19-src index 3944137988..a9202b02bc 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.19-src +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.19-src @@ -1,14 +1,9 @@ VERSION='7.3.19' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=4817c044bb469a3274e60aa3645770f81eb4f9166ea7fdc4e6c351345554c8d8 +sha=0253c85bf5f86a45760eda7f0af8953ed8a253c7 ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.20-src b/plugins/python-build/share/python-build/pypy3.11-7.3.20-src index fddb57ff35..1711a1aa68 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.20-src +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.20-src @@ -1,14 +1,9 @@ VERSION='7.3.20' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=7786dda760003e2ea7409c1037e50200c578ec427ce0245ac4cd758710b206fb +sha=413c9b7f57f5d40da72669857e97a636150fc533 ### 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' +require_openssl3 +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.21-src b/plugins/python-build/share/python-build/pypy3.11-7.3.21-src index e8f67ee325..622f0e788c 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.21-src +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.21-src @@ -1,14 +1,10 @@ VERSION='7.3.21' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=e7c9d8236ef279dba51abb9e691401a6c805bbe3250c6842dc9bac98f8de688a +sha=2a098039edb53b5fb6fea70edc5a351561b80cce ### 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' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.22-src b/plugins/python-build/share/python-build/pypy3.11-7.3.22-src index 183c06f9e0..905d16d9e1 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.22-src +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.22-src @@ -1,14 +1,10 @@ VERSION='7.3.22' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=9f885a47a232b957f9b5cc4307264af229570ddea62a9c175351afa3a6321820 +sha=a92d4f0ffca4f1108cedbe86c7a1de980c62d015 ### 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' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-7.3.23-src b/plugins/python-build/share/python-build/pypy3.11-7.3.23-src index a668eb0973..7a8ea372ca 100644 --- a/plugins/python-build/share/python-build/pypy3.11-7.3.23-src +++ b/plugins/python-build/share/python-build/pypy3.11-7.3.23-src @@ -1,14 +1,10 @@ VERSION='7.3.23' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=f15c9c41e03f3f7ecc25228c6c67427b8918f21ef2d694215994b1fade20f69b +sha=36c27af9f867cd1cd91fed1be7f408a0f750470d ### 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' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.11-8.0.0-src b/plugins/python-build/share/python-build/pypy3.11-8.0.0-src index 50740d871e..1c896fb7e9 100644 --- a/plugins/python-build/share/python-build/pypy3.11-8.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.11-8.0.0-src @@ -1,12 +1,10 @@ VERSION='8.0.0' PYVER='3.11' -# https://www.pypy.org/checksums.html -hash=829cef413d84383563488f0234b3cc537a8034e43fda13e0530500dad2d5dc3b +sha=4389fd309cd02fe42f458fa5d624aa1bc36a9570 ### end of manual settings - following lines same for every download -ver="pypy${PYVER}-v${VERSION}-src" -url="https://downloads.python.org/pypy/${ver}.tar.gz" - -install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.12-8.0.0-src b/plugins/python-build/share/python-build/pypy3.12-8.0.0-src index c0139aae98..a9c83e855b 100644 --- a/plugins/python-build/share/python-build/pypy3.12-8.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.12-8.0.0-src @@ -1,12 +1,10 @@ VERSION='8.0.0' PYVER='3.12' -# https://www.pypy.org/checksums.html -hash=eb406334e413828901034544d0033d67452c3cf2f11f77fd2daae0cd4fbb0a7b +sha=1a041150982230044b8519700d03626e429a782a ### end of manual settings - following lines same for every download -ver="pypy${PYVER}-v${VERSION}-src" -url="https://downloads.python.org/pypy/${ver}.tar.gz" - -install_package "${ver}" "${url}#${hash}" 'pypy_builder' "verify_py${PYVER//./}" 'ensurepip' +require_openssl3 +PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA="${PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA:-tcl-tk tcl-tk@8}" +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.0-src b/plugins/python-build/share/python-build/pypy3.5-5.10.0-src index c829916d16..7e46baae8d 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.10.0-src" "https://downloads.python.org/pypy/pypy3-v5.10.0-src.tar.bz2#a6e4cffde71e3f08b6e1befa5c0352a9bcc5f4e9f5cbf395001e0763a1a0d9e3" "pypy_builder" verify_py35 ensurepip +install_git "pypy3-v5.10.0-src" https://github.com/pypy/pypy release-pypy3.5-v5.10.0:074540ac11561c4e9b1e3c496561e192713080b4 "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.10.1-src b/plugins/python-build/share/python-build/pypy3.5-5.10.1-src index 90e283b0f8..5516e632e4 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.10.1-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.10.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.10.1-src" "https://downloads.python.org/pypy/pypy3-v5.10.1-src.tar.bz2#f5548e06e2fc0c24ec8b6e3c5b09f90081818f7caa3e436dc312592611724713" "pypy_builder" verify_py35 ensurepip +install_git "pypy3-v5.10.1-src" https://github.com/pypy/pypy release-pypy3.5-v5.10.1:9f51a559f7443024faa7cddc2c30d8194a6413cf "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.8.0-src b/plugins/python-build/share/python-build/pypy3.5-5.8.0-src index cd8d4e8008..bb40a43436 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.8.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.8.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.8.0-src" "https://downloads.python.org/pypy/pypy3-v5.8.0-src.tar.bz2#9d090127335c3c0fd2b14c8835bf91752e62756e55ea06aad3353f24a6854223" "pypy_builder" verify_py35 ensurepip +install_git "pypy3-v5.8.0-src" https://github.com/pypy/pypy release-pypy3.5-v5.8.0:745538cacd74ad275defd2e949dfcf7e148d0921 "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-5.9.0-src b/plugins/python-build/share/python-build/pypy3.5-5.9.0-src index de3ab84197..fd056a5b98 100644 --- a/plugins/python-build/share/python-build/pypy3.5-5.9.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-5.9.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v5.9.0-src" "https://downloads.python.org/pypy/pypy3-v5.9.0-src.tar.bz2#a014f47f50a1480f871a0b82705f904b38c93c4ca069850eb37653fedafb1b97" "pypy_builder" verify_py35 ensurepip +install_git "pypy3-v5.9.0-src" https://github.com/pypy/pypy release-pypy3.5-v5.9.0:3143ab93c72f971ab71537edbb270a312e80dad0 "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-6.0.0-src b/plugins/python-build/share/python-build/pypy3.5-6.0.0-src index fc827487c4..d7ca267bd4 100644 --- a/plugins/python-build/share/python-build/pypy3.5-6.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-6.0.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3-v6.0.0-src" "https://downloads.python.org/pypy/pypy3-v6.0.0-src.tar.bz2#ed8005202b46d6fc6831df1d13a4613bc40084bfa42f275068edadf8954034a3" "pypy_builder" verify_py35 ensurepip +install_git "pypy3-v6.0.0-src" https://github.com/pypy/pypy release-pypy3.5-v6.0.0:099f9a7a22285f3f6cb17601759eacc86ed4211a "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.5-7.0.0-src b/plugins/python-build/share/python-build/pypy3.5-7.0.0-src index 00c828b8ff..d084c3d773 100644 --- a/plugins/python-build/share/python-build/pypy3.5-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.5-7.0.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.5-v7.0.0-src" "https://downloads.python.org/pypy/pypy3.5-v7.0.0-src.tar.bz2#b2ddb0f45cb4e0384fb498ef7fcca2ac96c730b9000affcf8d730169397f017f" "pypy_builder" verify_py35 ensurepip +install_git "pypy3.5-v7.0.0-src" https://github.com/pypy/pypy release-pypy3.5-v7.0.0:dcdfb9ead9dbcd383c35845f49ad66067696bc76 "pypy_builder" verify_py35 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.0.0-src b/plugins/python-build/share/python-build/pypy3.6-7.0.0-src index 6bec49552a..26106755ff 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.0.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.0.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.0.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.0.0-src.tar.bz2#7ccbf81db5c647fa0c27636c7d18d059d2570fff7eaffc03857c67bee84b8a26" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.0.0-src" https://github.com/pypy/pypy release-pypy3.6-v7.0.0:ffb7a4989c7af02a1343e91e78b2eef7b52cb5ba "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.0-src b/plugins/python-build/share/python-build/pypy3.6-7.1.0-src index 623a8fe6c9..1f24563f2c 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.1.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.1.0-src.tar.bz2#faa81f469bb2a7cbd22c64f22d4b4ddc5a1f7c798d43b7919b629b932f9b1c6f" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.1.0-src" https://github.com/pypy/pypy release-pypy3.6-v7.1.0:2e21633c765ef015a8ff5d432b5aa1fbc09c0736 "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.1.1-src b/plugins/python-build/share/python-build/pypy3.6-7.1.1-src index 2f50fdf131..81355df6ea 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.1.1-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.1.1-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.1.1-src" "https://downloads.python.org/pypy/pypy3.6-v7.1.1-src.tar.bz2#6a3ef876e3691a54f4cff045028ec3be94ab9beb2e99f051b83175302c1899a8" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.1.1-src" https://github.com/pypy/pypy release-pypy3.6-v7.1.1:ad4624feefdfa2583efe6fcc07d6a62c53a64274 "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.2.0-src b/plugins/python-build/share/python-build/pypy3.6-7.2.0-src index ebd7d95120..83e8460075 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.2.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.2.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.2.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.2.0-src.tar.bz2#0d7c707df5041f1593fe82f29c40056c21e4d6cb66554bbd66769bd80bcbfafc" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.2.0-src" https://github.com/pypy/pypy release-pypy3.6-v7.2.0:d605d9abf2692760a55861de9232b7a32b7c35f3 "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.0-src b/plugins/python-build/share/python-build/pypy3.6-7.3.0-src index 7ee8b4e56c..4342c99a17 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.0-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.0-src @@ -1,3 +1,3 @@ prefer_openssl11 install_package "openssl-1.1.0j" "https://www.openssl.org/source/old/1.1.0/openssl-1.1.0j.tar.gz#31bec6c203ce1a8e93d5994f4ed304c63ccf07676118b6634edded12ad1b3246" mac_openssl --if has_broken_mac_openssl -install_package "pypy3.6-v7.3.0-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.0-src.tar.bz2#48d12c15fbcbcf4a32882a883195e1f922997cde78e7a16d4342b9b521eefcfa" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.3.0-src" https://github.com/pypy/pypy release-pypy3.6-v7.3.0:5dcea01b4350895a2b0b0231a7889d4ce641902a "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.1-src b/plugins/python-build/share/python-build/pypy3.6-7.3.1-src index 019dd3c464..2db8fc881f 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.1-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.1-src @@ -1,3 +1,3 @@ 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 "pypy3.6-v7.3.1-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.1-src.tar.bz2#0c2cc3229da36c6984baee128c8ff8bb4516d69df1d73275dc4622bf249afa83" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.3.1-src" https://github.com/pypy/pypy release-pypy3.6-v7.3.1:6c09c80243d4cdba5195cb7c628b8fd8a0015644 "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.2-src b/plugins/python-build/share/python-build/pypy3.6-7.3.2-src index 3dc4a7594b..5298fd77fa 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.2-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.2-src @@ -1,3 +1,3 @@ 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 "pypy3.6-v7.3.2-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.2-src.tar.bz2#fd6175fed63ff9fccd7886068078853078948d98afae9bd4f5554c6f7873c10d" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.3.2-src" https://github.com/pypy/pypy release-pypy3.6-v7.3.2:2a5aacc6c2a87567d5133d141545a363bb881294 "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.6-7.3.3-src b/plugins/python-build/share/python-build/pypy3.6-7.3.3-src index 173f87ac99..e3e68a9ea1 100644 --- a/plugins/python-build/share/python-build/pypy3.6-7.3.3-src +++ b/plugins/python-build/share/python-build/pypy3.6-7.3.3-src @@ -1,3 +1,3 @@ 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 "pypy3.6-v7.3.3-src" "https://downloads.python.org/pypy/pypy3.6-v7.3.3-src.tar.bz2#a23d21ca0de0f613732af4b4abb0b0db1cc56134b5bf0e33614eca87ab8805af" "pypy_builder" verify_py36 ensurepip +install_git "pypy3.6-v7.3.3-src" https://github.com/pypy/pypy release-pypy3.6-v7.3.3:250ebd7d46c4f79fd05eb861ae475c94730cd16d "pypy_builder" verify_py36 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.2-src b/plugins/python-build/share/python-build/pypy3.7-7.3.2-src index b0beb7c5d0..a954ad7385 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.2-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.2-src @@ -1,3 +1,3 @@ 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 "pypy3.7-v7.3.2-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.2-src.tar.bz2#9274186eb0c28716a8c6134803b1df857bc3f496e25e50e605c4d95201c8817d" "pypy_builder" verify_py37 ensurepip +install_git "pypy3.7-v7.3.2-src" https://github.com/pypy/pypy release-pypy3.7-v7.3.2:e60cef137573953004dac847c043642e7a6f7513 "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.3-src b/plugins/python-build/share/python-build/pypy3.7-7.3.3-src index 1b8e6ab6b1..4b0b63cff4 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.3-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.3-src @@ -1,3 +1,3 @@ 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 "pypy3.7-v7.3.3-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.3-src.tar.bz2#f6c96401f76331e474cca2d14437eb3b2f68a0f27220a6dcbc537445fe9d5b78" "pypy_builder" verify_py37 ensurepip +install_git "pypy3.7-v7.3.3-src" https://github.com/pypy/pypy release-pypy3.7-v7.3.3:48d607051c6dc07c1f46a0c5b0f4166c67fcd781 "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.4-src b/plugins/python-build/share/python-build/pypy3.7-7.3.4-src index 5eda9e32e5..8bc2e21fa3 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.4-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.4-src @@ -1,3 +1,3 @@ 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 "pypy3.7-v7.3.4-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.4-src.tar.bz2#74d3c1e79f3fc7d384ffb32d3d2a95c2d5f61b81091eccce12ac76030d96ad08" "pypy_builder" verify_py37 ensurepip +install_git "pypy3.7-v7.3.4-src" https://github.com/pypy/pypy release-pypy3.7-v7.3.4:4f3d5f772bdd1fe84bb328d9411214bb633ff292 "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.5-src b/plugins/python-build/share/python-build/pypy3.7-7.3.5-src index a3ba97e1b9..cca88a2ac4 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.5-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.5-src @@ -1,3 +1,3 @@ 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 "pypy3.7-v7.3.5-src" "https://downloads.python.org/pypy/pypy3.7-v7.3.5-src.tar.bz2#d920fe409a9ecad9d074aa8568ca5f3ed3581be66f66e5d8988b7ec66e6d99a2" "pypy_builder" verify_py37 ensurepip +install_git "pypy3.7-v7.3.5-src" https://github.com/pypy/pypy release-pypy3.7-v7.3.5:9af39251a28313d4af85c37eb928ac21df6d6231 "pypy_builder" verify_py37 ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.6-src b/plugins/python-build/share/python-build/pypy3.7-7.3.6-src index 945f29e96b..4728d28490 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.6-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.6-src @@ -3,4 +3,4 @@ PYVER='3.7' 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#9252ccaa130094205b3c7f0a2cad5adc0d9dfba31658ff3172f788dec1fdb348" "pypy_builder" "verify_py${PYVER//./}" ensurepip +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}":578068abb3aafbe021ad11d4dc7780e794f9a84b "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.7-src b/plugins/python-build/share/python-build/pypy3.7-7.3.7-src index c2faa3a58c..68c1390115 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.7-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.7-src @@ -1,7 +1,6 @@ VERSION='7.3.7' PYVER='3.7' -# https://www.pypy.org/checksums.html 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#2ed02ac9e710859c41bc82deafb08619792bb9a27eeaa1676c741ededd214dd7" "pypy_builder" "verify_py${PYVER//./}" ensurepip +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}":1f27f32747880eafa5f83ca82c5c89731187d822 "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.8-src b/plugins/python-build/share/python-build/pypy3.7-7.3.8-src index f120f5e365..087a34924a 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.8-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.8-src @@ -1,14 +1,10 @@ VERSION='7.3.8' PYVER='3.7' -# https://www.pypy.org/checksums.html -hash=35752be62b148fa6f7fb69e58e1f993c7cc319bea54928eb03ed2e75b8248d5f +sha=032cf9de4714795ed5a970790f751d1da12d7a86 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.7-7.3.9-src b/plugins/python-build/share/python-build/pypy3.7-7.3.9-src index e48b458a0e..a4da446096 100644 --- a/plugins/python-build/share/python-build/pypy3.7-7.3.9-src +++ b/plugins/python-build/share/python-build/pypy3.7-7.3.9-src @@ -1,14 +1,10 @@ VERSION='7.3.9' PYVER='3.7' -# https://www.pypy.org/checksums.html -hash=70426163b194ee46009986eea6d9426098a3ffb552d9cdbd3dfaa64a47373f49 +sha=3a614a6737a119273a601c86eae9ee822a60d607 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.10-src b/plugins/python-build/share/python-build/pypy3.8-7.3.10-src index 5530b6601e..e6b0049465 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.10-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.10-src @@ -1,14 +1,10 @@ VERSION='7.3.10' PYVER='3.8' -# https://www.pypy.org/checksums.html -hash=218a1e062f17aba89f61bc398e8498f13c048b9fcf294343f5d9d56c3ac9b882 +sha=f9d5ae392ad48ccdb86b99a1dfd6d5aaf6697257 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.11-src b/plugins/python-build/share/python-build/pypy3.8-7.3.11-src index 3dce018079..da35e234e5 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.11-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.11-src @@ -1,14 +1,10 @@ VERSION='7.3.11' PYVER='3.8' -# https://www.pypy.org/checksums.html -hash=4d6769bfca73734e8666fd70503b7ceb06a6e259110e617331bb3899ca4e6058 +sha=e95a453573116284e35c68dd03eeed13dc9fe726 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.6-src b/plugins/python-build/share/python-build/pypy3.8-7.3.6-src index 238381cea7..e862ba9fff 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.6-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.6-src @@ -1,7 +1,6 @@ VERSION='7.3.6' PYVER='3.8' -# https://www.pypy.org/checksums.html 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#f234c56eb0d4ab0afb196232fb38cd1ca8e19b1c65cf7b65eb691695499be259" "pypy_builder" "verify_py${PYVER//./}" ensurepip +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}":a75134e0cf04e36eb30b62d77a31a64c0afee841 "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.7-src b/plugins/python-build/share/python-build/pypy3.8-7.3.7-src index 0d9fbd6aef..cc36ed651f 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.7-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.7-src @@ -1,7 +1,6 @@ VERSION='7.3.7' PYVER='3.8' -# https://www.pypy.org/checksums.html 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 "pypy${PYVER}-v${VERSION}-src" "https://downloads.python.org/pypy/pypy${PYVER}-v${VERSION}-src.tar.bz2#21ae339f4f5016d6ca7300305f3e3b554373835cb3c39a9041fe30e6811c80c6" "pypy_builder" "verify_py${PYVER//./}" ensurepip +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}":8a2bea7e8212294d46aef80ba4eeb26735ec836c "pypy_builder" "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.8-src b/plugins/python-build/share/python-build/pypy3.8-7.3.8-src index 89c4c7c4cc..63b20aefec 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.8-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.8-src @@ -1,14 +1,10 @@ VERSION='7.3.8' PYVER='3.8' -# https://www.pypy.org/checksums.html -hash=f1a378b264cdbfb0e03d77dfc4d105d02f91d542bd7c9c957d1f8083a9808f1f +sha=e772cd286da451d8329104b1ebb66de29e48ecc3 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.8-7.3.9-src b/plugins/python-build/share/python-build/pypy3.8-7.3.9-src index 21d2bfe547..d32c7856c3 100644 --- a/plugins/python-build/share/python-build/pypy3.8-7.3.9-src +++ b/plugins/python-build/share/python-build/pypy3.8-7.3.9-src @@ -1,14 +1,10 @@ VERSION='7.3.9' PYVER='3.8' -# https://www.pypy.org/checksums.html -hash=5b5d9d9256f12a129af8384e2f581bdfab3bc0fbbe3a0a480d9c1d2e95490eb1 +sha=90e3fae5b5b32ed769c2c9dc316e2b1eb7b72aea ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.10-src b/plugins/python-build/share/python-build/pypy3.9-7.3.10-src index ef4c5f307b..8e59a07856 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.10-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.10-src @@ -1,14 +1,10 @@ VERSION='7.3.10' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=3738d32575ed2513e3e66878e4e4c6c208caed267570f3f9f814748830002967 +sha=59af01eca3d8dd99e0d41f8e07608059f2a62e94 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.11-src b/plugins/python-build/share/python-build/pypy3.9-7.3.11-src index a5b4b3bcfa..d148ffbd96 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.11-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.11-src @@ -1,14 +1,10 @@ VERSION='7.3.11' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=b0f3166fb2a5aadfd5ceb9db5cdd5f7929a0eccca02b4a26c0dae0492f7ca8ea +sha=c96469033f578357dea5e28612bada04767b02b7 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.12-src b/plugins/python-build/share/python-build/pypy3.9-7.3.12-src index ef5c784735..4a8d114b5c 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.12-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.12-src @@ -1,14 +1,10 @@ VERSION='7.3.12' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=e7a2046c7e6c25fc386abbb5132e92a7cc2491e3935699a946cb5dcbb342c2aa +sha=9e8f51605ac8407d548597bc4c9bb7111beafcac ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.13-src b/plugins/python-build/share/python-build/pypy3.9-7.3.13-src index 07ff98938b..5a77576054 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.13-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.13-src @@ -1,14 +1,10 @@ VERSION='7.3.13' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=bc6147268105e7cb3bd57b401e6d97f66aa4ede269104b2712a7cdd9f02f68cd +sha=bd1a0d059f5e947f45cffb2c0293049ea2d30557 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.14-src b/plugins/python-build/share/python-build/pypy3.9-7.3.14-src index e572a8f89c..50d6d3f1cd 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.14-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.14-src @@ -1,14 +1,10 @@ VERSION='7.3.14' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=560fe6161e159557e1fe612aaadf9b293eefded1da372e70b8e3b23bba598366 +sha=e6f997b28554934f65f490eeb2b17b7db7c34188 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.15-src b/plugins/python-build/share/python-build/pypy3.9-7.3.15-src index 510cc52305..097d9e09cf 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.15-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.15-src @@ -1,14 +1,10 @@ VERSION='7.3.15' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=6bb9537d85aa7ad13c0aad2e41ff7fd55080bc9b4d1361b8f502df51db816e18 +sha=3c7909a4333061e35dacb27380b76f473f843c6d ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.16-src b/plugins/python-build/share/python-build/pypy3.9-7.3.16-src index b8c0cc6312..5f2bb704a9 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.16-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.16-src @@ -1,14 +1,10 @@ VERSION='7.3.16' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=5b75af3f8e76041e79c1ef5ce22ce63f8bd131733e9302081897d8f650e81843 +sha=a2113ea87262a302918df8a262fb073f81776bbe ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.8-src b/plugins/python-build/share/python-build/pypy3.9-7.3.8-src index ddd32e8116..edd4904da9 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.8-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.8-src @@ -1,14 +1,10 @@ VERSION='7.3.8' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=546b7fc3789728869d5ada7b6a95ce9d03047e8489b92ada84613c900e431ee9 +sha=c24f79b4cd36e99379ec77778c37d75a298b0d66 ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip diff --git a/plugins/python-build/share/python-build/pypy3.9-7.3.9-src b/plugins/python-build/share/python-build/pypy3.9-7.3.9-src index 1e3c8cdffa..bab2da087a 100644 --- a/plugins/python-build/share/python-build/pypy3.9-7.3.9-src +++ b/plugins/python-build/share/python-build/pypy3.9-7.3.9-src @@ -1,14 +1,10 @@ VERSION='7.3.9' PYVER='3.9' -# https://www.pypy.org/checksums.html -hash=2abaa1e9fe1ec0e233c9fbc377a0c8e9a0634080a8f4f30eb6898301f6618c12 +sha=9b9f2aad96773dff9d7411d3637791b3ed3581bb ### 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' +install_git "pypy${PYVER}-v${VERSION}-src" https://github.com/pypy/pypy "release-pypy${PYVER}-v${VERSION}:$sha" pypy_builder "verify_py${PYVER//./}" ensurepip From 42d61c48a897c74f683f5b341fb3aeac63edac87 Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Fri, 9 Oct 2026 20:28:43 +0300 Subject: [PATCH 1312/1324] Add CPython 3.15.0 (#3589) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/{3.15.0rc3 => 3.15.0} | 4 ++-- .../python-build/share/python-build/{3.15.0rc3t => 3.15.0t} | 0 2 files changed, 2 insertions(+), 2 deletions(-) rename plugins/python-build/share/python-build/{3.15.0rc3 => 3.15.0} (58%) rename plugins/python-build/share/python-build/{3.15.0rc3t => 3.15.0t} (100%) diff --git a/plugins/python-build/share/python-build/3.15.0rc3 b/plugins/python-build/share/python-build/3.15.0 similarity index 58% rename from plugins/python-build/share/python-build/3.15.0rc3 rename to plugins/python-build/share/python-build/3.15.0 index 7b3f8e3dba..cbc4780f45 100644 --- a/plugins/python-build/share/python-build/3.15.0rc3 +++ b/plugins/python-build/share/python-build/3.15.0 @@ -5,7 +5,7 @@ export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 install_package "openssl-4.0.3" "https://github.com/openssl/openssl/releases/download/openssl-4.0.3/openssl-4.0.3.tar.gz#325b5c806167c13b40b1ffeadfe0248197c00eccc4cf123ec1e28d2d2fd216d9" mac_openssl --if has_broken_mac_openssl install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline if has_tar_xz_support; then - install_package "Python-3.15.0rc3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc3.tar.xz#506630aa66d5441188f34df22c0760bfe87fc92212630493ebc9ff3b3a7a1d49" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0.tar.xz#ba4bed1ba346b916890b76d9e320451420aa69f6408997d33c66482eeae3d575" standard verify_py315 copy_python_gdb ensurepip else - install_package "Python-3.15.0rc3" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0rc3.tgz#98a6264c7a48e4ce0f9a9ea4bdd211ea9fcff32b55c79c5efc1ae6d91b032210" standard verify_py315 copy_python_gdb ensurepip + install_package "Python-3.15.0" "https://www.python.org/ftp/python/3.15.0/Python-3.15.0.tgz#438596cac081036d3c1d532ab7e7335eeb35567bc961749a0d5797176db0db68" standard verify_py315 copy_python_gdb ensurepip fi diff --git a/plugins/python-build/share/python-build/3.15.0rc3t b/plugins/python-build/share/python-build/3.15.0t similarity index 100% rename from plugins/python-build/share/python-build/3.15.0rc3t rename to plugins/python-build/share/python-build/3.15.0t From c9c52c82e99df6a1da3fe86f2be75f5606a834d8 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 Oct 2026 20:35:50 +0300 Subject: [PATCH 1313/1324] CI: 3.10->3.15; use ubuntu-26.04 * 3.10 is EOL, 3.15 is out * ubuntu-26.06 CI worker is out of beta --- .github/workflows/build.yml | 6 ++++-- .github/workflows/modified_scripts_build.yml | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3fc2e67453..405967af3a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,9 @@ jobs: "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-24.04", - "ubuntu-24.04-arm" + "ubuntu-24.04-arm", + "ubuntu-26.04", + "ubuntu-26.04-arm" ]' outputs: os: ${{ steps.detect.outputs.os }} @@ -48,11 +50,11 @@ jobs: matrix: os: ${{ fromJson(needs.discover_build_logic_change.outputs.os || '["macos-latest","ubuntu-latest"]') }} python-version: - - "3.10" - "3.11" - "3.12" - "3.13" - "3.14" + - "3.15" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 0c36be626b..d77bdb1ab8 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -212,6 +212,8 @@ jobs: - ubuntu-22.04-arm - ubuntu-24.04 - ubuntu-24.04-arm + - ubuntu-26.04 + - ubuntu-26.04-arm runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 From c79821d9ca3cfdf186ae455c656e7bae15e3d097 Mon Sep 17 00:00:00 2001 From: native-api Date: Fri, 9 Oct 2026 22:07:37 +0300 Subject: [PATCH 1314/1324] CI: 3.10->3.15; use ubuntu-26.04 (#3590) * 3.10 is EOL, 3.15 is out * ubuntu-26.06 CI worker is out of beta --- .github/workflows/build.yml | 6 ++++-- .github/workflows/modified_scripts_build.yml | 2 ++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3fc2e67453..405967af3a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,9 @@ jobs: "ubuntu-22.04", "ubuntu-22.04-arm", "ubuntu-24.04", - "ubuntu-24.04-arm" + "ubuntu-24.04-arm", + "ubuntu-26.04", + "ubuntu-26.04-arm" ]' outputs: os: ${{ steps.detect.outputs.os }} @@ -48,11 +50,11 @@ jobs: matrix: os: ${{ fromJson(needs.discover_build_logic_change.outputs.os || '["macos-latest","ubuntu-latest"]') }} python-version: - - "3.10" - "3.11" - "3.12" - "3.13" - "3.14" + - "3.15" runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 diff --git a/.github/workflows/modified_scripts_build.yml b/.github/workflows/modified_scripts_build.yml index 0c36be626b..d77bdb1ab8 100644 --- a/.github/workflows/modified_scripts_build.yml +++ b/.github/workflows/modified_scripts_build.yml @@ -212,6 +212,8 @@ jobs: - ubuntu-22.04-arm - ubuntu-24.04 - ubuntu-24.04-arm + - ubuntu-26.04 + - ubuntu-26.04-arm runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v7 From 8000f98f4bd1f86dfca4ee91930506953c6e6f73 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Fri, 9 Oct 2026 22:11:38 +0300 Subject: [PATCH 1315/1324] 2.8.9 --- CHANGELOG.md | 9 +++++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 51b38437bf..8d8d1ddb93 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Version History +## Release v2.8.9 +* Rename PYTHON_BUILD_TCLTK_FORMULA to PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA; deprecate the old name by @native-api in https://github.com/pyenv/pyenv/pull/3580 +* python-build: install_git: Support verifying the checkout by SHA-1 by @native-api in https://github.com/pyenv/pyenv/pull/3586 +* python-build: support additional versioned OpenSSL Homebrew formulae by @native-api in https://github.com/pyenv/pyenv/pull/3588 +* python-build: use more dependencies from Homebrew/MacPorts for PyPy source build by @native-api in https://github.com/pyenv/pyenv/pull/3587 +* PyPy: update sources and dependencies by @native-api in https://github.com/pyenv/pyenv/pull/3585 +* Add CPython 3.15.0 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3589 +* CI: 3.10->3.15; use ubuntu-26.04 by @native-api in https://github.com/pyenv/pyenv/pull/3590 + ## Release v2.8.8 * pyenv-binary: allow local definitions to override published packages by @macayu17 in https://github.com/pyenv/pyenv/pull/3577 * exec: add the `--environment` option for programs that embed `libpython` without a path by @Romwierz in https://github.com/pyenv/pyenv/pull/3537 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 83e3e8ab38..f53639bb8a 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -e [ -n "$PYENV_DEBUG" ] && set -x -version="2.8.8" +version="2.8.9" git_revision="" if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index a07aef3108..bb6187986e 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.8" +PYTHON_BUILD_VERSION="2.8.9" OLDIFS="$IFS" From 68fbc9f35a844b176d740db0ca3b98afb2631cb4 Mon Sep 17 00:00:00 2001 From: danglduy <38782010+danglduy@users.noreply.github.com> Date: Sat, 10 Oct 2026 17:44:33 +0700 Subject: [PATCH 1316/1324] python-build: honor SDKROOT when selecting Xcode SDK for zlib (#3591) --- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/compiler.bats | 47 +++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index bb6187986e..6871bec233 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2011,7 +2011,7 @@ use_xcode_sdk_zlib() { # If a custom compiler is used, including XCode SDK will likely break it osx_using_default_compiler || return 1 - local sdkroot="$(xcrun --sdk macosx --show-sdk-path 2>/dev/null || true)" + local sdkroot="${SDKROOT:-$(xcrun --sdk macosx --show-sdk-path 2>/dev/null || true)}" [[ -z ${sdkroot} || ! -d ${sdkroot} ]] && return 1 # Since Xcode 16 / macOS SDK 15, Apple tightened how the linker uses SDK content: diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index b46ff53dcf..d224293905 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -1,6 +1,53 @@ #!/usr/bin/env bats load test_helper + +@test "Xcode SDK zlib honors SDKROOT and preserves compiler flags" { + export SDKROOT="${BATS_TEST_TMPDIR}/selected-sdk" + mkdir -p "$SDKROOT" + stub xcrun 'false' + + run_inline_definition <<'DEF' +osx_using_default_compiler() { return 0; } +export CFLAGS=-O2 LDFLAGS=-custom-linker-flag +use_xcode_sdk_zlib +echo "CFLAGS=$CFLAGS" +echo "LDFLAGS=$LDFLAGS" +DEF + + assert_success + assert_output < Date: Sat, 10 Oct 2026 13:46:55 +0300 Subject: [PATCH 1317/1324] put tests after _setup() --- plugins/python-build/test/compiler.bats | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/python-build/test/compiler.bats b/plugins/python-build/test/compiler.bats index d224293905..8caed6e9d7 100644 --- a/plugins/python-build/test/compiler.bats +++ b/plugins/python-build/test/compiler.bats @@ -2,6 +2,14 @@ load test_helper +_setup() { + export MAKE=make + export MAKE_OPTS='-j 2' + export -n CFLAGS + export -n CC + export -n PYTHON_CONFIGURE_OPTS +} + @test "Xcode SDK zlib honors SDKROOT and preserves compiler flags" { export SDKROOT="${BATS_TEST_TMPDIR}/selected-sdk" mkdir -p "$SDKROOT" @@ -48,14 +56,6 @@ OUT unstub xcrun } -_setup() { - export MAKE=make - export MAKE_OPTS='-j 2' - export -n CFLAGS - export -n CC - export -n PYTHON_CONFIGURE_OPTS -} - @test "require_gcc on OS X 10.9" { stub uname '-s : echo Darwin' From 03ddd91404f4116cda1319a98c41a924445397f4 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Mon, 12 Oct 2026 21:05:06 +0300 Subject: [PATCH 1318/1324] Fix error when running `make test-docker -j fix "the input device is not a TTY" Docker error --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index cfbc0ec78d..e869a688eb 100644 --- a/Makefile +++ b/Makefile @@ -28,7 +28,7 @@ $(TEST_UNIT_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) $(TEST_UNIT_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) $(TEST_UNIT_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) $(TEST_UNIT_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) -$(TEST_UNIT_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_UNIT_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-t) $(TEST_UNIT_DOCKER_TARGETS): $(TEST_UNIT_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') docker run \ @@ -53,7 +53,7 @@ $(TEST_PYTHON_BUILD_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) $(TEST_PYTHON_BUILD_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) $(TEST_PYTHON_BUILD_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) $(TEST_PYTHON_BUILD_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) -$(TEST_PYTHON_BUILD_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_PYTHON_BUILD_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-t) $(TEST_PYTHON_BUILD_DOCKER_TARGETS): $(TEST_PYTHON_BUILD_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') docker run \ @@ -76,7 +76,7 @@ $(TEST_BINARY_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) $(TEST_BINARY_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) $(TEST_BINARY_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) $(TEST_BINARY_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) -$(TEST_BINARY_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_BINARY_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-t) $(TEST_BINARY_DOCKER_TARGETS): $(TEST_BINARY_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') docker run \ @@ -99,7 +99,7 @@ $(TEST_LINK_DOCKER_TARGETS): DOCKER_IMAGE = $(TEST_BATS_IMAGE_PREFIX) $(TEST_LINK_DOCKER_TARGETS): GNU = $(if $(findstring -gnu-,$@),True,False) $(TEST_LINK_DOCKER_TARGETS): BASH = $(filter $(TEST_BASH_VERSIONS),$(subst -, ,$@)) $(TEST_LINK_DOCKER_TARGETS): DOCKER_TAG = bash-$(BASH)-gnu-$(GNU) -$(TEST_LINK_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-ti) +$(TEST_LINK_DOCKER_TARGETS): INTERACTIVE = $(if $(findstring true,$(CI)),,-t) $(TEST_LINK_DOCKER_TARGETS): $(TEST_LINK_DOCKER_PREFIX)-% : $(TEST_BATS_IMAGE_PREFIX)-% $(info Running test with docker image '$(DOCKER_IMAGE):$(DOCKER_TAG)') docker run \ From 8a4a54a0100e3486bf0fbe5e89585e4986d71848 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Tue, 13 Oct 2026 15:35:00 +0300 Subject: [PATCH 1319/1324] Fix incorrect tested var name --- plugins/python-build/test/build.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index 959a27dc1e..eb64a7f6c4 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -1105,7 +1105,7 @@ OUT } @test "tcl-tk is linked from Homebrew with PYTHON_BUILD_TCLTK_FORMULA" { - test_tcltk_var PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA + test_tcltk_var PYTHON_BUILD_TCLTK_FORMULA } @test "PYTHON_BUILD_TCLTK_FORMULA produces a deprecation warning" { From 190496c10de1323ac11e13f8734109269983c7bc Mon Sep 17 00:00:00 2001 From: native-api Date: Tue, 13 Oct 2026 19:44:19 +0300 Subject: [PATCH 1320/1324] version-file-write: fix not detecting an empty version argument beyond the first (#3592) Co-authored-by: Saloni Gupta --- libexec/pyenv-version-file-write | 25 +++++++++++++++---------- test/version-file-write.bats | 13 +++++++++++-- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/libexec/pyenv-version-file-write b/libexec/pyenv-version-file-write index db9e0f3b79..1573ac0a78 100755 --- a/libexec/pyenv-version-file-write +++ b/libexec/pyenv-version-file-write @@ -3,8 +3,10 @@ # # -f/--force Don't verify that the versions exist -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x + +FORCE= while [[ $# -gt 0 ]] do @@ -20,21 +22,24 @@ do done -PYENV_VERSION_FILE="$1" +PYENV_VERSION_FILE="${1:-}" shift || true versions=("$@") -if [ -z "$versions" ] || [ -z "$PYENV_VERSION_FILE" ]; then +if [ ${#versions[@]} -eq 0 ] || [ -z "$PYENV_VERSION_FILE" ]; then pyenv-help --usage version-file-write >&2 exit 1 fi # Make sure the specified version is installed. -[[ -z $FORCE ]] && pyenv-prefix "${versions[@]}" >/dev/null +[[ -z "${FORCE:-}" ]] && pyenv-prefix "${versions[@]}" >/dev/null + +payload=\ +$(for version in "${versions[@]}"; do + [[ -z $version ]] && { echo "pyenv: invalid empty version argument" >&2; exit 1; } + echo "$version" +done) # Write the version out to disk. -# Create an empty file. Using "rm" might cause a permission error. -> "$PYENV_VERSION_FILE" -for version in "${versions[@]}"; do - echo "$version" >> "$PYENV_VERSION_FILE" -done +# (Over)write the file. Using "rm" might cause a permission error. +echo "$payload" > "$PYENV_VERSION_FILE" diff --git a/test/version-file-write.bats b/test/version-file-write.bats index ae6694f91d..cde0cb943f 100644 --- a/test/version-file-write.bats +++ b/test/version-file-write.bats @@ -10,8 +10,17 @@ _setup() { @test "invocation without 2 arguments prints usage" { run pyenv-version-file-write assert_failure "Usage: pyenv version-file-write [-f|--force] [...]" - run pyenv-version-file-write "one" "" - assert_failure + run pyenv-version-file-write "one" + assert_failure "Usage: pyenv version-file-write [-f|--force] [...]" +} + +@test "setting empty version fails" { + run pyenv-version-file-write --force ".python-version" "" 2 3 + assert_failure "pyenv: invalid empty version argument" + assert [ ! -e ".python-version" ] + run pyenv-version-file-write --force ".python-version" 1 "" 3 + assert_failure "pyenv: invalid empty version argument" + assert [ ! -e ".python-version" ] } @test "setting nonexistent version fails" { From 7c877e06a099e5647d2151e59365f953d6c29a5d Mon Sep 17 00:00:00 2001 From: Saloni Gupta Date: Tue, 13 Oct 2026 19:20:36 +0200 Subject: [PATCH 1321/1324] Harden source scripts with `set -euo pipefail` and `set -f` (#3581) Only use -f whenever there's an unquoted word split where globbing is undesired --------- Co-authored-by: Ivan Pozdeev --- libexec/pyenv | 22 +++---- libexec/pyenv---version | 9 +-- libexec/pyenv-commands | 15 +++-- libexec/pyenv-completions | 6 +- libexec/pyenv-exec | 19 +++--- libexec/pyenv-global | 8 +-- libexec/pyenv-help | 14 ++--- libexec/pyenv-hooks | 62 ++++++++++--------- libexec/pyenv-init | 20 ++++-- libexec/pyenv-latest | 32 ++++++---- libexec/pyenv-local | 12 ++-- libexec/pyenv-prefix | 16 ++--- libexec/pyenv-rehash | 36 ++++++----- libexec/pyenv-root | 3 +- libexec/pyenv-sh-rehash | 8 +-- libexec/pyenv-sh-shell | 18 +++--- libexec/pyenv-shims | 8 +-- libexec/pyenv-version | 23 ++++--- libexec/pyenv-version-file | 12 ++-- libexec/pyenv-version-file-read | 7 ++- libexec/pyenv-version-name | 19 +++--- libexec/pyenv-version-origin | 14 +++-- libexec/pyenv-versions | 38 +++++++----- libexec/pyenv-whence | 12 ++-- libexec/pyenv-which | 33 ++++++---- plugins/pyenv-binary/bin/pyenv-binary | 4 +- .../libexec/pyenv-binary-generate-installer | 24 +++---- .../pyenv-binary/libexec/pyenv-binary-install | 15 +++-- .../pyenv-binary/libexec/pyenv-binary-package | 12 ++-- .../libexec/pyenv-binary-package-name | 10 +-- .../libexec/pyenv-binary-relocate | 11 ++-- .../pyenv-binary/libexec/pyenv-binary-save | 18 +++--- plugins/pyenv-binary/test/install.bats | 2 +- plugins/python-build/bin/python-build | 2 +- plugins/python-build/test/build.bats | 2 +- plugins/python-build/test/pyenv_ext.bats | 2 +- pyenv.d/rehash/conda.bash | 27 ++++---- test/pyenv.bats | 2 +- test/shell.bats | 2 +- 39 files changed, 336 insertions(+), 263 deletions(-) diff --git a/libexec/pyenv b/libexec/pyenv index 9a7154f42f..3183b4ef4b 100755 --- a/libexec/pyenv +++ b/libexec/pyenv @@ -1,12 +1,12 @@ #!/usr/bin/env bash -set -e +set -euo pipefail -if [ "$1" = "--debug" ]; then +if [ "${1:-}" = "--debug" ]; then export PYENV_DEBUG=1 shift fi -if [ -n "$PYENV_DEBUG" ]; then +if [ -n "${PYENV_DEBUG:-}" ]; then # https://wiki-dev.bash-hackers.org/scripting/debuggingtips#making_xtrace_more_useful export PS4='+(${BASH_SOURCE}:${LINENO}): ${FUNCNAME[0]:+${FUNCNAME[0]}(): }' set -x @@ -27,13 +27,13 @@ if enable -f "${BASH_SOURCE%/*}"/../libexec/pyenv-realpath.dylib realpath 2>/dev echo "${path%/*}" } else - [ -z "$PYENV_NATIVE_EXT" ] || abort "failed to load \`realpath' builtin" + [ -z "${PYENV_NATIVE_EXT:-}" ] || abort "failed to load \`realpath' builtin" - READLINK=$(type -P readlink) + READLINK="$(type -P readlink || true)" [ -n "$READLINK" ] || abort "cannot find readlink - are you missing GNU coreutils?" resolve_link() { - $READLINK "$1" + "$READLINK" "$1" } abs_dirname() { @@ -55,14 +55,14 @@ else } fi -if [ -z "${PYENV_ROOT}" ]; then +if [ -z "${PYENV_ROOT:-}" ]; then PYENV_ROOT="${HOME}/.pyenv" else PYENV_ROOT="${PYENV_ROOT%/}" fi export PYENV_ROOT -if [ -z "${PYENV_DIR}" ]; then +if [ -z "${PYENV_DIR:-}" ]; then PYENV_DIR="$PWD" fi @@ -93,7 +93,7 @@ if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then fi export PATH="${_PYENV_INSTALL_PREFIX}/libexec:${PATH}" -PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${PYENV_ROOT}/pyenv.d" +PYENV_HOOK_PATH="${PYENV_HOOK_PATH:+${PYENV_HOOK_PATH}:}${PYENV_ROOT}/pyenv.d" if [ "${_PYENV_INSTALL_PREFIX}" != "$PYENV_ROOT" ]; then # Add pyenv's own `pyenv.d` unless pyenv was cloned to PYENV_ROOT PYENV_HOOK_PATH="${PYENV_HOOK_PATH}:${_PYENV_INSTALL_PREFIX}/pyenv.d" @@ -108,7 +108,7 @@ export PYENV_HOOK_PATH shopt -u nullglob -command="$1" +command="${1:-}" case "$command" in "" ) { pyenv---version @@ -132,7 +132,7 @@ case "$command" in fi shift 1 - if [ "$1" = --help ]; then + if [ "${1:-}" = --help ]; then if [[ "$command" == "sh-"* ]]; then echo "pyenv help \"$command\"" else diff --git a/libexec/pyenv---version b/libexec/pyenv---version index f53639bb8a..0407e596ca 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -9,13 +9,14 @@ # where `num_commits` is the number of commits since `version` was # tagged. -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x version="2.8.9" -git_revision="" +git_revision= -if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep -q pyenv; then +# not using grep -q to avoid SIGPIPE which would fail the condition +if cd "${BASH_SOURCE%/*}" 2>/dev/null && git remote -v 2>/dev/null | grep pyenv >/dev/null; then git_revision="$(git describe --tags HEAD 2>/dev/null || true)" git_revision="${git_revision#v}" fi diff --git a/libexec/pyenv-commands b/libexec/pyenv-commands index d0012f8ed6..2642e0a198 100755 --- a/libexec/pyenv-commands +++ b/libexec/pyenv-commands @@ -2,25 +2,30 @@ # Summary: List all available pyenv commands # Usage: pyenv commands [--sh|--no-sh] -set -e -[[ -n $PYENV_DEBUG ]] && set -x +set -euo pipefail +[[ -n "${PYENV_DEBUG:-}" ]] && set -x # Provide pyenv completions -if [[ $1 = "--complete" ]]; then +if [[ ${1:-} = "--complete" ]]; then echo --sh echo --no-sh exit fi -if [[ $1 = "--sh" ]]; then +sh= +nosh= + +if [[ ${1:-} = "--sh" ]]; then sh=1 shift -elif [[ $1 = "--no-sh" ]]; then +elif [[ ${1:-} = "--no-sh" ]]; then nosh=1 shift fi +set -f IFS=: paths=($PATH) +set +f shopt -s nullglob diff --git a/libexec/pyenv-completions b/libexec/pyenv-completions index 227b932eeb..f4dacfd7f2 100755 --- a/libexec/pyenv-completions +++ b/libexec/pyenv-completions @@ -1,10 +1,10 @@ #!/usr/bin/env bash # Usage: pyenv completions [arg1 arg2...] -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -COMMAND="$1" +COMMAND="${1:-}" if [ -z "$COMMAND" ]; then pyenv-help --usage completions >&2 exit 1 diff --git a/libexec/pyenv-exec b/libexec/pyenv-exec index 59a8d6d7e8..9fbb555ab7 100755 --- a/libexec/pyenv-exec +++ b/libexec/pyenv-exec @@ -23,30 +23,30 @@ # is equivalent to: # PATH="$PYENV_ROOT/versions/2.7.6/bin:$PATH" pip install -r requirements.txt -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --environment exec pyenv-shims --short fi -unset MODIFY_ENV -if [ "$1" = "-N" ] || [ "$1" = "--environment" ]; then +MODIFY_ENV= +if [ "${1:-}" = "-N" ] || [ "${1:-}" = "--environment" ]; then MODIFY_ENV=true shift fi PYENV_VERSION="$(pyenv-version-name -f)" -PYENV_COMMAND="$1" +PYENV_COMMAND="${1:-}" if [ -z "$PYENV_COMMAND" ]; then pyenv-help --usage exec >&2 exit 1 fi -if [[ -n $_PYENV_SHIM_PATH ]]; then +if [[ -n ${_PYENV_SHIM_PATH:-} ]]; then PROGRAM="$(echo "$PYENV_COMMAND" | tr a-z- A-Z_ | sed 's/[^A-Z0-9_]/_/g')" NR_PYENV_SHIM_PATHS_PROGRAM="_PYENV_SHIM_PATHS_${PROGRAM}" export -- "$NR_PYENV_SHIM_PATHS_PROGRAM=$_PYENV_SHIM_PATH${!NR_PYENV_SHIM_PATHS_PROGRAM:+:${!NR_PYENV_SHIM_PATHS_PROGRAM}}" @@ -62,9 +62,13 @@ export PYENV_VERSION OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks exec`) IFS="$OLDIFS" +# bash < 4.4 (incl. macOS's 3.2) treats an empty array as unbound under set -u, +# and hooks are third-party code, so relax nounset while sourcing them +set +u for script in "${scripts[@]}"; do source "$script" done +set -u shift 1 if [ "${PYENV_BIN_PATH#${PYENV_ROOT}}" != "${PYENV_BIN_PATH}" ]; then @@ -72,7 +76,6 @@ if [ "${PYENV_BIN_PATH#${PYENV_ROOT}}" != "${PYENV_BIN_PATH}" ]; then export PATH="${PYENV_BIN_PATH}:${PATH}" fi if [ -n "$MODIFY_ENV" ]; then - # Check if multiple Python versions are selected VERSIONS=$(pyenv-prefix) if [[ "$VERSIONS" == *:* ]]; then diff --git a/libexec/pyenv-global b/libexec/pyenv-global index de6007f7e4..27501954b2 100755 --- a/libexec/pyenv-global +++ b/libexec/pyenv-global @@ -20,11 +20,11 @@ # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo system exec pyenv-versions --bare fi @@ -32,7 +32,7 @@ fi versions=("$@") PYENV_VERSION_FILE="${PYENV_ROOT}/version" -if [ -n "$versions" ]; then +if ((${#versions[@]})); then pyenv-version-file-write "$PYENV_VERSION_FILE" "${versions[@]}" else OLDIFS="$IFS" diff --git a/libexec/pyenv-help b/libexec/pyenv-help index d2f793d528..3fc9b14a54 100755 --- a/libexec/pyenv-help +++ b/libexec/pyenv-help @@ -12,11 +12,11 @@ # The remainder of the comment block is displayed as extended # documentation. -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --usage exec pyenv-commands fi @@ -143,13 +143,13 @@ print_usage() { [ -z "$usage" ] || echo "$usage" } -unset usage -if [ "$1" = "--usage" ]; then +usage= +if [ "${1:-}" = "--usage" ]; then usage="1" shift fi -if [ -z "$1" ] || [ "$1" == "pyenv" ]; then +if [ -z "${1:-}" ] || [ "${1:-}" == "pyenv" ]; then echo "Usage: pyenv []" [ -z "$usage" ] || exit echo @@ -159,7 +159,7 @@ if [ -z "$1" ] || [ "$1" == "pyenv" ]; then echo "See \`pyenv help ' for information on a specific command." echo "For full documentation, see: https://github.com/pyenv/pyenv#readme" else - command="$1" + command="${1:?}" if [ -n "$(command_path "$command")" ]; then if [ -n "$usage" ]; then print_usage "$command" diff --git a/libexec/pyenv-hooks b/libexec/pyenv-hooks index 8e55b07931..c72197cef6 100755 --- a/libexec/pyenv-hooks +++ b/libexec/pyenv-hooks @@ -2,11 +2,11 @@ # Summary: List hook scripts for a given pyenv command # Usage: pyenv hooks -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo exec echo rehash echo version-name @@ -15,47 +15,51 @@ if [ "$1" = "--complete" ]; then exit fi -PYENV_COMMAND="$1" +PYENV_COMMAND="${1:-}" if [ -z "$PYENV_COMMAND" ]; then pyenv-help --usage hooks >&2 exit 1 fi if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then - if [ -n "$PYENV_NATIVE_EXT" ]; then + if [ -n "${PYENV_NATIVE_EXT:-}" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi -READLINK=$(type -P readlink) -if [ -z "$READLINK" ]; then - echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 - exit 1 -fi -resolve_link() { - $READLINK "$1" -} - -realpath() { - local path="$1" - local name - # Use a subshell to avoid changing the current path - ( - while [ -n "$path" ]; do - name="${path##*/}" - [ "$name" = "$path" ] || cd "${path%/*}" - path="$(resolve_link "$name" || true)" - done - echo "${PWD}/$name" - ) -} + READLINK="$(type -P readlink || true)" + + if [ -z "$READLINK" ]; then + echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 + exit 1 + fi + + resolve_link() { + "$READLINK" "$1" + } + + realpath() { + local path="$1" + local name + # Use a subshell to avoid changing the current path + ( + while [ -n "$path" ]; do + name="${path##*/}" + [ "$name" = "$path" ] || cd "${path%/*}" + path="$(resolve_link "$name" || true)" + done + + echo "${PWD}/$name" + ) + } fi -IFS=: hook_paths=($PYENV_HOOK_PATH) +IFS=: read -r -a hook_paths <<< "${PYENV_HOOK_PATH:-}" shopt -s nullglob -for path in "${hook_paths[@]}"; do +# Bash < 4.4 treats an empty array as unset with -u +for path in "${hook_paths[@]+"${hook_paths[@]}"}"; do for script in "$path/$PYENV_COMMAND"/*.bash; do realpath "$script" done diff --git a/libexec/pyenv-init b/libexec/pyenv-init index 3bd0060566..852791350f 100755 --- a/libexec/pyenv-init +++ b/libexec/pyenv-init @@ -4,11 +4,11 @@ # pyenv init --install [] # pyenv init --detect-shell [] -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo - echo --path echo --install @@ -24,6 +24,9 @@ if [ "$1" = "--complete" ]; then fi mode="help" +no_push_path= +no_rehash= +shell= while [ "$#" -gt 0 ]; do case "$1" in @@ -61,11 +64,16 @@ if [ -z "$shell" ]; then fi shell="${shell%% *}" shell="${shell##-}" - shell="${shell:-$SHELL}" + shell="${shell:-${SHELL:-}}" shell="${shell##*/}" shell="${shell%%-*}" fi +profile= +rc= +profile_explain= +rc_explain= + function main() { case "$mode" in "help") @@ -191,7 +199,7 @@ function help_() { # True when tips/install should keep the portable default root form. function pyenv_root_is_default() { - [[ ${PYENV_ROOT} == "${HOME}/.pyenv" ]] + [[ -n ${HOME:-} && ${PYENV_ROOT} == "${HOME}/.pyenv" ]] } # Escape a value for inclusion inside double quotes in a POSIX shell script. @@ -289,7 +297,7 @@ function expand_home_path() { } function install_shell_startup_files() { - if [[ -z $HOME ]]; then + if [[ -z "${HOME:-}" ]]; then echo "pyenv: HOME must be set to configure shell startup files" >&2 return 1 fi diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 3a32439e1c..4cbb4136fc 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -7,9 +7,13 @@ # but rather print the argument unchanged # -f/--force (internal) Same as -b but also do not return a failure exit code -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +set -f +[ -n "${PYENV_DEBUG:-}" ] && set -x +FROM_KNOWN= +BYPASS= +FORCE= while [[ $# -gt 0 ]] do @@ -33,12 +37,12 @@ do esac done -prefix=$1 +prefix="${1:-}" exitcode=0 IFS=$'\n' - if [[ -z $FROM_KNOWN ]]; then + if [[ -z "$FROM_KNOWN" ]]; then if [[ -d $PYENV_ROOT/versions/$prefix ]]; then echo "$prefix" exit $exitcode; @@ -48,12 +52,16 @@ IFS=$'\n' DEFINITION_CANDIDATES=( $(python-build --definitions ) ) fi - if printf '%s\n' "${DEFINITION_CANDIDATES[@]}" 2>/dev/null | grep -qxFe "$prefix"; then + # Avoid `grep -q' to prevent SIGPIPE that would fail the check with pipefail + # Bash < 4.4 treats empty arrays as unset with -u; + # "${v[@]:-}" produces "" for an empty array which is okay + # for `printf '%s\n'` as it prints an empty line for zero args anyway + if printf '%s\n' "${DEFINITION_CANDIDATES[@]:-}" | grep -xFe "$prefix" >/dev/null; then echo "$prefix" exit $exitcode; fi - suffix="" + suffix= if [[ $prefix =~ ^(.*[0-9])t$ ]]; then suffix="t" prefix="${BASH_REMATCH[1]}" @@ -64,18 +72,18 @@ IFS=$'\n' suffix_re="$(sed 's/[^\^]/[&]/g;s/[\^]/\\&/g' <<< "$suffix")" # FIXME: more reliable and readable would probably be to loop over them and transform in pure Bash DEFINITION_CANDIDATES=(\ - $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]:-}" | \ grep -Ee "^$prefix_re[-.].*$suffix_re\$" || true)) DEFINITION_CANDIDATES=(\ - $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]:-}" | \ sed -E -e '/-dev$/d' -e '/-src$/d' -e '/-latest$/d' -e '/(a|b|rc)[0-9]+$/d' \ $(if [[ -z $suffix ]]; then echo "-e /[0-9]t\$/d"; fi) )); # Compose a sorting key, followed by | and original value DEFINITION_CANDIDATES=(\ - $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" | \ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]:-}" | \ awk \ '{ if (match($0,"^[[:alnum:]]+-")) { print substr($0,0,RLENGTH-1) "." substr($0,RLENGTH+1) "..|" $0; } @@ -83,13 +91,13 @@ IFS=$'\n' { print $0 "...|" $0; } }')) DEFINITION_CANDIDATES=(\ - $(printf '%s\n' "${DEFINITION_CANDIDATES[@]}" \ + $(printf '%s\n' "${DEFINITION_CANDIDATES[@]:-}" \ | sort -t. -k1,1r -k 2,2nr -k 3,3nr -k4,4nr \ | cut -f2 -d $'|' \ || true)) - DEFINITION="${DEFINITION_CANDIDATES[0]}" + DEFINITION="${DEFINITION_CANDIDATES[0]:-}" - if [[ -n "$DEFINITION" ]]; then + if [[ -n $DEFINITION ]]; then echo "$DEFINITION" else if [[ -z $BYPASS ]]; then diff --git a/libexec/pyenv-local b/libexec/pyenv-local index 4c4e37c18e..345bd6f87d 100755 --- a/libexec/pyenv-local +++ b/libexec/pyenv-local @@ -28,16 +28,18 @@ # 'pyenv local 3.7.0 2.7.15' -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --unset echo system exec pyenv-versions --bare fi +FORCE= + while [[ $# -gt 0 ]] do case "$1" in @@ -53,9 +55,9 @@ done versions=("$@") -if [ "$versions" = "--unset" ]; then +if [ "${versions:-}" = "--unset" ]; then rm -f .python-version -elif [ -n "$versions" ]; then +elif [ -n "${versions:-}" ]; then pyenv-version-file-write ${FORCE:+-f }.python-version "${versions[@]}" else if version_file="$(pyenv-version-file "$PWD")"; then diff --git a/libexec/pyenv-prefix b/libexec/pyenv-prefix index f42bd6608b..e6821465c8 100755 --- a/libexec/pyenv-prefix +++ b/libexec/pyenv-prefix @@ -6,22 +6,22 @@ # separated by colons. If no version is given, `pyenv prefix' displays the # locations of the currently selected versions. -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo system exec pyenv-versions --bare fi -if [ -n "$1" ]; then +if [ -n "${1:-}" ]; then OLDIFS="$IFS" { IFS=: export PYENV_VERSION="$*" } IFS="$OLDIFS" -elif [ -z "$PYENV_VERSION" ]; then +elif [ -z "${PYENV_VERSION:-}" ]; then PYENV_VERSION="$(pyenv-version-name)" fi @@ -31,7 +31,7 @@ OLDIFS="$IFS" # Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting # which is undesired set -f - for version in ${PYENV_VERSION}; do + for version in ${PYENV_VERSION:-}; do if [ "$version" = "system" ]; then if PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python --skip-advice 2>/dev/null)" || \ PYTHON_PATH="$(PYENV_VERSION="${version}" pyenv-which python3 --skip-advice 2>/dev/null)" || \ @@ -49,7 +49,7 @@ OLDIFS="$IFS" PYENV_PREFIX_PATH="${PYENV_ROOT}/versions/${version}" fi if [ -d "$PYENV_PREFIX_PATH" ]; then - PYENV_PREFIX_PATHS=("${PYENV_PREFIX_PATHS[@]}" "$PYENV_PREFIX_PATH") + PYENV_PREFIX_PATHS+=("$PYENV_PREFIX_PATH") else echo "pyenv: version \`${version}' not installed" >&2 exit 1 @@ -61,6 +61,6 @@ IFS="$OLDIFS" OLDIFS="$IFS" { IFS=: - echo "${PYENV_PREFIX_PATHS[*]}" + echo "${PYENV_PREFIX_PATHS[*]-}" } IFS="$OLDIFS" diff --git a/libexec/pyenv-rehash b/libexec/pyenv-rehash index cbc26597e2..8a2d88d902 100755 --- a/libexec/pyenv-rehash +++ b/libexec/pyenv-rehash @@ -1,8 +1,8 @@ #!/usr/bin/env bash # Summary: Rehash pyenv shims (run this after installing executables) -set -e -[[ -n "$PYENV_DEBUG" ]] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x SHIM_PATH="${PYENV_ROOT}/shims" PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim" @@ -10,10 +10,11 @@ PROTOTYPE_SHIM_PATH="${SHIM_PATH}/.pyenv-shim" # Create the shims directory if it doesn't already exist. mkdir -p "$SHIM_PATH" -declare last_acquire_error +last_acquire_error= +tested_for_other_write_errors= acquire_lock() { - local ret + local ret= # An old lock file is presumed stale. We assume no healthy rehash takes this long. # The time is picked very small so that a killed rehash holds up new shell sessions # for as little as possible @@ -39,7 +40,7 @@ acquire_lock() { ret=1 } set +o noclobber - [[ -z "${ret}" ]] + [[ -z $ret ]] } remove_prototype_shim() { @@ -56,8 +57,8 @@ if [ ! -w "$SHIM_PATH" ]; then exit 1 fi -declare acquired tested_for_other_write_errors -declare start=$SECONDS +acquired= +start=$SECONDS PYENV_REHASH_TIMEOUT=${PYENV_REHASH_TIMEOUT:-60} while (( SECONDS <= start + PYENV_REHASH_TIMEOUT )); do if acquire_lock; then @@ -70,14 +71,14 @@ while (( SECONDS <= start + PYENV_REHASH_TIMEOUT )); do done if [ -z "${acquired}" ]; then - if [[ -n $tested_for_other_write_errors ]]; then + if [[ -n "${tested_for_other_write_errors:-}" ]]; then echo "pyenv: cannot rehash: couldn't acquire lock"\ "$PROTOTYPE_SHIM_PATH for $PYENV_REHASH_TIMEOUT seconds. Last error message:" >&2 echo "$last_acquire_error" >&2 fi exit 1 fi -unset tested_for_other_write_errors +tested_for_other_write_errors= # The prototype shim file is a script that re-execs itself, passing # its filename and any arguments to `pyenv exec`. This file is copied @@ -138,11 +139,11 @@ make_shims() { if ((${BASH_VERSINFO[0]} > 3)); then - declare -A registered_shims + declare -A registered_shims=() # Registers the name of a shim to be generated. register_shim() { - if [[ ! ${registered_shims["$1"]} ]]; then + if [[ ! ${registered_shims["$1"]:-} ]]; then install_shims "$1" registered_shims["$1"]=1 fi @@ -151,6 +152,8 @@ if ((${BASH_VERSINFO[0]} > 3)); then # Install all shims registered via `make_shims` or `register_shim` directly. install_registered_shims() { local shim file + # The Bash < 4.4 bug treating empty arrays as unset + # does not affect "${!var[@]}" for shim in "${!registered_shims[@]}"; do file="${SHIM_PATH}/${shim}" [ -e "$file" ] || cp "$PROTOTYPE_SHIM_PATH" "$file" @@ -164,7 +167,7 @@ if ((${BASH_VERSINFO[0]} > 3)); then remove_stale_shims() { local shim for shim in "$SHIM_PATH"/*; do - if [[ ! ${registered_shims["${shim##*/}"]} ]]; then + if [[ ! ${registered_shims["${shim##*/}"]:-} ]]; then rm -f "$shim" fi done @@ -204,18 +207,21 @@ shopt -s nullglob # Create the prototype shim, then register shims for all known # executables. create_prototype_shim -# shellcheck disable=SC2046 +set -f make_shims $(pyenv-versions --executables) - +set +f # Allow plugins to register shims. OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks rehash`) IFS="$OLDIFS" - +# bash < 4.4 (incl. macOS's 3.2) treats an empty array as unbound under set -u, +# and hooks are third-party code, so relax nounset while sourcing them +set +u for script in "${scripts[@]}"; do source "$script" done +set -u install_registered_shims remove_stale_shims diff --git a/libexec/pyenv-root b/libexec/pyenv-root index b4a135f314..c9126e72d7 100755 --- a/libexec/pyenv-root +++ b/libexec/pyenv-root @@ -1,3 +1,4 @@ #!/usr/bin/env bash # Summary: Display the root directory where versions and shims are kept -echo "$PYENV_ROOT" +set -euo pipefail +echo "${PYENV_ROOT:-}" diff --git a/libexec/pyenv-sh-rehash b/libexec/pyenv-sh-rehash index afa5c79902..41799f6be2 100755 --- a/libexec/pyenv-sh-rehash +++ b/libexec/pyenv-sh-rehash @@ -1,13 +1,13 @@ #!/usr/bin/env bash -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then exec pyenv-rehash --complete fi -shell="$(basename "${PYENV_SHELL:-$SHELL}")" +shell="$(basename "${PYENV_SHELL:-${SHELL:-}}")" # When pyenv shell integration is enabled, delegate to pyenv-rehash, # then tell the shell to empty its command lookup cache. diff --git a/libexec/pyenv-sh-shell b/libexec/pyenv-sh-shell index 289ba424b8..2162397a7a 100755 --- a/libexec/pyenv-sh-shell +++ b/libexec/pyenv-sh-shell @@ -19,21 +19,21 @@ # environment variable gets unset, restoring the environment to the # state before the first `pyenv shell` call. -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --unset echo system exec pyenv-versions --bare fi versions=("$@") -shell="$(basename "${PYENV_SHELL:-$SHELL}")" +shell="$(basename "${PYENV_SHELL:-${SHELL:-}}")" -if [ -z "$versions" ]; then - if [ -z "$PYENV_VERSION" ]; then +if ! ((${#versions[@]})); then + if [ -z "${PYENV_VERSION:-}" ]; then echo "pyenv: no shell-specific version configured" >&2 exit 1 else @@ -42,7 +42,7 @@ if [ -z "$versions" ]; then fi fi -if [ "$versions" = "--unset" ]; then +if [ "${versions[0]}" = "--unset" ]; then case "$shell" in fish ) echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"' @@ -59,7 +59,7 @@ if [ "$versions" = "--unset" ]; then exit fi -if [ "$versions" = "-" ]; then +if [ "${versions[0]}" = "-" ]; then case "$shell" in fish ) cat </dev/null; then OLDIFS="$IFS" IFS=: version="${versions[*]}" IFS="$OLDIFS" - if [ "$version" != "$PYENV_VERSION" ]; then + if [ "$version" != "${PYENV_VERSION:-}" ]; then case "$shell" in fish ) echo 'set -gu PYENV_VERSION_OLD "$PYENV_VERSION"' diff --git a/libexec/pyenv-shims b/libexec/pyenv-shims index 43c6308a02..a3e95b4db0 100755 --- a/libexec/pyenv-shims +++ b/libexec/pyenv-shims @@ -2,11 +2,11 @@ # Summary: List existing pyenv shims # Usage: pyenv shims [--short] -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --short exit fi @@ -14,7 +14,7 @@ fi shopt -s nullglob for command in "${PYENV_ROOT}/shims/"*; do - if [ "$1" = "--short" ]; then + if [ "${1:-}" = "--short" ]; then echo "${command##*/}" else echo "$command" diff --git a/libexec/pyenv-version b/libexec/pyenv-version index a2ad8e7e9a..05a64be59b 100755 --- a/libexec/pyenv-version +++ b/libexec/pyenv-version @@ -4,19 +4,19 @@ # # --bare show just the version name. An alias to `pyenv version-name' -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x exitcode=0 -OLDIFS="$IFS" + # VAR=() of unquoted value does glob expansion (against the current dir's contents) after IFS-splitting # which is undesired set -f IFS=: PYENV_VERSION_NAMES=($(pyenv-version-name)) || exitcode=$? set +f -IFS="$OLDIFS" -unset bare +bare= + for arg; do case "$arg" in --complete ) @@ -29,12 +29,15 @@ for arg; do ;; esac done -for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do - if [[ -n $bare ]]; then +# Bash < 4.4 treats "${v[@]}" as unset with -u for empty array +if ((${#PYENV_VERSION_NAMES[@]})); then + for PYENV_VERSION_NAME in "${PYENV_VERSION_NAMES[@]}"; do + if [[ -n $bare ]]; then echo "$PYENV_VERSION_NAME" - else + else echo "$PYENV_VERSION_NAME (set by $(pyenv-version-origin))" - fi -done + fi + done +fi exit $exitcode diff --git a/libexec/pyenv-version-file b/libexec/pyenv-version-file index eadb0c1ca8..03346a8a59 100755 --- a/libexec/pyenv-version-file +++ b/libexec/pyenv-version-file @@ -1,13 +1,13 @@ #!/usr/bin/env bash # Usage: pyenv version-file [] # Summary: Detect the file that sets the current pyenv version -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -target_dir="$1" +target_dir="${1:-}" find_local_version_file() { - local root="$1" + local root="${1:?}" # Nonexistent paths are UB as of this writing. # Relative ones cause a failure but absolute ones don't [[ $root != /* ]] && root=$(CDPATH= cd -- "$root" && pwd) @@ -23,7 +23,7 @@ find_local_version_file() { # don't test //.python-version if // is special # as it's pointless and possibly very slow # if it e.g. leads to a network search - [[ $unc && $root == / ]] && break + [[ "${unc:-}" && $root == / ]] && break if [[ -f $root/.python-version ]]; then echo "$root/.python-version" @@ -42,5 +42,5 @@ else # While most `cd` implementations treat an empty argument the same as missing, that's still wrong find_local_version_file "${PYENV_DIR:=$PWD}" || { [ "$PYENV_DIR" != "$PWD" ] && find_local_version_file "$PWD" - } || echo "${PYENV_ROOT}/version" + } || echo "${PYENV_ROOT:-}/version" fi diff --git a/libexec/pyenv-version-file-read b/libexec/pyenv-version-file-read index 7865a730d5..c2cecdb9f1 100755 --- a/libexec/pyenv-version-file-read +++ b/libexec/pyenv-version-file-read @@ -1,9 +1,9 @@ #!/usr/bin/env bash # Usage: pyenv version-file-read -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -VERSION_FILE="$1" +VERSION_FILE="${1:-}" function is_version_safe() { # As needed, check that the constructed path exists as a child path of PYENV_ROOT/versions @@ -25,6 +25,7 @@ if [ -s "$VERSION_FILE" ]; then # Be careful not to load it whole in case there's something crazy in it. IFS="$IFS"$'\r' sep= + # `read` always assigns the vars, even when it fails while read -n 1024 -r version _ || [[ $version ]]; do if [[ -z "$version" || "$version" == \#* ]]; then # Skip empty lines and comments diff --git a/libexec/pyenv-version-name b/libexec/pyenv-version-name index 6483c14a6f..b64083e3d0 100755 --- a/libexec/pyenv-version-name +++ b/libexec/pyenv-version-name @@ -3,9 +3,10 @@ # # -f/--force (Internal) If a version doesn't exist, print it as is rather than produce an error -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x +FORCE= while [[ $# -gt 0 ]] do case "$1" in @@ -20,7 +21,7 @@ do done -if [ -z "$PYENV_VERSION" ]; then +if [ -z "${PYENV_VERSION:-}" ]; then PYENV_VERSION_FILE="$(pyenv-version-file)" PYENV_VERSION="$(pyenv-version-file-read "$PYENV_VERSION_FILE" || true)" fi @@ -28,11 +29,15 @@ fi OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks version-name`) IFS="$OLDIFS" +# bash < 4.4 (incl. macOS's 3.2) treats an empty array as unbound under set -u, +# and hooks are third-party code, so relax nounset while sourcing them +set +u for script in "${scripts[@]}"; do source "$script" done +set -u -if [ -z "$PYENV_VERSION" ] || [ "$PYENV_VERSION" = "system" ]; then +if [[ -z ${PYENV_VERSION:-} || $PYENV_VERSION == "system" ]]; then echo "system" exit fi @@ -45,7 +50,7 @@ version_exists() { versions=() OLDIFS="$IFS" { IFS=: - any_not_installed=0 + any_not_installed= normalization_done= # Unquoted $VAR does glob expansion (against the current dir's contents) after IFS-splitting # which is undesired @@ -77,10 +82,10 @@ IFS="$OLDIFS" OLDIFS="$IFS" { IFS=: - echo "${versions[*]}" + echo "${versions[*]:-}" } IFS="$OLDIFS" -if [ "$any_not_installed" = 1 ]; then +if [[ -n $any_not_installed ]]; then exit 1 fi diff --git a/libexec/pyenv-version-origin b/libexec/pyenv-version-origin index 1067a0138e..bf4321abc1 100755 --- a/libexec/pyenv-version-origin +++ b/libexec/pyenv-version-origin @@ -1,20 +1,24 @@ #!/usr/bin/env bash # Summary: Explain how the current Python version is set -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -unset PYENV_VERSION_ORIGIN +PYENV_VERSION_ORIGIN= OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks version-origin`) IFS="$OLDIFS" +# bash < 4.4 (incl. macOS's 3.2) treats an empty array as unbound under set -u, +# and hooks are third-party code, so relax nounset while sourcing them +set +u for script in "${scripts[@]}"; do source "$script" done +set -u -if [ -n "$PYENV_VERSION_ORIGIN" ]; then +if [[ -n ${PYENV_VERSION_ORIGIN:-} ]]; then echo "$PYENV_VERSION_ORIGIN" -elif [ -n "$PYENV_VERSION" ]; then +elif [[ -n ${PYENV_VERSION:-} ]]; then echo "PYENV_VERSION environment variable" else pyenv-version-file diff --git a/libexec/pyenv-versions b/libexec/pyenv-versions index 91cb56d4c3..bd99f73dcb 100755 --- a/libexec/pyenv-versions +++ b/libexec/pyenv-versions @@ -12,10 +12,14 @@ # versions and environments for `pyenv rehash' # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x + +bare= +skip_aliases= +skip_envs= +executables= -unset bare skip_aliases skip_envs executables # Provide pyenv completions for arg; do case "$arg" in @@ -51,19 +55,19 @@ if [[ -n "$executables" ]]; then fi if ! enable -f "${BASH_SOURCE%/*}"/pyenv-realpath.dylib realpath 2>/dev/null; then - if [ -n "$PYENV_NATIVE_EXT" ]; then + if [ -n "${PYENV_NATIVE_EXT:-}" ]; then echo "pyenv: failed to load \`realpath' builtin" >&2 exit 1 fi - READLINK=$(type -P readlink) - if [ -z "$READLINK" ]; then + READLINK="$(type -P readlink || true)" + if [ -z "${READLINK}" ]; then echo "pyenv: cannot find readlink - are you missing GNU coreutils?" >&2 exit 1 fi resolve_link() { - $READLINK "$1" + "$READLINK" "$1" } realpath() { @@ -88,12 +92,12 @@ if [ -d "$versions_dir" ]; then fi if ((${BASH_VERSINFO[0]} > 3)); then - declare -A current_versions + declare -A current_versions=() else current_versions=() fi -if [ -n "$bare" ]; then - include_system="" +if [[ -n $bare ]]; then + include_system= else hit_prefix="* " miss_prefix=" " @@ -142,9 +146,9 @@ print_version() { else version_repr="$version" fi - if [[ ${BASH_VERSINFO[0]} -ge 4 && ${current_versions["$1"]} ]]; then + if ((${BASH_VERSINFO[0]} > 3)) && [[ -n ${current_versions["$1"]:-} ]]; then echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))" - elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]}"; then + elif (( ${BASH_VERSINFO[0]} <= 3 )) && exists "$1" "${current_versions[@]+"${current_versions[@]}"}"; then echo "${hit_prefix}${version_repr} (set by $(pyenv-version-origin))" else echo "${miss_prefix}${version_repr}" @@ -153,7 +157,7 @@ print_version() { } # Include "system" in the non-bare output, if it exists -if [ -n "$include_system" ] && \ +if [[ -n $include_system ]] && \ (PYENV_VERSION=system pyenv-which python --skip-advice >/dev/null 2>&1 || \ PYENV_VERSION=system pyenv-which python3 --skip-advice >/dev/null 2>&1 || \ PYENV_VERSION=system pyenv-which python2 --skip-advice >/dev/null 2>&1) ; then @@ -170,16 +174,16 @@ if sort --version-sort /dev/null 2>&1; then set -f IFS=$'\n' versions_dir_entries=($( - printf "%s\n" "${versions_dir_entries[@]}" | + printf "%s\n" "${versions_dir_entries[@]:-}" | sort --version-sort )) set +f IFS="$OLDIFS" fi -for path in "${versions_dir_entries[@]}"; do +for path in ${versions_dir_entries[@]+"${versions_dir_entries[@]}"}; do if [ -d "$path" ]; then - if [ -n "$skip_aliases" ] && [ -L "$path" ]; then + if [[ -n $skip_aliases && -L $path ]]; then target="$(realpath "$path")" [ "${target%/*}" == "$versions_dir" ] && continue [ "${target%/*/envs/*}" == "$versions_dir" ] && continue @@ -197,7 +201,7 @@ for path in "${versions_dir_entries[@]}"; do done shopt -u dotglob nullglob -if [ "$num_versions" -eq 0 ] && [ -n "$include_system" ]; then +if [[ $num_versions -eq 0 && -n $include_system ]]; then echo "Warning: no Python detected on the system" >&2 exit 1 fi diff --git a/libexec/pyenv-whence b/libexec/pyenv-whence index fddcf112ea..8aa8b5c2fc 100755 --- a/libexec/pyenv-whence +++ b/libexec/pyenv-whence @@ -2,20 +2,20 @@ # Summary: List all Python versions that contain the given executable # Usage: pyenv whence [--path] -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --path exec pyenv-shims --short fi -if [ "$1" = "--path" ]; then +if [ "${1:-}" = "--path" ]; then print_paths="1" shift else - print_paths="" + print_paths= fi whence() { @@ -28,7 +28,7 @@ whence() { done } -PYENV_COMMAND="$1" +PYENV_COMMAND="${1:-}" if [ -z "$PYENV_COMMAND" ]; then pyenv-help --usage whence >&2 exit 1 diff --git a/libexec/pyenv-which b/libexec/pyenv-which index 1bc6ed0e0b..0817902287 100755 --- a/libexec/pyenv-which +++ b/libexec/pyenv-which @@ -11,17 +11,17 @@ # Internal switch --skip-advice used to skip printing an error message on a # failed search. -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then exec pyenv-shims --short fi system="system" -SKIP_ADVICE="" -PYENV_COMMAND="$1" +SKIP_ADVICE= +PYENV_COMMAND="${1:-}" while [[ $# -gt 0 ]] do @@ -31,7 +31,7 @@ do shift ;; --nosystem) - system="" + system= shift ;; *) @@ -43,9 +43,9 @@ done remove_from_path() { local -a paths_to_remove - IFS=: paths_to_remove=($1) + IFS=: read -r -a paths_to_remove <<< "$1" local path_to_remove path_before - local result=":${PATH//\~/$HOME}:" + local result=":${PATH//\~/${HOME:-}}:" for path_to_remove in "${paths_to_remove[@]}"; do while true; do path_before="$result" @@ -70,13 +70,18 @@ IFS=: versions=(${PYENV_VERSION:-$(pyenv-version-name -f)}) set +f IFS="$OLDIFS" -declare -a nonexistent_versions +nonexistent_versions=() +PYENV_COMMAND_PATH= -for version in "${versions[@]}" "$system"; do +for version in ${versions[@]+"${versions[@]}"} "$system"; do if [ "$version" = "system" ]; then PROGRAM="$(echo "$PYENV_COMMAND" | tr a-z- A-Z_ | sed 's/[^A-Z0-9_]/_/g')" NR_CUSTOM_SHIM_PATHS="_PYENV_SHIM_PATHS_$PROGRAM" - SEARCH_PATH="$(remove_from_path "${PYENV_ROOT}/shims${!NR_CUSTOM_SHIM_PATHS:+:${!NR_CUSTOM_SHIM_PATHS}}")" + custom_shims= + if [ -n "${!NR_CUSTOM_SHIM_PATHS:-}" ]; then + custom_shims=":${!NR_CUSTOM_SHIM_PATHS}" + fi + SEARCH_PATH="$(remove_from_path "${PYENV_ROOT}/shims${custom_shims}")" PYENV_COMMAND_PATH="$(PATH="$SEARCH_PATH" command -v "$PYENV_COMMAND" || true)" else # $version may be a prefix to be resolved by pyenv-latest @@ -95,14 +100,18 @@ done OLDIFS="$IFS" IFS=$'\n' scripts=(`pyenv-hooks which`) IFS="$OLDIFS" +# bash < 4.4 (incl. macOS's 3.2) treats an empty array as unbound under set -u, +# and hooks are third-party code, so relax nounset while sourcing them +set +u for script in "${scripts[@]}"; do source "$script" done +set -u if [ -x "$PYENV_COMMAND_PATH" ]; then echo "$PYENV_COMMAND_PATH" else - if (( ${#nonexistent_versions[@]} )); then + if [ "${#nonexistent_versions[@]}" -gt 0 ]; then for version in "${nonexistent_versions[@]}"; do echo "pyenv: version \`$version' is not installed (set by $(pyenv-version-origin))" >&2 done diff --git a/plugins/pyenv-binary/bin/pyenv-binary b/plugins/pyenv-binary/bin/pyenv-binary index 36e205326b..67925f67f5 100755 --- a/plugins/pyenv-binary/bin/pyenv-binary +++ b/plugins/pyenv-binary/bin/pyenv-binary @@ -11,8 +11,8 @@ # Run `pyenv binary' to list its commands, or `pyenv binary --help' # for command-specific help. # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x libexec="${BASH_SOURCE%/*}/../libexec" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer index 58e5d461b7..c496c8d3df 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer +++ b/plugins/pyenv-binary/libexec/pyenv-binary-generate-installer @@ -20,19 +20,19 @@ # the package from. # -o Write the definition here (default: stdout). # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --archive-url echo -o exit fi -metadata="" -archive_url="" -output="" +metadata= +archive_url= +output= while [ $# -gt 0 ]; do case "$1" in @@ -55,8 +55,8 @@ if [ -z "$metadata" ] || [ -z "$archive_url" ]; then exit 1 fi -version="" os="" arch="" distro="" libc="" build_prefix="" archive="" -deps="" +version= os= arch= distro= libc= build_prefix= archive= +deps= while IFS='=' read -r key value; do case "$key" in version ) version="$value" ;; @@ -159,21 +159,21 @@ esac # Required system libraries must already be present on the target. Linux lists # the soname first; FreeBSD lists it in the resolved path, so normalize that # path before matching exact names. -cache="" +cache= if command -v ldconfig &>/dev/null; then case "$os" in FreeBSD ) cache="$(ldconfig -r 2>/dev/null)" && cache="$(printf '%s\n' "$cache" | awk -F ' *=> *' '{ sub(/^.*\//, "", $2); print $2 }')" \ - || cache="" + || cache= ;; * ) - cache="$(ldconfig -p 2>/dev/null)" || cache="" + cache="$(ldconfig -p 2>/dev/null)" || cache= ;; esac fi if [ -n "$cache" ]; then - missing="" + missing= for dep in $DEPS; do printf '%s\n' "$cache" | awk -v d="$dep" '$1 == d { found = 1 } END { exit !found }' \ || missing="${missing} ${dep}" diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-install b/plugins/pyenv-binary/libexec/pyenv-binary-install index f52c7b6dcc..1645a49831 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-install +++ b/plugins/pyenv-binary/libexec/pyenv-binary-install @@ -7,10 +7,10 @@ # Selects a compatible package from pyenv.github.io and installs it under # . Ordinary `pyenv install' is unchanged. # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then exit fi @@ -29,6 +29,7 @@ esac requested="$1" os="$(uname -s)" arch="$(uname -m)" +distro= case "$os" in Linux ) @@ -101,11 +102,15 @@ if [ -z "$entry" ]; then exit 1 fi definitions="$(pyenv-install --list --bare)" -if grep -qxF -- "$entry" <<<"$definitions"; then +if grep -qxF -- "$entry" <<< "$definitions"; then pyenv-install "$entry:$version" exit fi +if ! [[ "$expected_sha" =~ ^[0-9a-fA-F]{64}$ ]]; then + echo "pyenv-binary: invalid checksum for $entry" >&2 + exit 1 +fi expected_sha="$(printf '%s' "$expected_sha" | tr '[:upper:]' '[:lower:]')" curl -fsSL -o "$tmpdir/$entry" "$base_url/$entry" @@ -119,7 +124,7 @@ else echo "pyenv-binary: need sha256sum, shasum or openssl to verify $entry" >&2 exit 1 fi -if [[ $expected_sha != "$actual_sha" ]]; then +if [ "$actual_sha" != "$expected_sha" ]; then echo "pyenv-binary: checksum mismatch for $entry" >&2 exit 1 fi diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package b/plugins/pyenv-binary/libexec/pyenv-binary-package index e8b698e170..f2f14ae1b3 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package @@ -18,19 +18,19 @@ # Where the archive will be hosted; the definition # downloads it from /.tar.xz. # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --archive-base-url echo --verbose exec pyenv-install --list --bare fi -spec="" -archive_base_url="" -verbose="" +spec= +archive_base_url= +verbose= while [ $# -gt 0 ]; do case "$1" in diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-package-name b/plugins/pyenv-binary/libexec/pyenv-binary-package-name index 649c992524..e6742570f5 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-package-name +++ b/plugins/pyenv-binary/libexec/pyenv-binary-package-name @@ -7,10 +7,10 @@ # Prints a package name containing the Python version, platform name, # platform version and architecture. # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then exec pyenv-install --list --bare fi @@ -32,8 +32,8 @@ version="$(pyenv-latest -f -k "$version")" os="$(uname -s)" arch="$(uname -m)" -distro="" -distro_version="" +distro= +distro_version= case "$os" in Linux ) diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-relocate b/plugins/pyenv-binary/libexec/pyenv-binary-relocate index 1620f325d3..ef35dd9ecb 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-relocate +++ b/plugins/pyenv-binary/libexec/pyenv-binary-relocate @@ -12,21 +12,22 @@ # The definition that `pyenv binary generate-installer' produces calls this # after `install_package ... copy' has laid the tree down. # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then exit fi -prefix="$1" +prefix="${1:-}" if [ -z "$prefix" ]; then pyenv-help --usage binary-relocate >&2 exit 1 fi if [ "$(uname -s)" = "Darwin" ]; then - build_prefix="${2%/}" + build_prefix="${2:-}" + build_prefix="${build_prefix%/}" if [ -z "$build_prefix" ]; then echo "pyenv-binary: need the original build prefix to relocate a macOS binary" >&2 exit 1 diff --git a/plugins/pyenv-binary/libexec/pyenv-binary-save b/plugins/pyenv-binary/libexec/pyenv-binary-save index 2793ea2671..39846a8d79 100755 --- a/plugins/pyenv-binary/libexec/pyenv-binary-save +++ b/plugins/pyenv-binary/libexec/pyenv-binary-save @@ -14,20 +14,20 @@ # -. # --source-version Record the version used to build a renamed install. # -set -e -[ -n "$PYENV_DEBUG" ] && set -x +set -euo pipefail +[ -n "${PYENV_DEBUG:-}" ] && set -x # Provide pyenv completions -if [ "$1" = "--complete" ]; then +if [ "${1:-}" = "--complete" ]; then echo --name echo --source-version exec pyenv-versions --bare fi -version="" -output_dir="" -package_name="" -source_version="" +version= +output_dir= +package_name= +source_version= while [ $# -gt 0 ]; do case "$1" in @@ -96,8 +96,8 @@ platform="$(printf '%s' "$os" | tr '[:upper:]' '[:lower:]')-${arch}" # Record the distro and libc version. Platform and arch alone are too coarse to # judge compatibility: a build is only portable to a matching libc (e.g. a # glibc 2.36 build will not load on an older glibc, nor on musl at all). -distro="" -libc="" +distro= +libc= if [ -r /etc/os-release ]; then distro="$( . /etc/os-release && printf '%s %s' "${ID:-}" "${VERSION_ID:-}" )" elif [ "$os" = "Darwin" ]; then diff --git a/plugins/pyenv-binary/test/install.bats b/plugins/pyenv-binary/test/install.bats index 6b71024eba..81b7aa1edf 100644 --- a/plugins/pyenv-binary/test/install.bats +++ b/plugins/pyenv-binary/test/install.bats @@ -22,7 +22,7 @@ use_manifest() { stub_downloads() { create_stub curl <<'STUB' -output="" +output= while [ "$#" -gt 0 ]; do case "$1" in -o ) output="$2"; shift ;; diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index 6871bec233..dbd87a59b4 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -2622,7 +2622,7 @@ fi # Check if TMPDIR is accessible and can hold executables. tmp_executable="${TMP}/python-build-test.$$" -noexec="" +noexec= if mkdir -p "$TMP" && touch "$tmp_executable" 2>/dev/null; then cat > "$tmp_executable" <<-EOF #!${BASH} diff --git a/plugins/python-build/test/build.bats b/plugins/python-build/test/build.bats index eb64a7f6c4..aba5f03a03 100644 --- a/plugins/python-build/test/build.bats +++ b/plugins/python-build/test/build.bats @@ -32,7 +32,7 @@ tarball() { shift local path="$PWD/$name" local configure="$1" - if [[ ${configure:0:1} == "-" ]]; then configure=""; fi + if [[ ${configure:0:1} == "-" ]]; then configure=; fi configure="$path/${configure:-configure}" shift || true local extra_vars var_name diff --git a/plugins/python-build/test/pyenv_ext.bats b/plugins/python-build/test/pyenv_ext.bats index 4d5b18717e..156cb3a183 100644 --- a/plugins/python-build/test/pyenv_ext.bats +++ b/plugins/python-build/test/pyenv_ext.bats @@ -193,7 +193,7 @@ echo "python \$@" >> "${INSTALL_ROOT}/build.log" OUT chmod +x "${INSTALL_ROOT}/bin/python" - PYTHON_MAKE_INSTALL_TARGET="" TMPDIR="$BATS_TEST_TMPDIR" run_inline_definition < /dev/null | grep -Eq '^(declare|typeset) -A'; then - for shim in ${!registered_shims[*]}; do + # The Bash < 4.4 bug treating empty arrays as unset + # does not affect "${!var[@]}" + for shim in "${!registered_shims[@]}"; do if conda_shim "${shim}" 1>&2; then - unset registered_shims[${shim}] + unset registered_shims[$shim] fi done else @@ -63,7 +66,7 @@ if conda_exists; then shims[${#shims[*]}]="${shim}" fi done - registered_shims=" ${shims[@]} " + registered_shims=" ${shims[@]:-} " fi } diff --git a/test/pyenv.bats b/test/pyenv.bats index e09165c648..3f768cbead 100644 --- a/test/pyenv.bats +++ b/test/pyenv.bats @@ -15,7 +15,7 @@ load test_helper } @test "default PYENV_ROOT" { - PYENV_ROOT="" HOME=/home/mislav run pyenv root + PYENV_ROOT= HOME=/home/mislav run pyenv root assert_success assert_output "/home/mislav/.pyenv" } diff --git a/test/shell.bats b/test/shell.bats index e20df5616d..ace9aa6a4b 100644 --- a/test/shell.bats +++ b/test/shell.bats @@ -17,7 +17,7 @@ load test_helper mkdir -p "${PYENV_TEST_DIR}/myproject" cd "${PYENV_TEST_DIR}/myproject" echo "1.2.3" > .python-version - PYENV_VERSION="" run pyenv-sh-shell + PYENV_VERSION= run pyenv-sh-shell assert_failure "pyenv: no shell-specific version configured" } From b473937cd746ad26e7842c8084446c0b7a60f4ea Mon Sep 17 00:00:00 2001 From: "pyenv-bot[bot]" <262257361+pyenv-bot[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 16:22:26 +0300 Subject: [PATCH 1322/1324] Add CPython 3.16.0a1 (#3593) Co-authored-by: native-api <2670332+native-api@users.noreply.github.com> --- plugins/python-build/share/python-build/3.16.0a1 | 11 +++++++++++ plugins/python-build/share/python-build/3.16.0a1t | 2 ++ 2 files changed, 13 insertions(+) create mode 100644 plugins/python-build/share/python-build/3.16.0a1 create mode 100644 plugins/python-build/share/python-build/3.16.0a1t diff --git a/plugins/python-build/share/python-build/3.16.0a1 b/plugins/python-build/share/python-build/3.16.0a1 new file mode 100644 index 0000000000..bfe793c573 --- /dev/null +++ b/plugins/python-build/share/python-build/3.16.0a1 @@ -0,0 +1,11 @@ +prefer_openssl3 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL=1 +export PYTHON_BUILD_CONFIGURE_WITH_OPENSSL_RPATH=1 +export PYTHON_BUILD_TCLTK_USE_PKGCONFIG=1 +install_package "openssl-4.0.3" "https://github.com/openssl/openssl/releases/download/openssl-4.0.3/openssl-4.0.3.tar.gz#325b5c806167c13b40b1ffeadfe0248197c00eccc4cf123ec1e28d2d2fd216d9" mac_openssl --if has_broken_mac_openssl +install_package "readline-8.3" "https://ftpmirror.gnu.org/readline/readline-8.3.tar.gz#fe5383204467828cd495ee8d1d3c037a7eba1389c22bc6a041f627976f9061cc" mac_readline --if has_broken_mac_readline +if has_tar_xz_support; then + install_package "Python-3.16.0a1" "https://www.python.org/ftp/python/3.16.0/Python-3.16.0a1.tar.xz#dcaa9029436b723e33412c68ca17f0130be73058e47a3a7c049cb8cdf6034ee9" standard verify_py316 copy_python_gdb ensurepip +else + install_package "Python-3.16.0a1" "https://www.python.org/ftp/python/3.16.0/Python-3.16.0a1.tgz#8d79f82acad7a38ed35246a61357091c355fb4533460af34d41cce48a87cf8c6" standard verify_py316 copy_python_gdb ensurepip +fi diff --git a/plugins/python-build/share/python-build/3.16.0a1t b/plugins/python-build/share/python-build/3.16.0a1t new file mode 100644 index 0000000000..518be93e76 --- /dev/null +++ b/plugins/python-build/share/python-build/3.16.0a1t @@ -0,0 +1,2 @@ +export PYTHON_BUILD_FREE_THREADING=1 +source "${BASH_SOURCE[0]%t}" From 288b3e19879613f0389bd614c7bb0f02d5f52f04 Mon Sep 17 00:00:00 2001 From: Ivan Pozdeev Date: Wed, 14 Oct 2026 17:09:23 +0300 Subject: [PATCH 1323/1324] 2.8.10 --- CHANGELOG.md | 6 ++++++ libexec/pyenv---version | 2 +- plugins/python-build/bin/python-build | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d8d1ddb93..e9350e5e81 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Version History +## Release v2.8.10 +* python-build: honor SDKROOT when selecting Xcode SDK for zlib by @danglduy in https://github.com/pyenv/pyenv/pull/3591 +* version-file-write: fix not detecting an empty version argument beyond the first by @native-api in https://github.com/pyenv/pyenv/pull/3592 +* Harden source scripts with `set -euo pipefail` and `set -f` by @saloni-eng in https://github.com/pyenv/pyenv/pull/3581 +* Add CPython 3.16.0a1 by @pyenv-bot[bot] in https://github.com/pyenv/pyenv/pull/3593 + ## Release v2.8.9 * Rename PYTHON_BUILD_TCLTK_FORMULA to PYTHON_BUILD_HOMEBREW_TCLTK_FORMULA; deprecate the old name by @native-api in https://github.com/pyenv/pyenv/pull/3580 * python-build: install_git: Support verifying the checkout by SHA-1 by @native-api in https://github.com/pyenv/pyenv/pull/3586 diff --git a/libexec/pyenv---version b/libexec/pyenv---version index 0407e596ca..484dd322b1 100755 --- a/libexec/pyenv---version +++ b/libexec/pyenv---version @@ -12,7 +12,7 @@ set -euo pipefail [ -n "${PYENV_DEBUG:-}" ] && set -x -version="2.8.9" +version="2.8.10" git_revision= # not using grep -q to avoid SIGPIPE which would fail the condition diff --git a/plugins/python-build/bin/python-build b/plugins/python-build/bin/python-build index dbd87a59b4..c91eac4f02 100755 --- a/plugins/python-build/bin/python-build +++ b/plugins/python-build/bin/python-build @@ -14,7 +14,7 @@ # -g/--debug Build a debug version # -PYTHON_BUILD_VERSION="2.8.9" +PYTHON_BUILD_VERSION="2.8.10" OLDIFS="$IFS" From 702ac01121aa09a9c0bb563a13b19f1189e4ff01 Mon Sep 17 00:00:00 2001 From: Ayush <63203492+macayu17@users.noreply.github.com> Date: Fri, 16 Oct 2026 13:42:17 +0530 Subject: [PATCH 1324/1324] pyenv-latest: include plugin definitions in known-version lookup (#3596) --- libexec/pyenv-latest | 2 +- plugins/python-build/bin/pyenv-install | 2 +- plugins/python-build/test/pyenv.bats | 9 +++++++++ test/latest.bats | 21 +++++++++++++++++++-- 4 files changed, 30 insertions(+), 4 deletions(-) diff --git a/libexec/pyenv-latest b/libexec/pyenv-latest index 4cbb4136fc..01c667d06e 100755 --- a/libexec/pyenv-latest +++ b/libexec/pyenv-latest @@ -49,7 +49,7 @@ IFS=$'\n' fi DEFINITION_CANDIDATES=( $(pyenv-versions --bare --skip-envs) ) else - DEFINITION_CANDIDATES=( $(python-build --definitions ) ) + DEFINITION_CANDIDATES=( $(pyenv-install --list --bare) ) fi # Avoid `grep -q' to prevent SIGPIPE that would fail the check with pipefail diff --git a/plugins/python-build/bin/pyenv-install b/plugins/python-build/bin/pyenv-install index 2fd268fdc8..feb0a9838f 100755 --- a/plugins/python-build/bin/pyenv-install +++ b/plugins/python-build/bin/pyenv-install @@ -126,7 +126,7 @@ done if [[ -n $LIST ]]; then if [[ -n $BARE ]]; then - definitions + exec python-build --definitions else echo "Available versions:" definitions | indent diff --git a/plugins/python-build/test/pyenv.bats b/plugins/python-build/test/pyenv.bats index 12d7d2dec0..47f1581cbc 100644 --- a/plugins/python-build/test/pyenv.bats +++ b/plugins/python-build/test/pyenv.bats @@ -176,6 +176,15 @@ OUT unstub python-build } +@test "bare listing fails when definition listing fails" { + stub_python_build_lib '--definitions : echo "listing failed" >&2; exit 1' + + run pyenv-install --list --bare + assert_failure "listing failed" + + unstub python-build +} + @test "upgrade instructions given for a nonexistent version" { stub brew false stub_python_build_lib diff --git a/test/latest.bats b/test/latest.bats index 6ed817b861..d1fcfd093a 100644 --- a/test/latest.bats +++ b/test/latest.bats @@ -14,7 +14,7 @@ echo 4.5.6 } @test "read from known" { - create_stub python-build <&2; exit 1' + + run pyenv-latest -f -k 3.14 + assert_failure "listing failed" +} + @test "complete name resolves to itself" { create_stub pyenv-versions <

%9?XMJkwo=w^E{l>Im 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